diff --git a/LICENSE b/LICENSE
index 3eeb99923..fe736a4c8 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright © 2022 Twilio, Inc.
+Copyright © 2024 Twilio, Inc.
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index d55bb7516..e43bf1754 100644
--- a/README.md
+++ b/README.md
@@ -11,9 +11,10 @@ See the next sections for more information on how to use the Segment Public API.
 
 This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
 
-- API version: 37.2.0
-- Package version: 37.2.0
+- API version: 58.13.0
+- Package version: 58.13.0
 - Build package: org.openapitools.codegen.languages.PythonClientCodegen
+
 For more information, please visit [https://docs.segmentapis.com](https://docs.segmentapis.com)
 
 ## Requirements.
@@ -79,16 +80,16 @@ with segment_public_api.ApiClient(configuration) as api_client:
         print("Exception when calling WorkspacesApi->get_workspace: %s\n" % e)
 
     source_api_instance = segment_public_api.SourcesApi(api_client)
-    next = None
+    cursor = None
     while True:
         try:
             # Get Sources
-            pagination = segment_public_api.PaginationInput(count=50, cursor= next)
+            pagination = segment_public_api.PaginationInput(count=50, cursor= cursor)
             api_response = source_api_instance.list_sources(pagination)
             print("The response of SourcesApi->list_sources:\n")
             pprint(api_response)
-            next = api_response.data.pagination.next
-            if api_response.data.pagination.next == None:
+            cursor = api_response.data.pagination.next
+            if api_response.data.pagination.next is None:
                 break
         except ApiException as e:
             print("Exception when calling SourcesApi->list_sources: %s\n" % e)
diff --git a/docs/APICallsApi.md b/docs/APICallsApi.md
new file mode 100644
index 000000000..f72ec6980
--- /dev/null
+++ b/docs/APICallsApi.md
@@ -0,0 +1,162 @@
+# segment_public_api.APICallsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_daily_per_source_api_calls_usage**](APICallsApi.md#get_daily_per_source_api_calls_usage) | **GET** /usage/api-calls/sources/daily | Get Daily Per Source API Calls Usage
+[**get_daily_workspace_api_calls_usage**](APICallsApi.md#get_daily_workspace_api_calls_usage) | **GET** /usage/api-calls/daily | Get Daily Workspace API Calls Usage
+
+
+
+## Operation: get_daily_per_source_api_calls_usage
+
+> GetDailyPerSourceAPICallsUsage200Response get_daily_per_source_api_calls_usage(period, pagination=pagination)
+
+Get Daily Per Source API Calls Usage
+
+Provides daily cumulative per-source API call counts for a usage period.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_daily_per_source_api_calls_usage200_response import GetDailyPerSourceAPICallsUsage200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.APICallsApi(api_client)
+    period = '2021-02-01' # str | The start of the usage month in the ISO-8601 format.  This parameter exists in v1.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination input for per Source API calls counts.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Daily Per Source API Calls Usage
+        api_response = api_instance.get_daily_per_source_api_calls_usage(period, pagination=pagination)
+        print("The response of APICallsApi->get_daily_per_source_api_calls_usage:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling APICallsApi->get_daily_per_source_api_calls_usage: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **period** | **str**| The start of the usage month in the ISO-8601 format.  This parameter exists in v1. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination input for per Source API calls counts.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetDailyPerSourceAPICallsUsage200Response**](GetDailyPerSourceAPICallsUsage200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_daily_workspace_api_calls_usage
+
+> GetDailyWorkspaceAPICallsUsage200Response get_daily_workspace_api_calls_usage(period, pagination=pagination)
+
+Get Daily Workspace API Calls Usage
+
+Provides daily cumulative API call counts for a usage period.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_daily_workspace_api_calls_usage200_response import GetDailyWorkspaceAPICallsUsage200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.APICallsApi(api_client)
+    period = '2021-02-01' # str | The start of the usage month in the ISO-8601 format.  This parameter exists in v1.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination input for Workspace API call counts.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Daily Workspace API Calls Usage
+        api_response = api_instance.get_daily_workspace_api_calls_usage(period, pagination=pagination)
+        print("The response of APICallsApi->get_daily_workspace_api_calls_usage:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling APICallsApi->get_daily_workspace_api_calls_usage: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **period** | **str**| The start of the usage month in the ISO-8601 format.  This parameter exists in v1. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination input for Workspace API call counts.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetDailyWorkspaceAPICallsUsage200Response**](GetDailyWorkspaceAPICallsUsage200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/ActivationsApi.md b/docs/ActivationsApi.md
new file mode 100644
index 000000000..4d9a99d41
--- /dev/null
+++ b/docs/ActivationsApi.md
@@ -0,0 +1,490 @@
+# segment_public_api.ActivationsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_activation_to_audience**](ActivationsApi.md#add_activation_to_audience) | **POST** /spaces/{spaceId}/audiences/{audienceId}/{connectionId}/activations | Add Activation to Audience
+[**add_destination_to_audience**](ActivationsApi.md#add_destination_to_audience) | **POST** /spaces/{spaceId}/audiences/{audienceId}/destinations | Add Destination to Audience
+[**get_activation_from_audience**](ActivationsApi.md#get_activation_from_audience) | **GET** /spaces/{spaceId}/audiences/{audienceId}/activations/{id} | Get Activation from Audience
+[**list_activations_from_audience**](ActivationsApi.md#list_activations_from_audience) | **GET** /spaces/{spaceId}/audiences/{audienceId}/activations | List Activations from Audience
+[**remove_activation_from_audience**](ActivationsApi.md#remove_activation_from_audience) | **DELETE** /spaces/{spaceId}/audiences/{audienceId}/activations/{id} | Remove Activation from Audience
+[**update_activation_for_audience**](ActivationsApi.md#update_activation_for_audience) | **PATCH** /spaces/{spaceId}/audiences/{audienceId}/activations/{id} | Update Activation for Audience
+
+
+
+## Operation: add_activation_to_audience
+
+> AddActivationToAudience200Response add_activation_to_audience(space_id, audience_id, connection_id, add_activation_to_audience_alpha_input)
+
+Add Activation to Audience
+
+Creates Activation.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Activation Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_activation_to_audience200_response import AddActivationToAudience200Response
+from segment_public_api.models.add_activation_to_audience_alpha_input import AddActivationToAudienceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    connection_id = 'ii_123456789' # str | 
+    add_activation_to_audience_alpha_input = {"versionSchema":"v1","workspaceId":"LF4DPqW","destinationId":"684758860892086596310ac","enabled":true,"hasEnabledResync":false,"emitEntityContext":"on_profile_change","eventEmitter":{"name":"Test Event Emitter","description":"Test event emitter for activation"},"subscription":{"name":"Test Subscription","trigger":"audienceEntered"}} # AddActivationToAudienceAlphaInput | 
+
+    try:
+        # Add Activation to Audience
+        api_response = api_instance.add_activation_to_audience(space_id, audience_id, connection_id, add_activation_to_audience_alpha_input)
+        print("The response of ActivationsApi->add_activation_to_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->add_activation_to_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **connection_id** | **str**|  | 
+ **add_activation_to_audience_alpha_input** | [**AddActivationToAudienceAlphaInput**](AddActivationToAudienceAlphaInput.md)|  | 
+
+### Return type
+
+[**AddActivationToAudience200Response**](AddActivationToAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: add_destination_to_audience
+
+> AddDestinationToAudience200Response add_destination_to_audience(space_id, audience_id, add_destination_to_audience_alpha_input)
+
+Add Destination to Audience
+
+Adds a Destination to an Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Destination Added into Audience` event in the [audit trail](/tag/Audit-Trail).
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_destination_to_audience200_response import AddDestinationToAudience200Response
+from segment_public_api.models.add_destination_to_audience_alpha_input import AddDestinationToAudienceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    add_destination_to_audience_alpha_input = {"versionSchema":"v1","workspaceId":"LF4DPqW","destination":{"id":"684758860892086596310ac","type":"destination"}} # AddDestinationToAudienceAlphaInput | 
+
+    try:
+        # Add Destination to Audience
+        api_response = api_instance.add_destination_to_audience(space_id, audience_id, add_destination_to_audience_alpha_input)
+        print("The response of ActivationsApi->add_destination_to_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->add_destination_to_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **add_destination_to_audience_alpha_input** | [**AddDestinationToAudienceAlphaInput**](AddDestinationToAudienceAlphaInput.md)|  | 
+
+### Return type
+
+[**AddDestinationToAudience200Response**](AddDestinationToAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_activation_from_audience
+
+> GetActivationFromAudience200Response get_activation_from_audience(space_id, audience_id, id, workspace_id)
+
+Get Activation from Audience
+
+Gets a single Activation by id.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_activation_from_audience200_response import GetActivationFromAudience200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    id = 'act_987654321' # str | 
+    workspace_id = 'LF4DPqW' # str | The workspace id  This parameter exists in alpha.
+
+    try:
+        # Get Activation from Audience
+        api_response = api_instance.get_activation_from_audience(space_id, audience_id, id, workspace_id)
+        print("The response of ActivationsApi->get_activation_from_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->get_activation_from_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **id** | **str**|  | 
+ **workspace_id** | **str**| The workspace id  This parameter exists in alpha. | 
+
+### Return type
+
+[**GetActivationFromAudience200Response**](GetActivationFromAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_activations_from_audience
+
+> ListActivationsFromAudience200Response list_activations_from_audience(space_id, audience_id, workspace_id, pagination=pagination)
+
+List Activations from Audience
+
+Lists all Activations.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_activations_from_audience200_response import ListActivationsFromAudience200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    workspace_id = 'LF4DPqW' # str | The workspace id  This parameter exists in alpha.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Optional pagination.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Activations from Audience
+        api_response = api_instance.list_activations_from_audience(space_id, audience_id, workspace_id, pagination=pagination)
+        print("The response of ActivationsApi->list_activations_from_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->list_activations_from_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **workspace_id** | **str**| The workspace id  This parameter exists in alpha. | 
+ **pagination** | [**PaginationInput**](.md)| Optional pagination.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListActivationsFromAudience200Response**](ListActivationsFromAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_activation_from_audience
+
+> RemoveActivationFromAudience200Response remove_activation_from_audience(space_id, audience_id, id, workspace_id)
+
+Remove Activation from Audience
+
+Deletes an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_activation_from_audience200_response import RemoveActivationFromAudience200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    id = 'act_987654321' # str | 
+    workspace_id = 'LF4DPqW' # str | The workspace id  This parameter exists in alpha.
+
+    try:
+        # Remove Activation from Audience
+        api_response = api_instance.remove_activation_from_audience(space_id, audience_id, id, workspace_id)
+        print("The response of ActivationsApi->remove_activation_from_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->remove_activation_from_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **id** | **str**|  | 
+ **workspace_id** | **str**| The workspace id  This parameter exists in alpha. | 
+
+### Return type
+
+[**RemoveActivationFromAudience200Response**](RemoveActivationFromAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_activation_for_audience
+
+> UpdateActivationForAudience200Response update_activation_for_audience(space_id, audience_id, id, update_activation_for_audience_alpha_input)
+
+Update Activation for Audience
+
+Updates an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_activation_for_audience200_response import UpdateActivationForAudience200Response
+from segment_public_api.models.update_activation_for_audience_alpha_input import UpdateActivationForAudienceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ActivationsApi(api_client)
+    space_id = 'spa_9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    audience_id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    id = 'act_987654321' # str | 
+    update_activation_for_audience_alpha_input = {"workspaceId":"LF4DPqW","enabled":false,"eventEmitter":{"name":"Updated Event Emitter","description":"Updated event emitter for activation"},"subscription":{"name":"Updated Subscription","trigger":"audienceExited"}} # UpdateActivationForAudienceAlphaInput | 
+
+    try:
+        # Update Activation for Audience
+        api_response = api_instance.update_activation_for_audience(space_id, audience_id, id, update_activation_for_audience_alpha_input)
+        print("The response of ActivationsApi->update_activation_for_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ActivationsApi->update_activation_for_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **audience_id** | **str**|  | 
+ **id** | **str**|  | 
+ **update_activation_for_audience_alpha_input** | [**UpdateActivationForAudienceAlphaInput**](UpdateActivationForAudienceAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateActivationForAudience200Response**](UpdateActivationForAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/AudiencesApi.md b/docs/AudiencesApi.md
new file mode 100644
index 000000000..39ff20902
--- /dev/null
+++ b/docs/AudiencesApi.md
@@ -0,0 +1,792 @@
+# segment_public_api.AudiencesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_audience**](AudiencesApi.md#create_audience) | **POST** /spaces/{spaceId}/audiences | Create Audience
+[**create_audience_preview**](AudiencesApi.md#create_audience_preview) | **POST** /spaces/{spaceId}/audiences/previews | Create Audience Preview
+[**get_audience**](AudiencesApi.md#get_audience) | **GET** /spaces/{spaceId}/audiences/{id} | Get Audience
+[**get_audience_preview**](AudiencesApi.md#get_audience_preview) | **GET** /spaces/{spaceId}/audiences/previews/{id} | Get Audience Preview
+[**get_audience_schedule_from_space_and_audience**](AudiencesApi.md#get_audience_schedule_from_space_and_audience) | **GET** /spaces/{spaceId}/audiences/{id}/schedules/{scheduleId} | Get Audience Schedule from Space And Audience
+[**list_audience_consumers_from_space_and_audience**](AudiencesApi.md#list_audience_consumers_from_space_and_audience) | **GET** /spaces/{spaceId}/audiences/{id}/audience-references | List Audience Consumers from Space And Audience
+[**list_audience_schedules_from_space_and_audience**](AudiencesApi.md#list_audience_schedules_from_space_and_audience) | **GET** /spaces/{spaceId}/audiences/{id}/schedules | List Audience Schedules from Space And Audience
+[**list_audiences**](AudiencesApi.md#list_audiences) | **GET** /spaces/{spaceId}/audiences | List Audiences
+[**remove_audience_from_space**](AudiencesApi.md#remove_audience_from_space) | **DELETE** /spaces/{spaceId}/audiences/{id} | Remove Audience from Space
+[**update_audience_for_space**](AudiencesApi.md#update_audience_for_space) | **PATCH** /spaces/{spaceId}/audiences/{id} | Update Audience for Space
+
+
+
+## Operation: create_audience
+
+> CreateAudience200Response create_audience(space_id, create_audience_alpha_input)
+
+Create Audience
+
+Creates Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for an Audience created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_audience200_response import CreateAudience200Response
+from segment_public_api.models.create_audience_alpha_input import CreateAudienceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    create_audience_alpha_input = {"name":"name","description":"description","enabled":false,"definition":{"query":"event('Shoes Bought').count() >= 1","type":"USERS"},"options":{"includeAnonymousUsers":true,"includeHistoricalData":true}} # CreateAudienceAlphaInput | 
+
+    try:
+        # Create Audience
+        api_response = api_instance.create_audience(space_id, create_audience_alpha_input)
+        print("The response of AudiencesApi->create_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->create_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **create_audience_alpha_input** | [**CreateAudienceAlphaInput**](CreateAudienceAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateAudience200Response**](CreateAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_audience_preview
+
+> CreateAudiencePreview200Response create_audience_preview(space_id, create_audience_preview_alpha_input)
+
+Create Audience Preview
+
+Previews Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Preview Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information. This endpoint also has a rate limit of 700 requests per month per spaceId, which is lower than the default due to access pattern restrictions.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_audience_preview200_response import CreateAudiencePreview200Response
+from segment_public_api.models.create_audience_preview_alpha_input import CreateAudiencePreviewAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    create_audience_preview_alpha_input = {"definition":{"query":"event('Shoes Bought').count() >= 1"},"audienceType":"USERS","options":{"filterByExternalIds":["android.idfa","anonymous_id","email","ios.idfa","user_id"],"backfillEventDataDays":7}} # CreateAudiencePreviewAlphaInput | 
+
+    try:
+        # Create Audience Preview
+        api_response = api_instance.create_audience_preview(space_id, create_audience_preview_alpha_input)
+        print("The response of AudiencesApi->create_audience_preview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->create_audience_preview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **create_audience_preview_alpha_input** | [**CreateAudiencePreviewAlphaInput**](CreateAudiencePreviewAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateAudiencePreview200Response**](CreateAudiencePreview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_audience
+
+> GetAudience200Response get_audience(space_id, id, include=include)
+
+Get Audience
+
+Returns the Audience by id and spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_audience200_response import GetAudience200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    include = 'include_example' # str | Additional resource to include, support schedules only.  This parameter exists in alpha. (optional)
+
+    try:
+        # Get Audience
+        api_response = api_instance.get_audience(space_id, id, include=include)
+        print("The response of AudiencesApi->get_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->get_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+ **include** | **str**| Additional resource to include, support schedules only.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**GetAudience200Response**](GetAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_audience_preview
+
+> GetAudiencePreview200Response get_audience_preview(space_id, id)
+
+Get Audience Preview
+
+Reads the results of an audience preview.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_audience_preview200_response import GetAudiencePreview200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = '2yKFfGeS62yzGxQSAieVOvsPOha-compute_preview_execution-dws3UdTNsppL5dRGsagFpP-compute_preview_execution' # str | 
+
+    try:
+        # Get Audience Preview
+        api_response = api_instance.get_audience_preview(space_id, id)
+        print("The response of AudiencesApi->get_audience_preview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->get_audience_preview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**GetAudiencePreview200Response**](GetAudiencePreview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_audience_schedule_from_space_and_audience
+
+> GetAudienceScheduleFromSpaceAndAudience200Response get_audience_schedule_from_space_and_audience(space_id, id, schedule_id)
+
+Get Audience Schedule from Space And Audience
+
+Returns the schedule for the given audience and scheduleId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_audience_schedule_from_space_and_audience200_response import GetAudienceScheduleFromSpaceAndAudience200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    schedule_id = 'sch_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+
+    try:
+        # Get Audience Schedule from Space And Audience
+        api_response = api_instance.get_audience_schedule_from_space_and_audience(space_id, id, schedule_id)
+        print("The response of AudiencesApi->get_audience_schedule_from_space_and_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->get_audience_schedule_from_space_and_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+ **schedule_id** | **str**|  | 
+
+### Return type
+
+[**GetAudienceScheduleFromSpaceAndAudience200Response**](GetAudienceScheduleFromSpaceAndAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_audience_consumers_from_space_and_audience
+
+> ListAudienceConsumersFromSpaceAndAudience200Response list_audience_consumers_from_space_and_audience(space_id, id, pagination=pagination, search=search, sort=sort)
+
+List Audience Consumers from Space And Audience
+
+Returns the list of consumers for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_audience_consumers_from_space_and_audience200_response import ListAudienceConsumersFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_consumers_sort_input import ListAudienceConsumersSortInput
+from segment_public_api.models.list_audience_search_input import ListAudienceSearchInput
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsswThIGTUYm2K8FjOOfXtY1K' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. (optional)
+    search = segment_public_api.ListAudienceSearchInput() # ListAudienceSearchInput | Optional search criteria  This parameter exists in alpha. (optional)
+    sort = segment_public_api.ListAudienceConsumersSortInput() # ListAudienceConsumersSortInput | Optional sort criteria  This parameter exists in alpha. (optional)
+
+    try:
+        # List Audience Consumers from Space And Audience
+        api_response = api_instance.list_audience_consumers_from_space_and_audience(space_id, id, pagination=pagination, search=search, sort=sort)
+        print("The response of AudiencesApi->list_audience_consumers_from_space_and_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->list_audience_consumers_from_space_and_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. | [optional] 
+ **search** | [**ListAudienceSearchInput**](.md)| Optional search criteria  This parameter exists in alpha. | [optional] 
+ **sort** | [**ListAudienceConsumersSortInput**](.md)| Optional sort criteria  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListAudienceConsumersFromSpaceAndAudience200Response**](ListAudienceConsumersFromSpaceAndAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_audience_schedules_from_space_and_audience
+
+> ListAudienceSchedulesFromSpaceAndAudience200Response list_audience_schedules_from_space_and_audience(space_id, id)
+
+List Audience Schedules from Space And Audience
+
+Returns the list of schedules for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_audience_schedules_from_space_and_audience200_response import ListAudienceSchedulesFromSpaceAndAudience200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+
+    try:
+        # List Audience Schedules from Space And Audience
+        api_response = api_instance.list_audience_schedules_from_space_and_audience(space_id, id)
+        print("The response of AudiencesApi->list_audience_schedules_from_space_and_audience:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->list_audience_schedules_from_space_and_audience: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**ListAudienceSchedulesFromSpaceAndAudience200Response**](ListAudienceSchedulesFromSpaceAndAudience200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_audiences
+
+> ListAudiences200Response list_audiences(space_id, search=search, pagination=pagination, include=include)
+
+List Audiences
+
+Returns Audiences by spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_audience_search_input import ListAudienceSearchInput
+from segment_public_api.models.list_audiences200_response import ListAudiences200Response
+from segment_public_api.models.list_audiences_pagination_input import ListAudiencesPaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    search = segment_public_api.ListAudienceSearchInput() # ListAudienceSearchInput | Optional search criteria  This parameter exists in alpha. (optional)
+    pagination = segment_public_api.ListAudiencesPaginationInput() # ListAudiencesPaginationInput | Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. (optional)
+    include = 'include_example' # str | Additional resource to include, support schedules only.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Audiences
+        api_response = api_instance.list_audiences(space_id, search=search, pagination=pagination, include=include)
+        print("The response of AudiencesApi->list_audiences:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->list_audiences: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **search** | [**ListAudienceSearchInput**](.md)| Optional search criteria  This parameter exists in alpha. | [optional] 
+ **pagination** | [**ListAudiencesPaginationInput**](.md)| Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. | [optional] 
+ **include** | **str**| Additional resource to include, support schedules only.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListAudiences200Response**](ListAudiences200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_audience_from_space
+
+> RemoveAudienceFromSpace200Response remove_audience_from_space(space_id, id)
+
+Remove Audience from Space
+
+Deletes an Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_audience_from_space200_response import RemoveAudienceFromSpace200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+
+    try:
+        # Remove Audience from Space
+        api_response = api_instance.remove_audience_from_space(space_id, id)
+        print("The response of AudiencesApi->remove_audience_from_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->remove_audience_from_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**RemoveAudienceFromSpace200Response**](RemoveAudienceFromSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_audience_for_space
+
+> UpdateAudienceForSpace200Response update_audience_for_space(space_id, id, update_audience_for_space_alpha_input)
+
+Update Audience for Space
+
+Updates the Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when an Audience is updated, the Audience will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/engage/audiences/#editing-realtime-audiences-and-traits).  Note: The definition for an Audience updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_audience_for_space200_response import UpdateAudienceForSpace200Response
+from segment_public_api.models.update_audience_for_space_alpha_input import UpdateAudienceForSpaceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AudiencesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    id = 'aud_0ujsszwN8NRY24YaXiTIE2VWDTS' # str | 
+    update_audience_for_space_alpha_input = {"enabled":true} # UpdateAudienceForSpaceAlphaInput | 
+
+    try:
+        # Update Audience for Space
+        api_response = api_instance.update_audience_for_space(space_id, id, update_audience_for_space_alpha_input)
+        print("The response of AudiencesApi->update_audience_for_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AudiencesApi->update_audience_for_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+ **update_audience_for_space_alpha_input** | [**UpdateAudienceForSpaceAlphaInput**](UpdateAudienceForSpaceAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateAudienceForSpace200Response**](UpdateAudienceForSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/AuditTrailApi.md b/docs/AuditTrailApi.md
new file mode 100644
index 000000000..ce106ef0d
--- /dev/null
+++ b/docs/AuditTrailApi.md
@@ -0,0 +1,91 @@
+# segment_public_api.AuditTrailApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**list_audit_events**](AuditTrailApi.md#list_audit_events) | **GET** /audit-events | List Audit Events
+
+
+
+## Operation: list_audit_events
+
+> ListAuditEvents200Response list_audit_events(start_time=start_time, end_time=end_time, resource_id=resource_id, resource_type=resource_type, pagination=pagination)
+
+List Audit Events
+
+Returns a list of Audit Trail events.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_audit_events200_response import ListAuditEvents200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.AuditTrailApi(api_client)
+    start_time = 'start_time_example' # str | Filter response to events that happened after this time.  This parameter exists in v1. (optional)
+    end_time = 'end_time_example' # str | Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1. (optional)
+    resource_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1. (optional)
+    resource_type = 'resource_type_example' # str | Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Audit Events
+        api_response = api_instance.list_audit_events(start_time=start_time, end_time=end_time, resource_id=resource_id, resource_type=resource_type, pagination=pagination)
+        print("The response of AuditTrailApi->list_audit_events:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling AuditTrailApi->list_audit_events: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **start_time** | **str**| Filter response to events that happened after this time.  This parameter exists in v1. | [optional] 
+ **end_time** | **str**| Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1. | [optional] 
+ **resource_id** | **str**| Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1. | [optional] 
+ **resource_type** | **str**| Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListAuditEvents200Response**](ListAuditEvents200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/CatalogApi.md b/docs/CatalogApi.md
new file mode 100644
index 000000000..c0b9dbbb6
--- /dev/null
+++ b/docs/CatalogApi.md
@@ -0,0 +1,455 @@
+# segment_public_api.CatalogApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_destination_metadata**](CatalogApi.md#get_destination_metadata) | **GET** /catalog/destinations/{destinationMetadataId} | Get Destination Metadata
+[**get_destinations_catalog**](CatalogApi.md#get_destinations_catalog) | **GET** /catalog/destinations | Get Destinations Catalog
+[**get_source_metadata**](CatalogApi.md#get_source_metadata) | **GET** /catalog/sources/{sourceMetadataId} | Get Source Metadata
+[**get_sources_catalog**](CatalogApi.md#get_sources_catalog) | **GET** /catalog/sources | Get Sources Catalog
+[**get_warehouse_metadata**](CatalogApi.md#get_warehouse_metadata) | **GET** /catalog/warehouses/{warehouseMetadataId} | Get Warehouse Metadata
+[**get_warehouses_catalog**](CatalogApi.md#get_warehouses_catalog) | **GET** /catalog/warehouses | Get Warehouses Catalog
+
+
+
+## Operation: get_destination_metadata
+
+> GetDestinationMetadata200Response get_destination_metadata(destination_metadata_id)
+
+Get Destination Metadata
+
+Returns a Destination catalog item by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_destination_metadata200_response import GetDestinationMetadata200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    destination_metadata_id = '54521fd525e721e32a72ee91' # str | 
+
+    try:
+        # Get Destination Metadata
+        api_response = api_instance.get_destination_metadata(destination_metadata_id)
+        print("The response of CatalogApi->get_destination_metadata:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_destination_metadata: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_metadata_id** | **str**|  | 
+
+### Return type
+
+[**GetDestinationMetadata200Response**](GetDestinationMetadata200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_destinations_catalog
+
+> GetDestinationsCatalog200Response get_destinations_catalog(pagination=pagination)
+
+Get Destinations Catalog
+
+Returns a list of all available Destinations in the Segment catalog.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_destinations_catalog200_response import GetDestinationsCatalog200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Destinations Catalog
+        api_response = api_instance.get_destinations_catalog(pagination=pagination)
+        print("The response of CatalogApi->get_destinations_catalog:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_destinations_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetDestinationsCatalog200Response**](GetDestinationsCatalog200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_source_metadata
+
+> GetSourceMetadata200Response get_source_metadata(source_metadata_id)
+
+Get Source Metadata
+
+Returns a Source catalog item by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_source_metadata200_response import GetSourceMetadata200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    source_metadata_id = '1bow82lmk' # str | 
+
+    try:
+        # Get Source Metadata
+        api_response = api_instance.get_source_metadata(source_metadata_id)
+        print("The response of CatalogApi->get_source_metadata:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_source_metadata: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_metadata_id** | **str**|  | 
+
+### Return type
+
+[**GetSourceMetadata200Response**](GetSourceMetadata200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_sources_catalog
+
+> GetSourcesCatalog200Response get_sources_catalog(pagination=pagination)
+
+Get Sources Catalog
+
+Returns a list of all available Sources in the Segment catalog.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_sources_catalog200_response import GetSourcesCatalog200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Sources Catalog
+        api_response = api_instance.get_sources_catalog(pagination=pagination)
+        print("The response of CatalogApi->get_sources_catalog:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_sources_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetSourcesCatalog200Response**](GetSourcesCatalog200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_warehouse_metadata
+
+> GetWarehouseMetadata200Response get_warehouse_metadata(warehouse_metadata_id)
+
+Get Warehouse Metadata
+
+Returns a Warehouse catalog item by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_warehouse_metadata200_response import GetWarehouseMetadata200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    warehouse_metadata_id = '55d3d3aea3c' # str | 
+
+    try:
+        # Get Warehouse Metadata
+        api_response = api_instance.get_warehouse_metadata(warehouse_metadata_id)
+        print("The response of CatalogApi->get_warehouse_metadata:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_warehouse_metadata: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_metadata_id** | **str**|  | 
+
+### Return type
+
+[**GetWarehouseMetadata200Response**](GetWarehouseMetadata200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_warehouses_catalog
+
+> GetWarehousesCatalog200Response get_warehouses_catalog(pagination=pagination)
+
+Get Warehouses Catalog
+
+Returns a list of all available Warehouses in the Segment catalog.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_warehouses_catalog200_response import GetWarehousesCatalog200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CatalogApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Warehouses Catalog
+        api_response = api_instance.get_warehouses_catalog(pagination=pagination)
+        print("The response of CatalogApi->get_warehouses_catalog:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CatalogApi->get_warehouses_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetWarehousesCatalog200Response**](GetWarehousesCatalog200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/ComputedTraitsApi.md b/docs/ComputedTraitsApi.md
new file mode 100644
index 000000000..24ed3cf53
--- /dev/null
+++ b/docs/ComputedTraitsApi.md
@@ -0,0 +1,393 @@
+# segment_public_api.ComputedTraitsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_computed_trait**](ComputedTraitsApi.md#create_computed_trait) | **POST** /spaces/{spaceId}/computed-traits | Create Computed Trait
+[**get_computed_trait**](ComputedTraitsApi.md#get_computed_trait) | **GET** /spaces/{spaceId}/computed-traits/{id} | Get Computed Trait
+[**list_computed_traits**](ComputedTraitsApi.md#list_computed_traits) | **GET** /spaces/{spaceId}/computed-traits | List Computed Traits
+[**remove_computed_trait_from_space**](ComputedTraitsApi.md#remove_computed_trait_from_space) | **DELETE** /spaces/{spaceId}/computed-traits/{id} | Remove Computed Trait from Space
+[**update_computed_trait_for_space**](ComputedTraitsApi.md#update_computed_trait_for_space) | **PATCH** /spaces/{spaceId}/computed-traits/{id} | Update Computed Trait for Space
+
+
+
+## Operation: create_computed_trait
+
+> CreateComputedTrait200Response create_computed_trait(space_id, create_computed_trait_alpha_input)
+
+Create Computed Trait
+
+Creates a Computed Trait  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for a Computed Trait created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_computed_trait200_response import CreateComputedTrait200Response
+from segment_public_api.models.create_computed_trait_alpha_input import CreateComputedTraitAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ComputedTraitsApi(api_client)
+    space_id = 'spaceId' # str | 
+    create_computed_trait_alpha_input = {"name":"name","description":"description","enabled":false,"definition":{"query":"event('Shoes Bought').count() >= 1","type":"USERS"},"options":{"includeAnonymousUsers":true,"includeHistoricalData":true}} # CreateComputedTraitAlphaInput | 
+
+    try:
+        # Create Computed Trait
+        api_response = api_instance.create_computed_trait(space_id, create_computed_trait_alpha_input)
+        print("The response of ComputedTraitsApi->create_computed_trait:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ComputedTraitsApi->create_computed_trait: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **create_computed_trait_alpha_input** | [**CreateComputedTraitAlphaInput**](CreateComputedTraitAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateComputedTrait200Response**](CreateComputedTrait200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_computed_trait
+
+> GetComputedTrait200Response get_computed_trait(space_id, id)
+
+Get Computed Trait
+
+Returns the Computed Trait by id and spaceId  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_computed_trait200_response import GetComputedTrait200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ComputedTraitsApi(api_client)
+    space_id = 'spaceId' # str | 
+    id = 'id' # str | 
+
+    try:
+        # Get Computed Trait
+        api_response = api_instance.get_computed_trait(space_id, id)
+        print("The response of ComputedTraitsApi->get_computed_trait:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ComputedTraitsApi->get_computed_trait: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**GetComputedTrait200Response**](GetComputedTrait200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_computed_traits
+
+> ListComputedTraits200Response list_computed_traits(space_id, pagination=pagination)
+
+List Computed Traits
+
+Returns Computed Traits by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_computed_traits200_response import ListComputedTraits200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ComputedTraitsApi(api_client)
+    space_id = 'spaceId' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Computed Traits
+        api_response = api_instance.list_computed_traits(space_id, pagination=pagination)
+        print("The response of ComputedTraitsApi->list_computed_traits:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ComputedTraitsApi->list_computed_traits: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListComputedTraits200Response**](ListComputedTraits200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_computed_trait_from_space
+
+> RemoveComputedTraitFromSpace200Response remove_computed_trait_from_space(space_id, id)
+
+Remove Computed Trait from Space
+
+Deletes a Computed Trait by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_computed_trait_from_space200_response import RemoveComputedTraitFromSpace200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ComputedTraitsApi(api_client)
+    space_id = 'spaceId' # str | 
+    id = 'id' # str | 
+
+    try:
+        # Remove Computed Trait from Space
+        api_response = api_instance.remove_computed_trait_from_space(space_id, id)
+        print("The response of ComputedTraitsApi->remove_computed_trait_from_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ComputedTraitsApi->remove_computed_trait_from_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**RemoveComputedTraitFromSpace200Response**](RemoveComputedTraitFromSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_computed_trait_for_space
+
+> UpdateComputedTraitForSpace200Response update_computed_trait_for_space(space_id, id, update_computed_trait_for_space_alpha_input)
+
+Update Computed Trait for Space
+
+Updates the Computed Trait.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when a Computed Trait is updated, the Computed Trait will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/unify/traits/computed-traits/#editing-realtime-traits).  Note: The definition for a Computed Trait updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_computed_trait_for_space200_response import UpdateComputedTraitForSpace200Response
+from segment_public_api.models.update_computed_trait_for_space_alpha_input import UpdateComputedTraitForSpaceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ComputedTraitsApi(api_client)
+    space_id = 'spaceId' # str | 
+    id = 'id' # str | 
+    update_computed_trait_for_space_alpha_input = {"enabled":false} # UpdateComputedTraitForSpaceAlphaInput | 
+
+    try:
+        # Update Computed Trait for Space
+        api_response = api_instance.update_computed_trait_for_space(space_id, id, update_computed_trait_for_space_alpha_input)
+        print("The response of ComputedTraitsApi->update_computed_trait_for_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ComputedTraitsApi->update_computed_trait_for_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **id** | **str**|  | 
+ **update_computed_trait_for_space_alpha_input** | [**UpdateComputedTraitForSpaceAlphaInput**](UpdateComputedTraitForSpaceAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateComputedTraitForSpace200Response**](UpdateComputedTraitForSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/CustomerInsightsApi.md b/docs/CustomerInsightsApi.md
new file mode 100644
index 000000000..b556c7b1c
--- /dev/null
+++ b/docs/CustomerInsightsApi.md
@@ -0,0 +1,83 @@
+# segment_public_api.CustomerInsightsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_download**](CustomerInsightsApi.md#create_download) | **POST** /customer-insights/download | Create Download
+
+
+
+## Operation: create_download
+
+> CreateDownload200Response create_download(create_download_alpha_input)
+
+Create Download
+
+Create Customer Insights Presigned URLsThe rate limit for this endpoint is 120 requests per day per workspaceId, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_download200_response import CreateDownload200Response
+from segment_public_api.models.create_download_alpha_input import CreateDownloadAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.CustomerInsightsApi(api_client)
+    create_download_alpha_input = {"collectionId":"2wmpXTGB69A8BwGJ4hD5XvQ03aD","hour":"2006-01-02T15:04:05.000Z"} # CreateDownloadAlphaInput | 
+
+    try:
+        # Create Download
+        api_response = api_instance.create_download(create_download_alpha_input)
+        print("The response of CustomerInsightsApi->create_download:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling CustomerInsightsApi->create_download: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_download_alpha_input** | [**CreateDownloadAlphaInput**](CreateDownloadAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateDownload200Response**](CreateDownload200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/DbtApi.md b/docs/DbtApi.md
new file mode 100644
index 000000000..3b6f422e1
--- /dev/null
+++ b/docs/DbtApi.md
@@ -0,0 +1,83 @@
+# segment_public_api.DbtApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_dbt_model_sync_trigger**](DbtApi.md#create_dbt_model_sync_trigger) | **POST** /dbt-model-syncs/trigger | Create Dbt Model Sync Trigger
+
+
+
+## Operation: create_dbt_model_sync_trigger
+
+> CreateDbtModelSyncTrigger200Response create_dbt_model_sync_trigger(create_dbt_model_sync_trigger_input)
+
+Create Dbt Model Sync Trigger
+
+Creates a trigger for a new dbt model sync for a Source.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_dbt_model_sync_trigger200_response import CreateDbtModelSyncTrigger200Response
+from segment_public_api.models.create_dbt_model_sync_trigger_input import CreateDbtModelSyncTriggerInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DbtApi(api_client)
+    create_dbt_model_sync_trigger_input = {"sourceId":"source-id"} # CreateDbtModelSyncTriggerInput | 
+
+    try:
+        # Create Dbt Model Sync Trigger
+        api_response = api_instance.create_dbt_model_sync_trigger(create_dbt_model_sync_trigger_input)
+        print("The response of DbtApi->create_dbt_model_sync_trigger:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DbtApi->create_dbt_model_sync_trigger: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_dbt_model_sync_trigger_input** | [**CreateDbtModelSyncTriggerInput**](CreateDbtModelSyncTriggerInput.md)|  | 
+
+### Return type
+
+[**CreateDbtModelSyncTrigger200Response**](CreateDbtModelSyncTrigger200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1beta+json
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/DeletionAndSuppressionApi.md b/docs/DeletionAndSuppressionApi.md
new file mode 100644
index 000000000..5ae2f7f42
--- /dev/null
+++ b/docs/DeletionAndSuppressionApi.md
@@ -0,0 +1,620 @@
+# segment_public_api.DeletionAndSuppressionApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_cloud_source_regulation**](DeletionAndSuppressionApi.md#create_cloud_source_regulation) | **POST** /regulations/cloudsources/{sourceId} | Create Cloud Source Regulation
+[**create_source_regulation**](DeletionAndSuppressionApi.md#create_source_regulation) | **POST** /regulations/sources/{sourceId} | Create Source Regulation
+[**create_workspace_regulation**](DeletionAndSuppressionApi.md#create_workspace_regulation) | **POST** /regulations | Create Workspace Regulation
+[**delete_regulation**](DeletionAndSuppressionApi.md#delete_regulation) | **DELETE** /regulations/{regulateId} | Delete Regulation
+[**get_regulation**](DeletionAndSuppressionApi.md#get_regulation) | **GET** /regulations/{regulateId} | Get Regulation
+[**list_regulations_from_source**](DeletionAndSuppressionApi.md#list_regulations_from_source) | **GET** /regulations/sources/{sourceId} | List Regulations from Source
+[**list_suppressions**](DeletionAndSuppressionApi.md#list_suppressions) | **GET** /suppressions | List Suppressions
+[**list_workspace_regulations**](DeletionAndSuppressionApi.md#list_workspace_regulations) | **GET** /regulations | List Workspace Regulations
+
+
+
+## Operation: create_cloud_source_regulation
+
+> CreateCloudSourceRegulation200Response create_cloud_source_regulation(source_id, create_cloud_source_regulation_v1_input)
+
+Create Cloud Source Regulation
+
+Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment        Config API omitted fields: - `attributes`, - `userAgent`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_cloud_source_regulation200_response import CreateCloudSourceRegulation200Response
+from segment_public_api.models.create_cloud_source_regulation_v1_input import CreateCloudSourceRegulationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    create_cloud_source_regulation_v1_input = {"regulationType":"SUPPRESS_ONLY","subjectType":"OBJECT_ID","subjectIds":["test_object_id"],"collection":"some-app-collection"} # CreateCloudSourceRegulationV1Input | 
+
+    try:
+        # Create Cloud Source Regulation
+        api_response = api_instance.create_cloud_source_regulation(source_id, create_cloud_source_regulation_v1_input)
+        print("The response of DeletionAndSuppressionApi->create_cloud_source_regulation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->create_cloud_source_regulation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **create_cloud_source_regulation_v1_input** | [**CreateCloudSourceRegulationV1Input**](CreateCloudSourceRegulationV1Input.md)|  | 
+
+### Return type
+
+[**CreateCloudSourceRegulation200Response**](CreateCloudSourceRegulation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_source_regulation
+
+> CreateSourceRegulation200Response create_source_regulation(source_id, create_source_regulation_v1_input)
+
+Create Source Regulation
+
+Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment    • When called, this endpoint may generate the `Source Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_source_regulation200_response import CreateSourceRegulation200Response
+from segment_public_api.models.create_source_regulation_v1_input import CreateSourceRegulationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    create_source_regulation_v1_input = {"regulationType":"SUPPRESS_ONLY","subjectType":"USER_ID","subjectIds":["test_user_id_1"]} # CreateSourceRegulationV1Input | 
+
+    try:
+        # Create Source Regulation
+        api_response = api_instance.create_source_regulation(source_id, create_source_regulation_v1_input)
+        print("The response of DeletionAndSuppressionApi->create_source_regulation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->create_source_regulation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **create_source_regulation_v1_input** | [**CreateSourceRegulationV1Input**](CreateSourceRegulationV1Input.md)|  | 
+
+### Return type
+
+[**CreateSourceRegulation200Response**](CreateSourceRegulation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_workspace_regulation
+
+> CreateWorkspaceRegulation200Response create_workspace_regulation(create_workspace_regulation_v1_input)
+
+Create Workspace Regulation
+
+Creates a Workspace-scoped regulation.    • When called, this endpoint may generate the `Workspace Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_workspace_regulation200_response import CreateWorkspaceRegulation200Response
+from segment_public_api.models.create_workspace_regulation_v1_input import CreateWorkspaceRegulationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    create_workspace_regulation_v1_input = {"regulationType":"SUPPRESS_ONLY","subjectType":"USER_ID","subjectIds":["test_user_id_1"]} # CreateWorkspaceRegulationV1Input | 
+
+    try:
+        # Create Workspace Regulation
+        api_response = api_instance.create_workspace_regulation(create_workspace_regulation_v1_input)
+        print("The response of DeletionAndSuppressionApi->create_workspace_regulation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->create_workspace_regulation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_workspace_regulation_v1_input** | [**CreateWorkspaceRegulationV1Input**](CreateWorkspaceRegulationV1Input.md)|  | 
+
+### Return type
+
+[**CreateWorkspaceRegulation200Response**](CreateWorkspaceRegulation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_regulation
+
+> DeleteRegulation200Response delete_regulation(regulate_id)
+
+Delete Regulation
+
+Deletes a regulation from the Workspace. The regulation must be in the initialized state to be deleted.    • When called, this endpoint may generate the `Regulation Deleted` event in the [audit trail](/tag/Audit-Trail).         **DEPRECATED**: this endpoint has been deprecated according to the guidelines, and may experience reduced SLA guarantees.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_regulation200_response import DeleteRegulation200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    regulate_id = '1qJkfE1tpwvQcklImGksLN629wn' # str | 
+
+    try:
+        # Delete Regulation
+        api_response = api_instance.delete_regulation(regulate_id)
+        print("The response of DeletionAndSuppressionApi->delete_regulation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->delete_regulation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **regulate_id** | **str**|  | 
+
+### Return type
+
+[**DeleteRegulation200Response**](DeleteRegulation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_regulation
+
+> GetRegulation200Response get_regulation(regulate_id)
+
+Get Regulation
+
+Gets a regulation from the Workspace.        Config API omitted fields: - `parent`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_regulation200_response import GetRegulation200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    regulate_id = '1qJkfE1tpwvQcklImGksLN629wn' # str | 
+
+    try:
+        # Get Regulation
+        api_response = api_instance.get_regulation(regulate_id)
+        print("The response of DeletionAndSuppressionApi->get_regulation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->get_regulation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **regulate_id** | **str**|  | 
+
+### Return type
+
+[**GetRegulation200Response**](GetRegulation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_regulations_from_source
+
+> ListRegulationsFromSource200Response list_regulations_from_source(source_id, status=status, regulation_types=regulation_types, pagination=pagination)
+
+List Regulations from Source
+
+Lists all Source-scoped regulations.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_regulations_from_source200_response import ListRegulationsFromSource200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    status = 'status_example' # str | The status on which to filter returned regulations.  This parameter exists in v1. (optional)
+    regulation_types = ['regulation_types_example'] # List[str] | The regulation types on which to filter returned regulations.  This parameter exists in v1. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Regulations from Source
+        api_response = api_instance.list_regulations_from_source(source_id, status=status, regulation_types=regulation_types, pagination=pagination)
+        print("The response of DeletionAndSuppressionApi->list_regulations_from_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->list_regulations_from_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **status** | **str**| The status on which to filter returned regulations.  This parameter exists in v1. | [optional] 
+ **regulation_types** | [**List[str]**](str.md)| The regulation types on which to filter returned regulations.  This parameter exists in v1. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListRegulationsFromSource200Response**](ListRegulationsFromSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_suppressions
+
+> ListSuppressions200Response list_suppressions(pagination=pagination)
+
+List Suppressions
+
+Lists all suppressions in a given Workspace.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_suppressions200_response import ListSuppressions200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Suppressions
+        api_response = api_instance.list_suppressions(pagination=pagination)
+        print("The response of DeletionAndSuppressionApi->list_suppressions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->list_suppressions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListSuppressions200Response**](ListSuppressions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_workspace_regulations
+
+> ListWorkspaceRegulations200Response list_workspace_regulations(status=status, regulation_types=regulation_types, pagination=pagination)
+
+List Workspace Regulations
+
+Lists all Workspace-scoped regulations.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_workspace_regulations200_response import ListWorkspaceRegulations200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeletionAndSuppressionApi(api_client)
+    status = 'status_example' # str | The status on which to filter the returned regulations.  This parameter exists in v1. (optional)
+    regulation_types = ['regulation_types_example'] # List[str] | The regulation types on which to filter returned regulations.  This parameter exists in v1. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Workspace Regulations
+        api_response = api_instance.list_workspace_regulations(status=status, regulation_types=regulation_types, pagination=pagination)
+        print("The response of DeletionAndSuppressionApi->list_workspace_regulations:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeletionAndSuppressionApi->list_workspace_regulations: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **status** | **str**| The status on which to filter the returned regulations.  This parameter exists in v1. | [optional] 
+ **regulation_types** | [**List[str]**](str.md)| The regulation types on which to filter returned regulations.  This parameter exists in v1. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListWorkspaceRegulations200Response**](ListWorkspaceRegulations200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/DeliveryOverviewApi.md b/docs/DeliveryOverviewApi.md
new file mode 100644
index 000000000..74a867145
--- /dev/null
+++ b/docs/DeliveryOverviewApi.md
@@ -0,0 +1,542 @@
+# segment_public_api.DeliveryOverviewApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_egress_failed_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_egress_failed_metrics_from_delivery_overview) | **GET** /delivery-overview/failed-delivery | Get Egress Failed Metrics from Delivery Overview
+[**get_egress_success_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_egress_success_metrics_from_delivery_overview) | **GET** /delivery-overview/successful-delivery | Get Egress Success Metrics from Delivery Overview
+[**get_filtered_at_destination_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_filtered_at_destination_metrics_from_delivery_overview) | **GET** /delivery-overview/filtered-at-destination | Get Filtered At Destination Metrics from Delivery Overview
+[**get_filtered_at_source_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_filtered_at_source_metrics_from_delivery_overview) | **GET** /delivery-overview/filtered-at-source | Get Filtered At Source Metrics from Delivery Overview
+[**get_ingress_failed_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_ingress_failed_metrics_from_delivery_overview) | **GET** /delivery-overview/failed-on-ingest | Get Ingress Failed Metrics from Delivery Overview
+[**get_ingress_success_metrics_from_delivery_overview**](DeliveryOverviewApi.md#get_ingress_success_metrics_from_delivery_overview) | **GET** /delivery-overview/successfully-received | Get Ingress Success Metrics from Delivery Overview
+
+
+
+## Operation: get_egress_failed_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_egress_failed_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Egress Failed Metrics from Delivery Overview
+
+Get events that failed to be delivered to Destination.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    destination_config_id = 'fP7qoQw2HTWt9WdMr718gn' # str | The id tied to a Workspace Destination.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewDestinationFilterBy() # DeliveryOverviewDestinationFilterBy | An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Egress Failed Metrics from Delivery Overview
+        api_response = api_instance.get_egress_failed_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_egress_failed_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_egress_failed_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **destination_config_id** | **str**| The id tied to a Workspace Destination.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;app Version&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, and &#x60;spaceId&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewDestinationFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;app Version&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, and/or &#x60;spaceId&#x60; that can be applied in addition to a &#x60;group By&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_egress_success_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_egress_success_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Egress Success Metrics from Delivery Overview
+
+Get events successfully delivered to Destination.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    destination_config_id = 'fP7qoQw2HTWt9WdMr718gn' # str | The id tied to a Workspace Destination.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewDestinationFilterBy() # DeliveryOverviewDestinationFilterBy | An optional filter for `event Name`, `event Type`, `discard Reason`, `appVersion`, `subscription Id`, `activationId`, `audienceId`, or `spaceId` that can be applied in addition to a `group By`. If you would like to view retry attempts for a successful delivery, you can filter `discard Reason` from `successes.attempt.1` through `successes.attempt.10`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Egress Success Metrics from Delivery Overview
+        api_response = api_instance.get_egress_success_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_egress_success_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_egress_success_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **destination_config_id** | **str**| The id tied to a Workspace Destination.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;app Version&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, and &#x60;spaceId&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewDestinationFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;appVersion&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, or &#x60;spaceId&#x60; that can be applied in addition to a &#x60;group By&#x60;. If you would like to view retry attempts for a successful delivery, you can filter &#x60;discard Reason&#x60; from &#x60;successes.attempt.1&#x60; through &#x60;successes.attempt.10&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_filtered_at_destination_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_filtered_at_destination_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Filtered At Destination Metrics from Delivery Overview
+
+Get events that were filtered at Destination.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    destination_config_id = 'fP7qoQw2HTWt9WdMr718gn' # str | The id tied to a Workspace Destination.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName&groupBy.1=subscriptionId'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewDestinationFilterBy() # DeliveryOverviewDestinationFilterBy | An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Filtered At Destination Metrics from Delivery Overview
+        api_response = api_instance.get_filtered_at_destination_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_filtered_at_destination_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_filtered_at_destination_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **destination_config_id** | **str**| The id tied to a Workspace Destination.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;app Version&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, and &#x60;spaceId&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewDestinationFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, &#x60;app Version&#x60;, &#x60;subscription Id&#x60;, &#x60;activationId&#x60;, &#x60;audienceId&#x60;, and/or &#x60;spaceId&#x60; that can be applied in addition to a &#x60;group By&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_filtered_at_source_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_filtered_at_source_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Filtered At Source Metrics from Delivery Overview
+
+Get events that were filtered at Source.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_source_filter_by import DeliveryOverviewSourceFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and `app Version`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewSourceFilterBy() # DeliveryOverviewSourceFilterBy | An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Optional params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Filtered At Source Metrics from Delivery Overview
+        api_response = api_instance.get_filtered_at_source_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_filtered_at_source_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_filtered_at_source_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, and &#x60;app Version&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewSourceFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, and/or &#x60;app Version&#x60; that can be applied in addition to a &#x60;group By&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Optional params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_ingress_failed_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_ingress_failed_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Ingress Failed Metrics from Delivery Overview
+
+Get events that failed on ingest.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_source_filter_by import DeliveryOverviewSourceFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and/or `appVersion`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewSourceFilterBy() # DeliveryOverviewSourceFilterBy | An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Optional params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Ingress Failed Metrics from Delivery Overview
+        api_response = api_instance.get_ingress_failed_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_ingress_failed_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_ingress_failed_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, and/or &#x60;appVersion&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewSourceFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, &#x60;discard Reason&#x60;, and/or &#x60;app Version&#x60; that can be applied in addition to a &#x60;group By&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Optional params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_ingress_success_metrics_from_delivery_overview
+
+> GetEgressFailedMetricsFromDeliveryOverview200Response get_ingress_success_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+
+Get Ingress Success Metrics from Delivery Overview
+
+Get events that were successfully received by Segment.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delivery_overview_successfully_received_filter_by import DeliveryOverviewSuccessfullyReceivedFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DeliveryOverviewApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The sourceId for the Workspace.  This parameter exists in beta.
+    start_time = '2024-01-01T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.
+    end_time = '2024-01-03T00:00:00Z' # str | The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.
+    group_by = ['groupBy.0=eventName'] # List[str] | A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, and/or `app Version`.  This parameter exists in beta. (optional)
+    filter = segment_public_api.DeliveryOverviewSuccessfullyReceivedFilterBy() # DeliveryOverviewSuccessfullyReceivedFilterBy | An optional filter for `event Name`, `event Type`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Optional params to specify the page cursor and count.  This parameter exists in beta. (optional)
+
+    try:
+        # Get Ingress Success Metrics from Delivery Overview
+        api_response = api_instance.get_ingress_success_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by=group_by, filter=filter, pagination=pagination)
+        print("The response of DeliveryOverviewApi->get_ingress_success_metrics_from_delivery_overview:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DeliveryOverviewApi->get_ingress_success_metrics_from_delivery_overview: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**| The sourceId for the Workspace.  This parameter exists in beta. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. | 
+ **granularity** | **str**| The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: &#x60;event Name&#x60;, &#x60;event Type&#x60;, and/or &#x60;app Version&#x60;.  This parameter exists in beta. | [optional] 
+ **filter** | [**DeliveryOverviewSuccessfullyReceivedFilterBy**](.md)| An optional filter for &#x60;event Name&#x60;, &#x60;event Type&#x60;, and/or &#x60;app Version&#x60; that can be applied in addition to a &#x60;group By&#x60;.  This parameter exists in beta. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Optional params to specify the page cursor and count.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**GetEgressFailedMetricsFromDeliveryOverview200Response**](GetEgressFailedMetricsFromDeliveryOverview200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/DestinationFiltersApi.md b/docs/DestinationFiltersApi.md
new file mode 100644
index 000000000..0d9b37f1e
--- /dev/null
+++ b/docs/DestinationFiltersApi.md
@@ -0,0 +1,468 @@
+# segment_public_api.DestinationFiltersApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_filter_for_destination**](DestinationFiltersApi.md#create_filter_for_destination) | **POST** /destination/{destinationId}/filters | Create Filter for Destination
+[**get_filter_in_destination**](DestinationFiltersApi.md#get_filter_in_destination) | **GET** /destination/{destinationId}/filters/{filterId} | Get Filter in Destination
+[**list_filters_from_destination**](DestinationFiltersApi.md#list_filters_from_destination) | **GET** /destination/{destinationId}/filters | List Filters from Destination
+[**preview_destination_filter**](DestinationFiltersApi.md#preview_destination_filter) | **POST** /destination/filters/preview | Preview Destination Filter
+[**remove_filter_from_destination**](DestinationFiltersApi.md#remove_filter_from_destination) | **DELETE** /destination/{destinationId}/filters/{filterId} | Remove Filter from Destination
+[**update_filter_for_destination**](DestinationFiltersApi.md#update_filter_for_destination) | **PATCH** /destination/{destinationId}/filters/{filterId} | Update Filter for Destination
+
+
+
+## Operation: create_filter_for_destination
+
+> CreateFilterForDestination200Response create_filter_for_destination(destination_id, create_filter_for_destination_v1_input)
+
+Create Filter for Destination
+
+Creates a filter in a Destination.    • When called, this endpoint may generate the `Destination Filter Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_filter_for_destination200_response import CreateFilterForDestination200Response
+from segment_public_api.models.create_filter_for_destination_v1_input import CreateFilterForDestinationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    create_filter_for_destination_v1_input = {"sourceId":"rh5BDZp6QDHvXFCkibm1pR","title":"Filter \"Identify\" events","description":"Drop Identify tracking from this destination","if":"type = \"identify\"","actions":[{"type":"DROP"}],"enabled":true} # CreateFilterForDestinationV1Input | 
+
+    try:
+        # Create Filter for Destination
+        api_response = api_instance.create_filter_for_destination(destination_id, create_filter_for_destination_v1_input)
+        print("The response of DestinationFiltersApi->create_filter_for_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->create_filter_for_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **create_filter_for_destination_v1_input** | [**CreateFilterForDestinationV1Input**](CreateFilterForDestinationV1Input.md)|  | 
+
+### Return type
+
+[**CreateFilterForDestination200Response**](CreateFilterForDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_filter_in_destination
+
+> GetFilterInDestination200Response get_filter_in_destination(destination_id, filter_id)
+
+Get Filter in Destination
+
+Gets a Destination filter by id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_filter_in_destination200_response import GetFilterInDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    filter_id = 'xx6AySGeFExzdv2Gw2EuhV' # str | 
+
+    try:
+        # Get Filter in Destination
+        api_response = api_instance.get_filter_in_destination(destination_id, filter_id)
+        print("The response of DestinationFiltersApi->get_filter_in_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->get_filter_in_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **filter_id** | **str**|  | 
+
+### Return type
+
+[**GetFilterInDestination200Response**](GetFilterInDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_filters_from_destination
+
+> ListFiltersFromDestination200Response list_filters_from_destination(destination_id, pagination=pagination)
+
+List Filters from Destination
+
+Lists filters for a Destination.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_filters_from_destination200_response import ListFiltersFromDestination200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    destination_id = 'qtiZHLLqqsHmpvLXNtP5du' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in v1. (optional)
+
+    try:
+        # List Filters from Destination
+        api_response = api_instance.list_filters_from_destination(destination_id, pagination=pagination)
+        print("The response of DestinationFiltersApi->list_filters_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->list_filters_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListFiltersFromDestination200Response**](ListFiltersFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: preview_destination_filter
+
+> PreviewDestinationFilter200Response preview_destination_filter(preview_destination_filter_v1_input)
+
+Preview Destination Filter
+
+Simulates the application of a Destination filter to a provided JSON payload.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.preview_destination_filter200_response import PreviewDestinationFilter200Response
+from segment_public_api.models.preview_destination_filter_v1_input import PreviewDestinationFilterV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    preview_destination_filter_v1_input = {"filter":{"if":"type = \"track\" AND event = \"Order Completed\"","actions":[{"type":"ALLOW_PROPERTIES","fields":{"product":["event","requestedFrom"]}}]},"payload":{"type":"track","event":"Order Completed","product":{"name":"Fake mustache","requestedFrom":"/products/123/checkout","referrer":"www.example.com"}}} # PreviewDestinationFilterV1Input | 
+
+    try:
+        # Preview Destination Filter
+        api_response = api_instance.preview_destination_filter(preview_destination_filter_v1_input)
+        print("The response of DestinationFiltersApi->preview_destination_filter:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->preview_destination_filter: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **preview_destination_filter_v1_input** | [**PreviewDestinationFilterV1Input**](PreviewDestinationFilterV1Input.md)|  | 
+
+### Return type
+
+[**PreviewDestinationFilter200Response**](PreviewDestinationFilter200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_filter_from_destination
+
+> RemoveFilterFromDestination200Response remove_filter_from_destination(destination_id, filter_id)
+
+Remove Filter from Destination
+
+Deletes a Destination filter.    • When called, this endpoint may generate the `Destination Filter Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_filter_from_destination200_response import RemoveFilterFromDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    filter_id = '2c0vbGYWOBwbKszg0F0CoLSS01b' # str | 
+
+    try:
+        # Remove Filter from Destination
+        api_response = api_instance.remove_filter_from_destination(destination_id, filter_id)
+        print("The response of DestinationFiltersApi->remove_filter_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->remove_filter_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **filter_id** | **str**|  | 
+
+### Return type
+
+[**RemoveFilterFromDestination200Response**](RemoveFilterFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_filter_for_destination
+
+> UpdateFilterForDestination200Response update_filter_for_destination(destination_id, filter_id, update_filter_for_destination_v1_input)
+
+Update Filter for Destination
+
+Updates a filter in a Destination.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Destination Filter Enabled * Destination Filter Disabled       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_filter_for_destination200_response import UpdateFilterForDestination200Response
+from segment_public_api.models.update_filter_for_destination_v1_input import UpdateFilterForDestinationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationFiltersApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    filter_id = 'xx6AySGeFExzdv2Gw2EuhV' # str | 
+    update_filter_for_destination_v1_input = {"if":"!(type = \"track\")","actions":[{"type":"DROP"}],"title":"Allow Track","description":"Allows track calls through to the destination.","enabled":true} # UpdateFilterForDestinationV1Input | 
+
+    try:
+        # Update Filter for Destination
+        api_response = api_instance.update_filter_for_destination(destination_id, filter_id, update_filter_for_destination_v1_input)
+        print("The response of DestinationFiltersApi->update_filter_for_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationFiltersApi->update_filter_for_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **filter_id** | **str**|  | 
+ **update_filter_for_destination_v1_input** | [**UpdateFilterForDestinationV1Input**](UpdateFilterForDestinationV1Input.md)|  | 
+
+### Return type
+
+[**UpdateFilterForDestination200Response**](UpdateFilterForDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/DestinationsApi.md b/docs/DestinationsApi.md
new file mode 100644
index 000000000..9171e6284
--- /dev/null
+++ b/docs/DestinationsApi.md
@@ -0,0 +1,850 @@
+# segment_public_api.DestinationsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_destination**](DestinationsApi.md#create_destination) | **POST** /destinations | Create Destination
+[**create_destination_subscription**](DestinationsApi.md#create_destination_subscription) | **POST** /destinations/{destinationId}/subscriptions | Create Destination Subscription
+[**delete_destination**](DestinationsApi.md#delete_destination) | **DELETE** /destinations/{destinationId} | Delete Destination
+[**get_destination**](DestinationsApi.md#get_destination) | **GET** /destinations/{destinationId} | Get Destination
+[**get_subscription_from_destination**](DestinationsApi.md#get_subscription_from_destination) | **GET** /destinations/{destinationId}/subscriptions/{id} | Get Subscription from Destination
+[**list_delivery_metrics_summary_from_destination**](DestinationsApi.md#list_delivery_metrics_summary_from_destination) | **GET** /destinations/{destinationId}/delivery-metrics | List Delivery Metrics Summary from Destination
+[**list_destinations**](DestinationsApi.md#list_destinations) | **GET** /destinations | List Destinations
+[**list_subscriptions_from_destination**](DestinationsApi.md#list_subscriptions_from_destination) | **GET** /destinations/{destinationId}/subscriptions | List Subscriptions from Destination
+[**remove_subscription_from_destination**](DestinationsApi.md#remove_subscription_from_destination) | **DELETE** /destinations/{destinationId}/subscriptions/{id} | Remove Subscription from Destination
+[**update_destination**](DestinationsApi.md#update_destination) | **PATCH** /destinations/{destinationId} | Update Destination
+[**update_subscription_for_destination**](DestinationsApi.md#update_subscription_for_destination) | **PATCH** /destinations/{destinationId}/subscriptions/{id} | Update Subscription for Destination
+
+
+
+## Operation: create_destination
+
+> CreateDestination200Response create_destination(create_destination_v1_input)
+
+Create Destination
+
+Creates a new Destination.    • When called, this endpoint may generate the `Integration Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_destination200_response import CreateDestination200Response
+from segment_public_api.models.create_destination_v1_input import CreateDestinationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    create_destination_v1_input = {"sourceId":"rh5BDZp6QDHvXFCkibm1pR","metadataId":"54521fd525e721e32a72ee91","name":"my destination v1","settings":{"apiKey":"3cb9b589437d3904f19b2b791c2cdada","retarget":true}} # CreateDestinationV1Input | 
+
+    try:
+        # Create Destination
+        api_response = api_instance.create_destination(create_destination_v1_input)
+        print("The response of DestinationsApi->create_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->create_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_destination_v1_input** | [**CreateDestinationV1Input**](CreateDestinationV1Input.md)|  | 
+
+### Return type
+
+[**CreateDestination200Response**](CreateDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_destination_subscription
+
+> CreateDestinationSubscription200Response create_destination_subscription(destination_id, create_destination_subscription_alpha_input)
+
+Create Destination Subscription
+
+Creates a new Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_destination_subscription200_response import CreateDestinationSubscription200Response
+from segment_public_api.models.create_destination_subscription_alpha_input import CreateDestinationSubscriptionAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    create_destination_subscription_alpha_input = {"name":"Example Subscription","actionId":"jiMz7MfHNeHmUckzRnUGkU","trigger":"type = \"track\"","enabled":false} # CreateDestinationSubscriptionAlphaInput | 
+
+    try:
+        # Create Destination Subscription
+        api_response = api_instance.create_destination_subscription(destination_id, create_destination_subscription_alpha_input)
+        print("The response of DestinationsApi->create_destination_subscription:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->create_destination_subscription: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **create_destination_subscription_alpha_input** | [**CreateDestinationSubscriptionAlphaInput**](CreateDestinationSubscriptionAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateDestinationSubscription200Response**](CreateDestinationSubscription200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_destination
+
+> DeleteDestination200Response delete_destination(destination_id)
+
+Delete Destination
+
+Deletes an existing Destination.    • When called, this endpoint may generate the `Integration Deleted` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `catalogId`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_destination200_response import DeleteDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = '65c2bdbede6f2d8297f943db' # str | 
+
+    try:
+        # Delete Destination
+        api_response = api_instance.delete_destination(destination_id)
+        print("The response of DestinationsApi->delete_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->delete_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+
+### Return type
+
+[**DeleteDestination200Response**](DeleteDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_destination
+
+> GetDestination200Response get_destination(destination_id)
+
+Get Destination
+
+Returns a Destination by its id.        Config API omitted fields: - `catalogId` 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_destination200_response import GetDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'qtiZHLLqqsHmpvLXNtP5du' # str | 
+
+    try:
+        # Get Destination
+        api_response = api_instance.get_destination(destination_id)
+        print("The response of DestinationsApi->get_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->get_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+
+### Return type
+
+[**GetDestination200Response**](GetDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_subscription_from_destination
+
+> GetSubscriptionFromDestination200Response get_subscription_from_destination(destination_id, id)
+
+Get Subscription from Destination
+
+Gets a Destination subscription by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_subscription_from_destination200_response import GetSubscriptionFromDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    id = 'kyMKN6LUgMvF8dwRMEz3cX' # str | 
+
+    try:
+        # Get Subscription from Destination
+        api_response = api_instance.get_subscription_from_destination(destination_id, id)
+        print("The response of DestinationsApi->get_subscription_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->get_subscription_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**GetSubscriptionFromDestination200Response**](GetSubscriptionFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_delivery_metrics_summary_from_destination
+
+> ListDeliveryMetricsSummaryFromDestination200Response list_delivery_metrics_summary_from_destination(destination_id, source_id, start_time=start_time, end_time=end_time, granularity=granularity)
+
+List Delivery Metrics Summary from Destination
+
+Get an event delivery metrics summary from a Destination.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 7 days - Oldest possible start time: 7 days in the past  **Day**: - Max time range: 14 days - Oldest possible start time: 14 days in the past
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_delivery_metrics_summary_from_destination200_response import ListDeliveryMetricsSummaryFromDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | The id of the Source linked to the Destination.  Config API note: analogous to `parent`.  This parameter exists in beta.
+    start_time = '2006-01-02T15:04:05.000Z' # str | Filter events that happened after this time.  Defaults to: - 1 hour ago if granularity is `MINUTE`. - 7 days ago if granularity is `HOUR`. - 30 days ago if granularity is `DAY`.  This parameter exists in beta. (optional)
+    end_time = '2006-01-02T15:04:05.000Z' # str | Filter events that happened before this time. Defaults to now if not set.  This parameter exists in beta. (optional)
+    granularity = 'DAY' # str | The granularity to filter metrics to. Either `MINUTE`, `HOUR` or `DAY`.  Defaults to `MINUTE` if not set.  This parameter exists in beta. (optional)
+
+    try:
+        # List Delivery Metrics Summary from Destination
+        api_response = api_instance.list_delivery_metrics_summary_from_destination(destination_id, source_id, start_time=start_time, end_time=end_time, granularity=granularity)
+        print("The response of DestinationsApi->list_delivery_metrics_summary_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->list_delivery_metrics_summary_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **source_id** | **str**| The id of the Source linked to the Destination.  Config API note: analogous to &#x60;parent&#x60;.  This parameter exists in beta. | 
+ **start_time** | **str**| Filter events that happened after this time.  Defaults to: - 1 hour ago if granularity is &#x60;MINUTE&#x60;. - 7 days ago if granularity is &#x60;HOUR&#x60;. - 30 days ago if granularity is &#x60;DAY&#x60;.  This parameter exists in beta. | [optional] 
+ **end_time** | **str**| Filter events that happened before this time. Defaults to now if not set.  This parameter exists in beta. | [optional] 
+ **granularity** | **str**| The granularity to filter metrics to. Either &#x60;MINUTE&#x60;, &#x60;HOUR&#x60; or &#x60;DAY&#x60;.  Defaults to &#x60;MINUTE&#x60; if not set.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**ListDeliveryMetricsSummaryFromDestination200Response**](ListDeliveryMetricsSummaryFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_destinations
+
+> ListDestinations200Response list_destinations(pagination=pagination)
+
+List Destinations
+
+Returns a list of Destinations.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_destinations200_response import ListDestinations200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Required pagination params for the request.  This parameter exists in v1. (optional)
+
+    try:
+        # List Destinations
+        api_response = api_instance.list_destinations(pagination=pagination)
+        print("The response of DestinationsApi->list_destinations:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->list_destinations: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Required pagination params for the request.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListDestinations200Response**](ListDestinations200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_subscriptions_from_destination
+
+> ListSubscriptionsFromDestination200Response list_subscriptions_from_destination(destination_id, pagination=pagination)
+
+List Subscriptions from Destination
+
+Lists subscriptions for a Destination.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_subscriptions_from_destination200_response import ListSubscriptionsFromDestination200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Subscriptions from Destination
+        api_response = api_instance.list_subscriptions_from_destination(destination_id, pagination=pagination)
+        print("The response of DestinationsApi->list_subscriptions_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->list_subscriptions_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListSubscriptionsFromDestination200Response**](ListSubscriptionsFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_subscription_from_destination
+
+> RemoveSubscriptionFromDestination200Response remove_subscription_from_destination(destination_id, id)
+
+Remove Subscription from Destination
+
+Deletes an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_subscription_from_destination200_response import RemoveSubscriptionFromDestination200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'fP7qoQw2HTWt9WdMr718gn' # str | 
+    id = 'zXCqmEMHJojkD45GcBAPt' # str | 
+
+    try:
+        # Remove Subscription from Destination
+        api_response = api_instance.remove_subscription_from_destination(destination_id, id)
+        print("The response of DestinationsApi->remove_subscription_from_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->remove_subscription_from_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **id** | **str**|  | 
+
+### Return type
+
+[**RemoveSubscriptionFromDestination200Response**](RemoveSubscriptionFromDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_destination
+
+> UpdateDestination200Response update_destination(destination_id, update_destination_v1_input)
+
+Update Destination
+
+Updates an existing Destination.  **Note**: if you attempt to update read-only settings for your destination you'll encounter the following behavior:    * If only read-only properties are being updated, the endpoint will return an HTTP 400 error.   * If there's a mix of writable and read-only properties in the payload, the request will be accepted, the writable properties will be updated and the read-only properties ignored.     • When called, this endpoint may generate the `Integration Disabled` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `updateMask`          
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_destination200_response import UpdateDestination200Response
+from segment_public_api.models.update_destination_v1_input import UpdateDestinationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'qtiZHLLqqsHmpvLXNtP5du' # str | 
+    update_destination_v1_input = {"enabled":false} # UpdateDestinationV1Input | 
+
+    try:
+        # Update Destination
+        api_response = api_instance.update_destination(destination_id, update_destination_v1_input)
+        print("The response of DestinationsApi->update_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->update_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **update_destination_v1_input** | [**UpdateDestinationV1Input**](UpdateDestinationV1Input.md)|  | 
+
+### Return type
+
+[**UpdateDestination200Response**](UpdateDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_subscription_for_destination
+
+> UpdateSubscriptionForDestination200Response update_subscription_for_destination(destination_id, id, update_subscription_for_destination_alpha_input)
+
+Update Subscription for Destination
+
+Updates an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_subscription_for_destination200_response import UpdateSubscriptionForDestination200Response
+from segment_public_api.models.update_subscription_for_destination_alpha_input import UpdateSubscriptionForDestinationAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.DestinationsApi(api_client)
+    destination_id = 'qtiZHLLqqsHmpvLXNtP5du' # str | 
+    id = 'pJtn52LjrcD1TrQcm2ZSwp' # str | 
+    update_subscription_for_destination_alpha_input = {"input":{"name":"Updated name"}} # UpdateSubscriptionForDestinationAlphaInput | 
+
+    try:
+        # Update Subscription for Destination
+        api_response = api_instance.update_subscription_for_destination(destination_id, id, update_subscription_for_destination_alpha_input)
+        print("The response of DestinationsApi->update_subscription_for_destination:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling DestinationsApi->update_subscription_for_destination: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **destination_id** | **str**|  | 
+ **id** | **str**|  | 
+ **update_subscription_for_destination_alpha_input** | [**UpdateSubscriptionForDestinationAlphaInput**](UpdateSubscriptionForDestinationAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateSubscriptionForDestination200Response**](UpdateSubscriptionForDestination200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/EdgeFunctionsApi.md b/docs/EdgeFunctionsApi.md
new file mode 100644
index 000000000..54f5aeea7
--- /dev/null
+++ b/docs/EdgeFunctionsApi.md
@@ -0,0 +1,307 @@
+# segment_public_api.EdgeFunctionsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_edge_functions**](EdgeFunctionsApi.md#create_edge_functions) | **POST** /sources/{sourceId}/edge-functions | Create Edge Functions
+[**disable_edge_functions**](EdgeFunctionsApi.md#disable_edge_functions) | **PATCH** /sources/{sourceId}/edge-functions/disable | Disable Edge Functions
+[**generate_upload_url_for_edge_functions**](EdgeFunctionsApi.md#generate_upload_url_for_edge_functions) | **POST** /sources/{sourceId}/edge-functions/upload-url | Generate Upload URL for Edge Functions
+[**get_latest_from_edge_functions**](EdgeFunctionsApi.md#get_latest_from_edge_functions) | **GET** /sources/{sourceId}/edge-functions/latest | Get Latest from Edge Functions
+
+
+
+## Operation: create_edge_functions
+
+> CreateEdgeFunctions200Response create_edge_functions(source_id, create_edge_functions_alpha_input)
+
+Create Edge Functions
+
+Create EdgeFunctions for your Source given a valid upload URL for an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_edge_functions200_response import CreateEdgeFunctions200Response
+from segment_public_api.models.create_edge_functions_alpha_input import CreateEdgeFunctionsAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.EdgeFunctionsApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    create_edge_functions_alpha_input = {"uploadURL":"<upload_url>"} # CreateEdgeFunctionsAlphaInput | 
+
+    try:
+        # Create Edge Functions
+        api_response = api_instance.create_edge_functions(source_id, create_edge_functions_alpha_input)
+        print("The response of EdgeFunctionsApi->create_edge_functions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling EdgeFunctionsApi->create_edge_functions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **create_edge_functions_alpha_input** | [**CreateEdgeFunctionsAlphaInput**](CreateEdgeFunctionsAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateEdgeFunctions200Response**](CreateEdgeFunctions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: disable_edge_functions
+
+> DisableEdgeFunctions200Response disable_edge_functions(source_id)
+
+Disable Edge Functions
+
+Disable Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.disable_edge_functions200_response import DisableEdgeFunctions200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.EdgeFunctionsApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+
+    try:
+        # Disable Edge Functions
+        api_response = api_instance.disable_edge_functions(source_id)
+        print("The response of EdgeFunctionsApi->disable_edge_functions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling EdgeFunctionsApi->disable_edge_functions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**DisableEdgeFunctions200Response**](DisableEdgeFunctions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: generate_upload_url_for_edge_functions
+
+> GenerateUploadURLForEdgeFunctions200Response generate_upload_url_for_edge_functions(source_id)
+
+Generate Upload URL for Edge Functions
+
+Generate a temporary upload URL that can be used to upload an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.generate_upload_url_for_edge_functions200_response import GenerateUploadURLForEdgeFunctions200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.EdgeFunctionsApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+
+    try:
+        # Generate Upload URL for Edge Functions
+        api_response = api_instance.generate_upload_url_for_edge_functions(source_id)
+        print("The response of EdgeFunctionsApi->generate_upload_url_for_edge_functions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling EdgeFunctionsApi->generate_upload_url_for_edge_functions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**GenerateUploadURLForEdgeFunctions200Response**](GenerateUploadURLForEdgeFunctions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_latest_from_edge_functions
+
+> GetLatestFromEdgeFunctions200Response get_latest_from_edge_functions(source_id)
+
+Get Latest from Edge Functions
+
+Get the latest Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_latest_from_edge_functions200_response import GetLatestFromEdgeFunctions200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.EdgeFunctionsApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+
+    try:
+        # Get Latest from Edge Functions
+        api_response = api_instance.get_latest_from_edge_functions(source_id)
+        print("The response of EdgeFunctionsApi->get_latest_from_edge_functions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling EdgeFunctionsApi->get_latest_from_edge_functions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**GetLatestFromEdgeFunctions200Response**](GetLatestFromEdgeFunctions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/EventsApi.md b/docs/EventsApi.md
new file mode 100644
index 000000000..efe205af9
--- /dev/null
+++ b/docs/EventsApi.md
@@ -0,0 +1,99 @@
+# segment_public_api.EventsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_events_volume_from_workspace**](EventsApi.md#get_events_volume_from_workspace) | **GET** /events/volume | Get Events Volume from Workspace
+
+
+
+## Operation: get_events_volume_from_workspace
+
+> GetEventsVolumeFromWorkspace200Response get_events_volume_from_workspace(granularity, start_time, end_time, group_by=group_by, source_id=source_id, event_name=event_name, event_type=event_type, app_version=app_version, pagination=pagination)
+
+Get Events Volume from Workspace
+
+Enumerates the Workspace event volumes over time in minute increments.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_events_volume_from_workspace200_response import GetEventsVolumeFromWorkspace200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.EventsApi(api_client)
+    granularity = 'DAY' # str | The size of each bucket in the requested window.  This parameter exists in v1.
+    start_time = '2021-10-28T00:00:00Z' # str | The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1.
+    end_time = '2021-10-29T16:40:00Z' # str | The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1.
+    group_by = ['groupBy.0=eventType'] # List[str] | A comma-delimited list of strings that represents the dimensions to group the result by. The options are: `eventName`, `eventType` and `source`.  This parameter exists in v1. (optional)
+    source_id = ['source_id_example'] # List[str] | A list of strings which filters the results to the given SourceIds.  This parameter exists in v1. (optional)
+    event_name = ['event_name_example'] # List[str] | A list of strings which filters the results to the given EventNames.  This parameter exists in v1. (optional)
+    event_type = ['event_type_example'] # List[str] | A list of strings which filters the results to the given EventTypes.  This parameter exists in v1. (optional)
+    app_version = ['app_version_example'] # List[str] | A list of strings which filters the results to the given AppVersions.  This parameter exists in v1. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination input for event volume by Workspace.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Events Volume from Workspace
+        api_response = api_instance.get_events_volume_from_workspace(granularity, start_time, end_time, group_by=group_by, source_id=source_id, event_name=event_name, event_type=event_type, app_version=app_version, pagination=pagination)
+        print("The response of EventsApi->get_events_volume_from_workspace:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling EventsApi->get_events_volume_from_workspace: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **granularity** | **str**| The size of each bucket in the requested window.  This parameter exists in v1. | 
+ **start_time** | **str**| The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1. | 
+ **end_time** | **str**| The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1. | 
+ **group_by** | [**List[str]**](str.md)| A comma-delimited list of strings that represents the dimensions to group the result by. The options are: &#x60;eventName&#x60;, &#x60;eventType&#x60; and &#x60;source&#x60;.  This parameter exists in v1. | [optional] 
+ **source_id** | [**List[str]**](str.md)| A list of strings which filters the results to the given SourceIds.  This parameter exists in v1. | [optional] 
+ **event_name** | [**List[str]**](str.md)| A list of strings which filters the results to the given EventNames.  This parameter exists in v1. | [optional] 
+ **event_type** | [**List[str]**](str.md)| A list of strings which filters the results to the given EventTypes.  This parameter exists in v1. | [optional] 
+ **app_version** | [**List[str]**](str.md)| A list of strings which filters the results to the given AppVersions.  This parameter exists in v1. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Pagination input for event volume by Workspace.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetEventsVolumeFromWorkspace200Response**](GetEventsVolumeFromWorkspace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/FunctionsApi.md b/docs/FunctionsApi.md
new file mode 100644
index 000000000..57478aeec
--- /dev/null
+++ b/docs/FunctionsApi.md
@@ -0,0 +1,1066 @@
+# segment_public_api.FunctionsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_function**](FunctionsApi.md#create_function) | **POST** /functions | Create Function
+[**create_function_deployment**](FunctionsApi.md#create_function_deployment) | **POST** /functions/{functionId}/deploy | Create Function Deployment
+[**create_insert_function_instance**](FunctionsApi.md#create_insert_function_instance) | **POST** /insert-function-instances | Create Insert Function Instance
+[**delete_function**](FunctionsApi.md#delete_function) | **DELETE** /functions/{functionId} | Delete Function
+[**delete_insert_function_instance**](FunctionsApi.md#delete_insert_function_instance) | **DELETE** /insert-function-instances/{instanceId} | Delete Insert Function Instance
+[**get_function**](FunctionsApi.md#get_function) | **GET** /functions/{functionId} | Get Function
+[**get_function_version**](FunctionsApi.md#get_function_version) | **GET** /functions/{functionId}/versions/{versionId} | Get Function Version
+[**get_insert_function_instance**](FunctionsApi.md#get_insert_function_instance) | **GET** /insert-function-instances/{instanceId} | Get Insert Function Instance
+[**list_function_versions**](FunctionsApi.md#list_function_versions) | **GET** /functions/{functionId}/versions | List Function Versions
+[**list_functions**](FunctionsApi.md#list_functions) | **GET** /functions | List Functions
+[**list_insert_function_instances**](FunctionsApi.md#list_insert_function_instances) | **GET** /insert-function-instances | List Insert Function Instances
+[**restore_function_version**](FunctionsApi.md#restore_function_version) | **POST** /functions/{functionId}/versions | Restore Function Version
+[**update_function**](FunctionsApi.md#update_function) | **PATCH** /functions/{functionId} | Update Function
+[**update_insert_function_instance**](FunctionsApi.md#update_insert_function_instance) | **PATCH** /insert-function-instances/{instanceId} | Update Insert Function Instance
+
+
+
+## Operation: create_function
+
+> CreateFunction200Response create_function(create_function_v1_input)
+
+Create Function
+
+Creates a Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_function200_response import CreateFunction200Response
+from segment_public_api.models.create_function_v1_input import CreateFunctionV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    create_function_v1_input = {"code":"// Learn more about source functions API at https://segment.com/docs/connections/sources/source-functions","settings":[{"name":"apiKey","label":"api key","type":"STRING","description":"api key","required":false,"sensitive":false},{"name":"mySecret","label":"my secret key","type":"STRING","description":"secret key","required":false,"sensitive":true}],"displayName":"PAPI Source Function","resourceType":"SOURCE","logoUrl":"https://placekitten.com/200/139","description":"My source function"} # CreateFunctionV1Input | 
+
+    try:
+        # Create Function
+        api_response = api_instance.create_function(create_function_v1_input)
+        print("The response of FunctionsApi->create_function:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->create_function: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_function_v1_input** | [**CreateFunctionV1Input**](CreateFunctionV1Input.md)|  | 
+
+### Return type
+
+[**CreateFunction200Response**](CreateFunction200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_function_deployment
+
+> CreateFunctionDeployment200Response create_function_deployment(function_id)
+
+Create Function Deployment
+
+Deploys a Function. Only applicable to Source Function instances.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_function_deployment200_response import CreateFunctionDeployment200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfn_rh5BDZp6QDHvXFCkibm1pR' # str | 
+
+    try:
+        # Create Function Deployment
+        api_response = api_instance.create_function_deployment(function_id)
+        print("The response of FunctionsApi->create_function_deployment:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->create_function_deployment: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+
+### Return type
+
+[**CreateFunctionDeployment200Response**](CreateFunctionDeployment200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_insert_function_instance
+
+> CreateInsertFunctionInstance200Response create_insert_function_instance(create_insert_function_instance_alpha_input)
+
+Create Insert Function Instance
+
+Creates an insert Function instance connected to the given Destination.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_insert_function_instance200_response import CreateInsertFunctionInstance200Response
+from segment_public_api.models.create_insert_function_instance_alpha_input import CreateInsertFunctionInstanceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    create_insert_function_instance_alpha_input = {"functionId":"76365637324e715a67535831","integrationId":"fP7qoQw2HTWt9WdMr718gn","name":"Example insert function instance","settings":{"apiKey":"XYZ"}} # CreateInsertFunctionInstanceAlphaInput | 
+
+    try:
+        # Create Insert Function Instance
+        api_response = api_instance.create_insert_function_instance(create_insert_function_instance_alpha_input)
+        print("The response of FunctionsApi->create_insert_function_instance:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->create_insert_function_instance: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_insert_function_instance_alpha_input** | [**CreateInsertFunctionInstanceAlphaInput**](CreateInsertFunctionInstanceAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateInsertFunctionInstance200Response**](CreateInsertFunctionInstance200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_function
+
+> DeleteFunction200Response delete_function(function_id)
+
+Delete Function
+
+Deletes a Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_function200_response import DeleteFunction200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+
+    try:
+        # Delete Function
+        api_response = api_instance.delete_function(function_id)
+        print("The response of FunctionsApi->delete_function:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->delete_function: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+
+### Return type
+
+[**DeleteFunction200Response**](DeleteFunction200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_insert_function_instance
+
+> DeleteInsertFunctionInstance200Response delete_insert_function_instance(instance_id)
+
+Delete Insert Function Instance
+
+Deletes an insert Function instance.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_insert_function_instance200_response import DeleteInsertFunctionInstance200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    instance_id = '65c2bdbdde6f2d8297f943da' # str | 
+
+    try:
+        # Delete Insert Function Instance
+        api_response = api_instance.delete_insert_function_instance(instance_id)
+        print("The response of FunctionsApi->delete_insert_function_instance:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->delete_insert_function_instance: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **instance_id** | **str**|  | 
+
+### Return type
+
+[**DeleteInsertFunctionInstance200Response**](DeleteInsertFunctionInstance200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_function
+
+> GetFunction200Response get_function(function_id)
+
+Get Function
+
+Gets a Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_function200_response import GetFunction200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+
+    try:
+        # Get Function
+        api_response = api_instance.get_function(function_id)
+        print("The response of FunctionsApi->get_function:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->get_function: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+
+### Return type
+
+[**GetFunction200Response**](GetFunction200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_function_version
+
+> GetFunctionVersion200Response get_function_version(function_id, version_id)
+
+Get Function Version
+
+Gets a Function version.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_function_version200_response import GetFunctionVersion200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+    version_id = '2Ma03fahSqLoEzQfV5o2aSfVEHs' # str | 
+
+    try:
+        # Get Function Version
+        api_response = api_instance.get_function_version(function_id, version_id)
+        print("The response of FunctionsApi->get_function_version:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->get_function_version: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+ **version_id** | **str**|  | 
+
+### Return type
+
+[**GetFunctionVersion200Response**](GetFunctionVersion200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_insert_function_instance
+
+> GetInsertFunctionInstance200Response get_insert_function_instance(instance_id)
+
+Get Insert Function Instance
+
+Gets an insert Function instance.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_insert_function_instance200_response import GetInsertFunctionInstance200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    instance_id = '65c2bdbcde6f2d8297f943d7' # str | 
+
+    try:
+        # Get Insert Function Instance
+        api_response = api_instance.get_insert_function_instance(instance_id)
+        print("The response of FunctionsApi->get_insert_function_instance:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->get_insert_function_instance: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **instance_id** | **str**|  | 
+
+### Return type
+
+[**GetInsertFunctionInstance200Response**](GetInsertFunctionInstance200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_function_versions
+
+> ListFunctionVersions200Response list_function_versions(function_id, pagination=pagination)
+
+List Function Versions
+
+Lists versions for a Function in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_function_versions200_response import ListFunctionVersions200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Function Versions
+        api_response = api_instance.list_function_versions(function_id, pagination=pagination)
+        print("The response of FunctionsApi->list_function_versions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->list_function_versions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListFunctionVersions200Response**](ListFunctionVersions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_functions
+
+> ListFunctions200Response list_functions(resource_type, pagination=pagination)
+
+List Functions
+
+Lists all Functions in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_functions200_response import ListFunctions200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    resource_type = 'SOURCE' # str | The Function type.  Config API note: equal to `type`.  This parameter exists in v1.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Functions
+        api_response = api_instance.list_functions(resource_type, pagination=pagination)
+        print("The response of FunctionsApi->list_functions:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->list_functions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **resource_type** | **str**| The Function type.  Config API note: equal to &#x60;type&#x60;.  This parameter exists in v1. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListFunctions200Response**](ListFunctions200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_insert_function_instances
+
+> ListInsertFunctionInstances200Response list_insert_function_instances(function_id, pagination=pagination)
+
+List Insert Function Instances
+
+Lists all insert Function instances connected to the given insert Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_insert_function_instances200_response import ListInsertFunctionInstances200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = '76365637324e715a67535831' # str | The insert Function class id to lookup.  This parameter exists in alpha.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Insert Function Instances
+        api_response = api_instance.list_insert_function_instances(function_id, pagination=pagination)
+        print("The response of FunctionsApi->list_insert_function_instances:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->list_insert_function_instances: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**| The insert Function class id to lookup.  This parameter exists in alpha. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListInsertFunctionInstances200Response**](ListInsertFunctionInstances200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: restore_function_version
+
+> RestoreFunctionVersion200Response restore_function_version(function_id, restore_function_version_alpha_input)
+
+Restore Function Version
+
+Restore an old Function version as the latest version.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.restore_function_version200_response import RestoreFunctionVersion200Response
+from segment_public_api.models.restore_function_version_alpha_input import RestoreFunctionVersionAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+    restore_function_version_alpha_input = {"versionId":"2Ma03fahSqLoEzQfV5o2aSfVEHs"} # RestoreFunctionVersionAlphaInput | 
+
+    try:
+        # Restore Function Version
+        api_response = api_instance.restore_function_version(function_id, restore_function_version_alpha_input)
+        print("The response of FunctionsApi->restore_function_version:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->restore_function_version: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+ **restore_function_version_alpha_input** | [**RestoreFunctionVersionAlphaInput**](RestoreFunctionVersionAlphaInput.md)|  | 
+
+### Return type
+
+[**RestoreFunctionVersion200Response**](RestoreFunctionVersion200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_function
+
+> UpdateFunction200Response update_function(function_id, update_function_v1_input)
+
+Update Function
+
+Updates a Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  Config API omitted fields: - `updateMask` 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_function200_response import UpdateFunction200Response
+from segment_public_api.models.update_function_v1_input import UpdateFunctionV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    function_id = 'sfnc_wXzcDGFR3KmjLDrtSawNHf' # str | 
+    update_function_v1_input = {"code":"// Learn more about source functions API at https://segment.com/docs/connections/sources/source-functions","logoUrl":"https://placekitten.com/200/139"} # UpdateFunctionV1Input | 
+
+    try:
+        # Update Function
+        api_response = api_instance.update_function(function_id, update_function_v1_input)
+        print("The response of FunctionsApi->update_function:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->update_function: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **function_id** | **str**|  | 
+ **update_function_v1_input** | [**UpdateFunctionV1Input**](UpdateFunctionV1Input.md)|  | 
+
+### Return type
+
+[**UpdateFunction200Response**](UpdateFunction200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_insert_function_instance
+
+> UpdateInsertFunctionInstance200Response update_insert_function_instance(instance_id, update_insert_function_instance_alpha_input)
+
+Update Insert Function Instance
+
+Updates an insert Function instance connected to the given Destination.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_insert_function_instance200_response import UpdateInsertFunctionInstance200Response
+from segment_public_api.models.update_insert_function_instance_alpha_input import UpdateInsertFunctionInstanceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.FunctionsApi(api_client)
+    instance_id = '65c2bdbcde6f2d8297f943d8' # str | 
+    update_insert_function_instance_alpha_input = {"enabled":false,"settings":{"apiKey":"XYZ-new"}} # UpdateInsertFunctionInstanceAlphaInput | 
+
+    try:
+        # Update Insert Function Instance
+        api_response = api_instance.update_insert_function_instance(instance_id, update_insert_function_instance_alpha_input)
+        print("The response of FunctionsApi->update_insert_function_instance:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling FunctionsApi->update_insert_function_instance: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **instance_id** | **str**|  | 
+ **update_insert_function_instance_alpha_input** | [**UpdateInsertFunctionInstanceAlphaInput**](UpdateInsertFunctionInstanceAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateInsertFunctionInstance200Response**](UpdateInsertFunctionInstance200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/IAMGroupsApi.md b/docs/IAMGroupsApi.md
new file mode 100644
index 000000000..9da95d29e
--- /dev/null
+++ b/docs/IAMGroupsApi.md
@@ -0,0 +1,921 @@
+# segment_public_api.IAMGroupsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_permissions_to_user_group**](IAMGroupsApi.md#add_permissions_to_user_group) | **POST** /groups/{userGroupId}/permissions | Add Permissions to User Group
+[**add_users_to_user_group**](IAMGroupsApi.md#add_users_to_user_group) | **POST** /groups/{userGroupId}/users | Add Users to User Group
+[**create_user_group**](IAMGroupsApi.md#create_user_group) | **POST** /groups | Create User Group
+[**delete_user_group**](IAMGroupsApi.md#delete_user_group) | **DELETE** /groups/{userGroupId} | Delete User Group
+[**get_user_group**](IAMGroupsApi.md#get_user_group) | **GET** /groups/{userGroupId} | Get User Group
+[**list_invites_from_user_group**](IAMGroupsApi.md#list_invites_from_user_group) | **GET** /groups/{userGroupId}/invites | List Invites from User Group
+[**list_user_groups**](IAMGroupsApi.md#list_user_groups) | **GET** /groups | List User Groups
+[**list_users_from_user_group**](IAMGroupsApi.md#list_users_from_user_group) | **GET** /groups/{userGroupId}/users | List Users from User Group
+[**remove_users_from_user_group**](IAMGroupsApi.md#remove_users_from_user_group) | **DELETE** /group/{userGroupId}/users | Remove Users from User Group
+[**replace_permissions_for_user_group**](IAMGroupsApi.md#replace_permissions_for_user_group) | **PUT** /groups/{userGroupId}/permissions | Replace Permissions for User Group
+[**replace_users_in_user_group**](IAMGroupsApi.md#replace_users_in_user_group) | **PUT** /group/{userGroupId}/users | Replace Users in User Group
+[**update_user_group**](IAMGroupsApi.md#update_user_group) | **PATCH** /groups/{userGroupId} | Update User Group
+
+
+
+## Operation: add_permissions_to_user_group
+
+> AddPermissionsToUserGroup200Response add_permissions_to_user_group(user_group_id, add_permissions_to_user_group_v1_input)
+
+Add Permissions to User Group
+
+Adds a list of access permissions to a user group.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Policy Created * User Group Policy Updated          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_permissions_to_user_group200_response import AddPermissionsToUserGroup200Response
+from segment_public_api.models.add_permissions_to_user_group_v1_input import AddPermissionsToUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    add_permissions_to_user_group_v1_input = {"permissions":[{"roleId":"1WDUuRLxv84rrfCNUwvkrRtkxnS","resources":[{"id":"9aQ1Lj62S4bomZKLF4DPqW","type":"WORKSPACE"}]}]} # AddPermissionsToUserGroupV1Input | 
+
+    try:
+        # Add Permissions to User Group
+        api_response = api_instance.add_permissions_to_user_group(user_group_id, add_permissions_to_user_group_v1_input)
+        print("The response of IAMGroupsApi->add_permissions_to_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->add_permissions_to_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **add_permissions_to_user_group_v1_input** | [**AddPermissionsToUserGroupV1Input**](AddPermissionsToUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**AddPermissionsToUserGroup200Response**](AddPermissionsToUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: add_users_to_user_group
+
+> AddUsersToUserGroup200Response add_users_to_user_group(user_group_id, add_users_to_user_group_v1_input)
+
+Add Users to User Group
+
+Adds a list of users or invites to a user group.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Subjects Added to Group * User Added To User Group          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_users_to_user_group200_response import AddUsersToUserGroup200Response
+from segment_public_api.models.add_users_to_user_group_v1_input import AddUsersToUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    add_users_to_user_group_v1_input = {"emails":["foo@example.com"]} # AddUsersToUserGroupV1Input | 
+
+    try:
+        # Add Users to User Group
+        api_response = api_instance.add_users_to_user_group(user_group_id, add_users_to_user_group_v1_input)
+        print("The response of IAMGroupsApi->add_users_to_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->add_users_to_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **add_users_to_user_group_v1_input** | [**AddUsersToUserGroupV1Input**](AddUsersToUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**AddUsersToUserGroup200Response**](AddUsersToUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_user_group
+
+> CreateUserGroup200Response create_user_group(create_user_group_v1_input)
+
+Create User Group
+
+Creates a user group.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* User Group Created * Policy Created          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_user_group200_response import CreateUserGroup200Response
+from segment_public_api.models.create_user_group_v1_input import CreateUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    create_user_group_v1_input = {"name":"New User Group Nbr5tuI40h"} # CreateUserGroupV1Input | 
+
+    try:
+        # Create User Group
+        api_response = api_instance.create_user_group(create_user_group_v1_input)
+        print("The response of IAMGroupsApi->create_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->create_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_user_group_v1_input** | [**CreateUserGroupV1Input**](CreateUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**CreateUserGroup200Response**](CreateUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_user_group
+
+> DeleteUserGroup200Response delete_user_group(user_group_id)
+
+Delete User Group
+
+Removes a user group from a Workspace.    • When called, this endpoint may generate the `User Group Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_user_group200_response import DeleteUserGroup200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = '2c0vZc1kXJ9Nf9wIJ1Gb7JzORGf' # str | 
+
+    try:
+        # Delete User Group
+        api_response = api_instance.delete_user_group(user_group_id)
+        print("The response of IAMGroupsApi->delete_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->delete_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+
+### Return type
+
+[**DeleteUserGroup200Response**](DeleteUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_user_group
+
+> GetUserGroup200Response get_user_group(user_group_id)
+
+Get User Group
+
+Returns a user group.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_user_group200_response import GetUserGroup200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+
+    try:
+        # Get User Group
+        api_response = api_instance.get_user_group(user_group_id)
+        print("The response of IAMGroupsApi->get_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->get_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+
+### Return type
+
+[**GetUserGroup200Response**](GetUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_invites_from_user_group
+
+> ListInvitesFromUserGroup200Response list_invites_from_user_group(user_group_id, pagination=pagination)
+
+List Invites from User Group
+
+Returns the emails of invitees to a user group.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_invites_from_user_group200_response import ListInvitesFromUserGroup200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for invites to the group.  This parameter exists in v1. (optional)
+
+    try:
+        # List Invites from User Group
+        api_response = api_instance.list_invites_from_user_group(user_group_id, pagination=pagination)
+        print("The response of IAMGroupsApi->list_invites_from_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->list_invites_from_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination for invites to the group.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListInvitesFromUserGroup200Response**](ListInvitesFromUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_user_groups
+
+> ListUserGroups200Response list_user_groups(pagination=pagination)
+
+List User Groups
+
+Returns all user groups.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_user_groups200_response import ListUserGroups200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for user groups.  This parameter exists in v1. (optional)
+
+    try:
+        # List User Groups
+        api_response = api_instance.list_user_groups(pagination=pagination)
+        print("The response of IAMGroupsApi->list_user_groups:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->list_user_groups: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination for user groups.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListUserGroups200Response**](ListUserGroups200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_users_from_user_group
+
+> ListUsersFromUserGroup200Response list_users_from_user_group(user_group_id, pagination=pagination)
+
+List Users from User Group
+
+Returns users belonging to a user group.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_users_from_user_group200_response import ListUsersFromUserGroup200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for members of a group.  This parameter exists in v1. (optional)
+
+    try:
+        # List Users from User Group
+        api_response = api_instance.list_users_from_user_group(user_group_id, pagination=pagination)
+        print("The response of IAMGroupsApi->list_users_from_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->list_users_from_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination for members of a group.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListUsersFromUserGroup200Response**](ListUsersFromUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_users_from_user_group
+
+> RemoveUsersFromUserGroup200Response remove_users_from_user_group(user_group_id, emails)
+
+Remove Users from User Group
+
+Removes one or multiple users or invites from a user group by email.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Group Memberships Deleted * User Removed From User Group          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_users_from_user_group200_response import RemoveUsersFromUserGroup200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    emails = ['emails.0=foo%40example.com'] # List[str] | The list of emails to remove from the user group.  This parameter exists in v1.
+
+    try:
+        # Remove Users from User Group
+        api_response = api_instance.remove_users_from_user_group(user_group_id, emails)
+        print("The response of IAMGroupsApi->remove_users_from_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->remove_users_from_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **emails** | [**List[str]**](str.md)| The list of emails to remove from the user group.  This parameter exists in v1. | 
+
+### Return type
+
+[**RemoveUsersFromUserGroup200Response**](RemoveUsersFromUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_permissions_for_user_group
+
+> ReplacePermissionsForUserGroup200Response replace_permissions_for_user_group(user_group_id, replace_permissions_for_user_group_v1_input)
+
+Replace Permissions for User Group
+
+Updates the list of access permissions for a user group.    • When called, this endpoint may generate the `Policy Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_permissions_for_user_group200_response import ReplacePermissionsForUserGroup200Response
+from segment_public_api.models.replace_permissions_for_user_group_v1_input import ReplacePermissionsForUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    replace_permissions_for_user_group_v1_input = {"permissions":[{"roleId":"1WDUuRLxv84rrfCNUwvkrRtkxnS","resources":[{"id":"9aQ1Lj62S4bomZKLF4DPqW","type":"WORKSPACE"}]}]} # ReplacePermissionsForUserGroupV1Input | 
+
+    try:
+        # Replace Permissions for User Group
+        api_response = api_instance.replace_permissions_for_user_group(user_group_id, replace_permissions_for_user_group_v1_input)
+        print("The response of IAMGroupsApi->replace_permissions_for_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->replace_permissions_for_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **replace_permissions_for_user_group_v1_input** | [**ReplacePermissionsForUserGroupV1Input**](ReplacePermissionsForUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**ReplacePermissionsForUserGroup200Response**](ReplacePermissionsForUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_users_in_user_group
+
+> ReplaceUsersInUserGroup200Response replace_users_in_user_group(user_group_id, replace_users_in_user_group_v1_input)
+
+Replace Users in User Group
+
+Replaces the members of a user group by email.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Subjects Added to Group * User Added To User Group * Group Memberships Deleted          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_users_in_user_group200_response import ReplaceUsersInUserGroup200Response
+from segment_public_api.models.replace_users_in_user_group_v1_input import ReplaceUsersInUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    replace_users_in_user_group_v1_input = {"emails":["foo@example.com"]} # ReplaceUsersInUserGroupV1Input | 
+
+    try:
+        # Replace Users in User Group
+        api_response = api_instance.replace_users_in_user_group(user_group_id, replace_users_in_user_group_v1_input)
+        print("The response of IAMGroupsApi->replace_users_in_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->replace_users_in_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **replace_users_in_user_group_v1_input** | [**ReplaceUsersInUserGroupV1Input**](ReplaceUsersInUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**ReplaceUsersInUserGroup200Response**](ReplaceUsersInUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_user_group
+
+> UpdateUserGroup200Response update_user_group(user_group_id, update_user_group_v1_input)
+
+Update User Group
+
+Updates a user group for a Workspace.    • When called, this endpoint may generate the `User Group Updated` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_user_group200_response import UpdateUserGroup200Response
+from segment_public_api.models.update_user_group_v1_input import UpdateUserGroupV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMGroupsApi(api_client)
+    user_group_id = 'bBABwqbaDf2QdwTbW8bNEm' # str | 
+    update_user_group_v1_input = {"name":"PAPI Example Group"} # UpdateUserGroupV1Input | 
+
+    try:
+        # Update User Group
+        api_response = api_instance.update_user_group(user_group_id, update_user_group_v1_input)
+        print("The response of IAMGroupsApi->update_user_group:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMGroupsApi->update_user_group: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_group_id** | **str**|  | 
+ **update_user_group_v1_input** | [**UpdateUserGroupV1Input**](UpdateUserGroupV1Input.md)|  | 
+
+### Return type
+
+[**UpdateUserGroup200Response**](UpdateUserGroup200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/IAMRolesApi.md b/docs/IAMRolesApi.md
new file mode 100644
index 000000000..dd098b91d
--- /dev/null
+++ b/docs/IAMRolesApi.md
@@ -0,0 +1,83 @@
+# segment_public_api.IAMRolesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**list_roles**](IAMRolesApi.md#list_roles) | **GET** /roles | List Roles
+
+
+
+## Operation: list_roles
+
+> ListRoles200Response list_roles(pagination=pagination)
+
+List Roles
+
+Returns a list of Roles available to apply to permissions for users and/or groups.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_roles200_response import ListRoles200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMRolesApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for roles.  This parameter exists in v1. (optional)
+
+    try:
+        # List Roles
+        api_response = api_instance.list_roles(pagination=pagination)
+        print("The response of IAMRolesApi->list_roles:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMRolesApi->list_roles: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination for roles.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListRoles200Response**](ListRoles200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/IAMUsersApi.md b/docs/IAMUsersApi.md
new file mode 100644
index 000000000..a7c2a8648
--- /dev/null
+++ b/docs/IAMUsersApi.md
@@ -0,0 +1,686 @@
+# segment_public_api.IAMUsersApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_permissions_to_user**](IAMUsersApi.md#add_permissions_to_user) | **POST** /users/{userId}/permissions | Add Permissions to User
+[**create_invites**](IAMUsersApi.md#create_invites) | **POST** /invites | Create Invites
+[**delete_invites**](IAMUsersApi.md#delete_invites) | **DELETE** /invites | Delete Invites
+[**delete_users**](IAMUsersApi.md#delete_users) | **DELETE** /users | Delete Users
+[**get_user**](IAMUsersApi.md#get_user) | **GET** /users/{userId} | Get User
+[**list_invites**](IAMUsersApi.md#list_invites) | **GET** /invites | List Invites
+[**list_user_groups_from_user**](IAMUsersApi.md#list_user_groups_from_user) | **GET** /users/{userId}/groups | List User Groups from User
+[**list_users**](IAMUsersApi.md#list_users) | **GET** /users | List Users
+[**replace_permissions_for_user**](IAMUsersApi.md#replace_permissions_for_user) | **PUT** /users/{userId}/permissions | Replace Permissions for User
+
+
+
+## Operation: add_permissions_to_user
+
+> AddPermissionsToUser200Response add_permissions_to_user(user_id, add_permissions_to_user_v1_input)
+
+Add Permissions to User
+
+Adds a list of access permissions to a user.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Policy Created * User Policy Updated          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_permissions_to_user200_response import AddPermissionsToUser200Response
+from segment_public_api.models.add_permissions_to_user_v1_input import AddPermissionsToUserV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    user_id = 'sgJDWk3K21k6LE3tLU9nRK' # str | 
+    add_permissions_to_user_v1_input = {"permissions":[{"roleId":"1WDUuRLxv84rrfCNUwvkrRtkxnS","resources":[{"id":"9aQ1Lj62S4bomZKLF4DPqW","type":"WORKSPACE"}]}]} # AddPermissionsToUserV1Input | 
+
+    try:
+        # Add Permissions to User
+        api_response = api_instance.add_permissions_to_user(user_id, add_permissions_to_user_v1_input)
+        print("The response of IAMUsersApi->add_permissions_to_user:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->add_permissions_to_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**|  | 
+ **add_permissions_to_user_v1_input** | [**AddPermissionsToUserV1Input**](AddPermissionsToUserV1Input.md)|  | 
+
+### Return type
+
+[**AddPermissionsToUser200Response**](AddPermissionsToUser200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_invites
+
+> CreateInvites201Response create_invites(create_invites_v1_input)
+
+Create Invites
+
+Invites a list of users to join a Workspace.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Non-Segment User Invited to Workspace * Policy Created * New Segment User Invited to Workspace  Config API omitted fields: - `parent`          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_invites201_response import CreateInvites201Response
+from segment_public_api.models.create_invites_v1_input import CreateInvitesV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    create_invites_v1_input = {"invites":[{"email":"foo@example.com","permissions":[{"roleId":"1WDUuRLxv84rrfCNUwvkrRtkxnS","resources":[{"id":"9aQ1Lj62S4bomZKLF4DPqW","type":"WORKSPACE"}]}]}]} # CreateInvitesV1Input | 
+
+    try:
+        # Create Invites
+        api_response = api_instance.create_invites(create_invites_v1_input)
+        print("The response of IAMUsersApi->create_invites:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->create_invites: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_invites_v1_input** | [**CreateInvitesV1Input**](CreateInvitesV1Input.md)|  | 
+
+### Return type
+
+[**CreateInvites201Response**](CreateInvites201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_invites
+
+> DeleteInvites200Response delete_invites(emails)
+
+Delete Invites
+
+Removes a list of invitations to join a Workspace.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Invite Deleted * Group Memberships Deleted          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_invites200_response import DeleteInvites200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    emails = ['emails.0=foo%40example.com'] # List[str] | The list of emails to delete invites for.  This parameter exists in v1.
+
+    try:
+        # Delete Invites
+        api_response = api_instance.delete_invites(emails)
+        print("The response of IAMUsersApi->delete_invites:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->delete_invites: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **emails** | [**List[str]**](str.md)| The list of emails to delete invites for.  This parameter exists in v1. | 
+
+### Return type
+
+[**DeleteInvites200Response**](DeleteInvites200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_users
+
+> DeleteUsers200Response delete_users(user_ids)
+
+Delete Users
+
+Removes one or multiple users.    • When called, this endpoint may generate the `Group Memberships Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_users200_response import DeleteUsers200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    user_ids = ['userIds.0=dLPzv57d5nRGz8U5iegLKp'] # List[str] | The ids of the users to remove.  This parameter exists in v1.
+
+    try:
+        # Delete Users
+        api_response = api_instance.delete_users(user_ids)
+        print("The response of IAMUsersApi->delete_users:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->delete_users: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_ids** | [**List[str]**](str.md)| The ids of the users to remove.  This parameter exists in v1. | 
+
+### Return type
+
+[**DeleteUsers200Response**](DeleteUsers200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_user
+
+> GetUser200Response get_user(user_id)
+
+Get User
+
+Returns a user given their id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_user200_response import GetUser200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    user_id = 'sgJDWk3K21k6LE3tLU9nRK' # str | 
+
+    try:
+        # Get User
+        api_response = api_instance.get_user(user_id)
+        print("The response of IAMUsersApi->get_user:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->get_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**|  | 
+
+### Return type
+
+[**GetUser200Response**](GetUser200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_invites
+
+> ListInvites200Response list_invites(pagination=pagination)
+
+List Invites
+
+Returns a list of invitations to join a Workspace.  Config API omitted fields: - `parent` 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_invites200_response import ListInvites200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Invites
+        api_response = api_instance.list_invites(pagination=pagination)
+        print("The response of IAMUsersApi->list_invites:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->list_invites: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListInvites200Response**](ListInvites200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_user_groups_from_user
+
+> ListUserGroupsFromUser200Response list_user_groups_from_user(user_id, pagination=pagination)
+
+List User Groups from User
+
+Returns all groups a user belongs to.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_user_groups_from_user200_response import ListUserGroupsFromUser200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    user_id = 'sgJDWk3K21k6LE3tLU9nRK' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for groups.  This parameter exists in v1. (optional)
+
+    try:
+        # List User Groups from User
+        api_response = api_instance.list_user_groups_from_user(user_id, pagination=pagination)
+        print("The response of IAMUsersApi->list_user_groups_from_user:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->list_user_groups_from_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination for groups.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListUserGroupsFromUser200Response**](ListUserGroupsFromUser200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_users
+
+> ListUsers200Response list_users(pagination=pagination)
+
+List Users
+
+Returns a list of users with access to the Workspace.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_users200_response import ListUsers200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination for users.  This parameter exists in v1. (optional)
+
+    try:
+        # List Users
+        api_response = api_instance.list_users(pagination=pagination)
+        print("The response of IAMUsersApi->list_users:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->list_users: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination for users.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListUsers200Response**](ListUsers200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_permissions_for_user
+
+> ReplacePermissionsForUser200Response replace_permissions_for_user(user_id, replace_permissions_for_user_v1_input)
+
+Replace Permissions for User
+
+Updates the list of access permissions for a user.    • When called, this endpoint may generate the `Policy Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_permissions_for_user200_response import ReplacePermissionsForUser200Response
+from segment_public_api.models.replace_permissions_for_user_v1_input import ReplacePermissionsForUserV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.IAMUsersApi(api_client)
+    user_id = 'sgJDWk3K21k6LE3tLU9nRK' # str | 
+    replace_permissions_for_user_v1_input = {"permissions":[{"roleId":"1WDUuRLxv84rrfCNUwvkrRtkxnS","resources":[{"id":"9aQ1Lj62S4bomZKLF4DPqW","type":"WORKSPACE"}]}]} # ReplacePermissionsForUserV1Input | 
+
+    try:
+        # Replace Permissions for User
+        api_response = api_instance.replace_permissions_for_user(user_id, replace_permissions_for_user_v1_input)
+        print("The response of IAMUsersApi->replace_permissions_for_user:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling IAMUsersApi->replace_permissions_for_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**|  | 
+ **replace_permissions_for_user_v1_input** | [**ReplacePermissionsForUserV1Input**](ReplacePermissionsForUserV1Input.md)|  | 
+
+### Return type
+
+[**ReplacePermissionsForUser200Response**](ReplacePermissionsForUser200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/LabelsApi.md b/docs/LabelsApi.md
new file mode 100644
index 000000000..a46117630
--- /dev/null
+++ b/docs/LabelsApi.md
@@ -0,0 +1,229 @@
+# segment_public_api.LabelsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_label**](LabelsApi.md#create_label) | **POST** /labels | Create Label
+[**delete_label**](LabelsApi.md#delete_label) | **DELETE** /labels/{key}/{value} | Delete Label
+[**list_labels**](LabelsApi.md#list_labels) | **GET** /labels | List Labels
+
+
+
+## Operation: create_label
+
+> CreateLabel201Response create_label(create_label_v1_input)
+
+Create Label
+
+Creates a new label.    • When called, this endpoint may generate the `Label Created` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_label201_response import CreateLabel201Response
+from segment_public_api.models.create_label_v1_input import CreateLabelV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.LabelsApi(api_client)
+    create_label_v1_input = {"label":{"key":"environment","value":"yolo","description":"an environment for courageous devs"}} # CreateLabelV1Input | 
+
+    try:
+        # Create Label
+        api_response = api_instance.create_label(create_label_v1_input)
+        print("The response of LabelsApi->create_label:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling LabelsApi->create_label: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_label_v1_input** | [**CreateLabelV1Input**](CreateLabelV1Input.md)|  | 
+
+### Return type
+
+[**CreateLabel201Response**](CreateLabel201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_label
+
+> DeleteLabel200Response delete_label(key, value)
+
+Delete Label
+
+Deletes a label.    • When called, this endpoint may generate the `Label Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_label200_response import DeleteLabel200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.LabelsApi(api_client)
+    key = 'environment' # str | 
+    value = 'yolo' # str | 
+
+    try:
+        # Delete Label
+        api_response = api_instance.delete_label(key, value)
+        print("The response of LabelsApi->delete_label:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling LabelsApi->delete_label: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **key** | **str**|  | 
+ **value** | **str**|  | 
+
+### Return type
+
+[**DeleteLabel200Response**](DeleteLabel200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_labels
+
+> ListLabels200Response list_labels()
+
+List Labels
+
+Returns a list of all available labels.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_labels200_response import ListLabels200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.LabelsApi(api_client)
+
+    try:
+        # List Labels
+        api_response = api_instance.list_labels()
+        print("The response of LabelsApi->list_labels:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling LabelsApi->list_labels: %s\n" % e)
+```
+
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ListLabels200Response**](ListLabels200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/MonthlyTrackedUsersApi.md b/docs/MonthlyTrackedUsersApi.md
new file mode 100644
index 000000000..15a1250f2
--- /dev/null
+++ b/docs/MonthlyTrackedUsersApi.md
@@ -0,0 +1,162 @@
+# segment_public_api.MonthlyTrackedUsersApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_daily_per_source_mtu_usage**](MonthlyTrackedUsersApi.md#get_daily_per_source_mtu_usage) | **GET** /usage/mtu/sources/daily | Get Daily Per Source MTU Usage
+[**get_daily_workspace_mtu_usage**](MonthlyTrackedUsersApi.md#get_daily_workspace_mtu_usage) | **GET** /usage/mtu/daily | Get Daily Workspace MTU Usage
+
+
+
+## Operation: get_daily_per_source_mtu_usage
+
+> GetDailyPerSourceMTUUsage200Response get_daily_per_source_mtu_usage(period, pagination=pagination)
+
+Get Daily Per Source MTU Usage
+
+Provides daily cumulative per-source MTU counts for a usage period.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_daily_per_source_mtu_usage200_response import GetDailyPerSourceMTUUsage200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.MonthlyTrackedUsersApi(api_client)
+    period = '2021-02-01' # str | The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination input for per Source MTU counts.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Daily Per Source MTU Usage
+        api_response = api_instance.get_daily_per_source_mtu_usage(period, pagination=pagination)
+        print("The response of MonthlyTrackedUsersApi->get_daily_per_source_mtu_usage:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling MonthlyTrackedUsersApi->get_daily_per_source_mtu_usage: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **period** | **str**| The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination input for per Source MTU counts.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetDailyPerSourceMTUUsage200Response**](GetDailyPerSourceMTUUsage200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_daily_workspace_mtu_usage
+
+> GetDailyWorkspaceMTUUsage200Response get_daily_workspace_mtu_usage(period, pagination=pagination)
+
+Get Daily Workspace MTU Usage
+
+Provides daily cumulative MTU counts for a usage period.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_daily_workspace_mtu_usage200_response import GetDailyWorkspaceMTUUsage200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.MonthlyTrackedUsersApi(api_client)
+    period = '2021-02-01' # str | The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination input for Workspace MTU counts.  This parameter exists in v1. (optional)
+
+    try:
+        # Get Daily Workspace MTU Usage
+        api_response = api_instance.get_daily_workspace_mtu_usage(period, pagination=pagination)
+        print("The response of MonthlyTrackedUsersApi->get_daily_workspace_mtu_usage:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling MonthlyTrackedUsersApi->get_daily_workspace_mtu_usage: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **period** | **str**| The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. | 
+ **pagination** | [**PaginationInput**](.md)| Pagination input for Workspace MTU counts.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**GetDailyWorkspaceMTUUsage200Response**](GetDailyWorkspaceMTUUsage200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/ProfilesSyncApi.md b/docs/ProfilesSyncApi.md
new file mode 100644
index 000000000..0ab6deb0f
--- /dev/null
+++ b/docs/ProfilesSyncApi.md
@@ -0,0 +1,475 @@
+# segment_public_api.ProfilesSyncApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_profiles_warehouse**](ProfilesSyncApi.md#create_profiles_warehouse) | **POST** /spaces/{spaceId}/profiles-warehouses | Create Profiles Warehouse
+[**list_profiles_warehouse_in_space**](ProfilesSyncApi.md#list_profiles_warehouse_in_space) | **GET** /spaces/{spaceId}/profiles-warehouses | List Profiles Warehouse in Space
+[**list_selective_syncs_from_warehouse_and_space**](ProfilesSyncApi.md#list_selective_syncs_from_warehouse_and_space) | **GET** /spaces/{spaceId}/profiles-warehouses/{warehouseId}/selective-syncs | List Selective Syncs from Warehouse And Space
+[**remove_profiles_warehouse_from_space**](ProfilesSyncApi.md#remove_profiles_warehouse_from_space) | **DELETE** /spaces/{spaceId}/profiles-warehouses/{warehouseId} | Remove Profiles Warehouse from Space
+[**update_profiles_warehouse_for_space_warehouse**](ProfilesSyncApi.md#update_profiles_warehouse_for_space_warehouse) | **PATCH** /spaces/{spaceId}/profiles-warehouses/{warehouseId} | Update Profiles Warehouse for Space Warehouse
+[**update_selective_sync_for_warehouse_and_space**](ProfilesSyncApi.md#update_selective_sync_for_warehouse_and_space) | **PATCH** /spaces/{spaceId}/profiles-warehouses/{warehouseId}/selective-syncs | Update Selective Sync for Warehouse And Space
+
+
+
+## Operation: create_profiles_warehouse
+
+> CreateProfilesWarehouse201Response create_profiles_warehouse(space_id, create_profiles_warehouse_alpha_input)
+
+Create Profiles Warehouse
+
+Creates a new Profiles Warehouse.    • When called, this endpoint may generate the `Profiles Sync Warehouse Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_profiles_warehouse201_response import CreateProfilesWarehouse201Response
+from segment_public_api.models.create_profiles_warehouse_alpha_input import CreateProfilesWarehouseAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    create_profiles_warehouse_alpha_input = {"metadataId":"CCIl4HLQPz","settings":{"username":"CONNECTOR_UNIT_TEST_USER","password":"test_password","auth_type":"password_auth","account":"segment","warehouse":"ENGINEERING","database":"TEST_DB"},"enabled":true} # CreateProfilesWarehouseAlphaInput | 
+
+    try:
+        # Create Profiles Warehouse
+        api_response = api_instance.create_profiles_warehouse(space_id, create_profiles_warehouse_alpha_input)
+        print("The response of ProfilesSyncApi->create_profiles_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->create_profiles_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **create_profiles_warehouse_alpha_input** | [**CreateProfilesWarehouseAlphaInput**](CreateProfilesWarehouseAlphaInput.md)|  | 
+
+### Return type
+
+[**CreateProfilesWarehouse201Response**](CreateProfilesWarehouse201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_profiles_warehouse_in_space
+
+> ListProfilesWarehouseInSpace200Response list_profiles_warehouse_in_space(space_id, pagination=pagination)
+
+List Profiles Warehouse in Space
+
+Lists all Profile Warehouses for a given space id.    • When called, this endpoint may generate the `Profiles Sync Warehouse Retrieved` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_profiles_warehouse_in_space200_response import ListProfilesWarehouseInSpace200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Profiles Warehouse in Space
+        api_response = api_instance.list_profiles_warehouse_in_space(space_id, pagination=pagination)
+        print("The response of ProfilesSyncApi->list_profiles_warehouse_in_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->list_profiles_warehouse_in_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListProfilesWarehouseInSpace200Response**](ListProfilesWarehouseInSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_selective_syncs_from_warehouse_and_space
+
+> ListSelectiveSyncsFromWarehouseAndSpace200Response list_selective_syncs_from_warehouse_and_space(space_id, warehouse_id, pagination=pagination)
+
+List Selective Syncs from Warehouse And Space
+
+Returns the schema for a Space Warehouse connection, including Collections and Properties.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_selective_syncs_from_warehouse_and_space200_response import ListSelectiveSyncsFromWarehouseAndSpace200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    warehouse_id = 'fQyLbqjfwaqg9mr3hDQ7We' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Selective Syncs from Warehouse And Space
+        api_response = api_instance.list_selective_syncs_from_warehouse_and_space(space_id, warehouse_id, pagination=pagination)
+        print("The response of ProfilesSyncApi->list_selective_syncs_from_warehouse_and_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->list_selective_syncs_from_warehouse_and_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **warehouse_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListSelectiveSyncsFromWarehouseAndSpace200Response**](ListSelectiveSyncsFromWarehouseAndSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_profiles_warehouse_from_space
+
+> RemoveProfilesWarehouseFromSpace200Response remove_profiles_warehouse_from_space(space_id, warehouse_id)
+
+Remove Profiles Warehouse from Space
+
+Deletes an existing Profiles Warehouse.    • When called, this endpoint may generate the `Profiles Sync Warehouse Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_profiles_warehouse_from_space200_response import RemoveProfilesWarehouseFromSpace200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    warehouse_id = 'qABd3NVTPfTLQ3kXWoBhgi' # str | 
+
+    try:
+        # Remove Profiles Warehouse from Space
+        api_response = api_instance.remove_profiles_warehouse_from_space(space_id, warehouse_id)
+        print("The response of ProfilesSyncApi->remove_profiles_warehouse_from_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->remove_profiles_warehouse_from_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **warehouse_id** | **str**|  | 
+
+### Return type
+
+[**RemoveProfilesWarehouseFromSpace200Response**](RemoveProfilesWarehouseFromSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_profiles_warehouse_for_space_warehouse
+
+> UpdateProfilesWarehouseForSpaceWarehouse200Response update_profiles_warehouse_for_space_warehouse(space_id, warehouse_id, update_profiles_warehouse_for_space_warehouse_alpha_input)
+
+Update Profiles Warehouse for Space Warehouse
+
+Updates an existing Profiles Warehouse.    • When called, this endpoint may generate the `Profiles Sync Warehouse Updated` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_profiles_warehouse_for_space_warehouse200_response import UpdateProfilesWarehouseForSpaceWarehouse200Response
+from segment_public_api.models.update_profiles_warehouse_for_space_warehouse_alpha_input import UpdateProfilesWarehouseForSpaceWarehouseAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    warehouse_id = '3eadBBqVMQD2DEtaWXSkqA' # str | 
+    update_profiles_warehouse_for_space_warehouse_alpha_input = {"settings":{},"enabled":false,"name":"testing"} # UpdateProfilesWarehouseForSpaceWarehouseAlphaInput | 
+
+    try:
+        # Update Profiles Warehouse for Space Warehouse
+        api_response = api_instance.update_profiles_warehouse_for_space_warehouse(space_id, warehouse_id, update_profiles_warehouse_for_space_warehouse_alpha_input)
+        print("The response of ProfilesSyncApi->update_profiles_warehouse_for_space_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->update_profiles_warehouse_for_space_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **warehouse_id** | **str**|  | 
+ **update_profiles_warehouse_for_space_warehouse_alpha_input** | [**UpdateProfilesWarehouseForSpaceWarehouseAlphaInput**](UpdateProfilesWarehouseForSpaceWarehouseAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateProfilesWarehouseForSpaceWarehouse200Response**](UpdateProfilesWarehouseForSpaceWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_selective_sync_for_warehouse_and_space
+
+> UpdateSelectiveSyncForWarehouseAndSpace200Response update_selective_sync_for_warehouse_and_space(space_id, warehouse_id, update_selective_sync_for_warehouse_and_space_alpha_input)
+
+Update Selective Sync for Warehouse And Space
+
+Updates the schema for a Space Warehouse connection, including Collections and Properties.    • When called, this endpoint may generate the `Profiles Sync Warehouse Modified` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_selective_sync_for_warehouse_and_space200_response import UpdateSelectiveSyncForWarehouseAndSpace200Response
+from segment_public_api.models.update_selective_sync_for_warehouse_and_space_alpha_input import UpdateSelectiveSyncForWarehouseAndSpaceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ProfilesSyncApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    warehouse_id = 'qABd3NVTPfTLQ3kXWoBhgi' # str | 
+    update_selective_sync_for_warehouse_and_space_alpha_input = {"syncOverrides":[{"enabled":true,"collection":"tracks","property":"context_ip"}]} # UpdateSelectiveSyncForWarehouseAndSpaceAlphaInput | 
+
+    try:
+        # Update Selective Sync for Warehouse And Space
+        api_response = api_instance.update_selective_sync_for_warehouse_and_space(space_id, warehouse_id, update_selective_sync_for_warehouse_and_space_alpha_input)
+        print("The response of ProfilesSyncApi->update_selective_sync_for_warehouse_and_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ProfilesSyncApi->update_selective_sync_for_warehouse_and_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **warehouse_id** | **str**|  | 
+ **update_selective_sync_for_warehouse_and_space_alpha_input** | [**UpdateSelectiveSyncForWarehouseAndSpaceAlphaInput**](UpdateSelectiveSyncForWarehouseAndSpaceAlphaInput.md)|  | 
+
+### Return type
+
+[**UpdateSelectiveSyncForWarehouseAndSpace200Response**](UpdateSelectiveSyncForWarehouseAndSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/ReverseETLApi.md b/docs/ReverseETLApi.md
new file mode 100644
index 000000000..ae6527c50
--- /dev/null
+++ b/docs/ReverseETLApi.md
@@ -0,0 +1,693 @@
+# segment_public_api.ReverseETLApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**cancel_reverse_etl_sync_for_model**](ReverseETLApi.md#cancel_reverse_etl_sync_for_model) | **POST** /reverse-etl-models/{modelId}/syncs/{syncId}/cancel | Cancel Reverse ETL Sync for Model
+[**create_reverse_etl_manual_sync**](ReverseETLApi.md#create_reverse_etl_manual_sync) | **POST** /reverse-etl-syncs | Create Reverse ETL Manual Sync
+[**create_reverse_etl_model**](ReverseETLApi.md#create_reverse_etl_model) | **POST** /reverse-etl-models | Create Reverse Etl Model
+[**delete_reverse_etl_model**](ReverseETLApi.md#delete_reverse_etl_model) | **DELETE** /reverse-etl-models/{modelId} | Delete Reverse Etl Model
+[**get_reverse_etl_model**](ReverseETLApi.md#get_reverse_etl_model) | **GET** /reverse-etl-models/{modelId} | Get Reverse Etl Model
+[**get_reverse_etl_sync_status**](ReverseETLApi.md#get_reverse_etl_sync_status) | **GET** /reverse-etl-models/{modelId}/syncs/{syncId} | Get Reverse ETL Sync Status
+[**list_reverse_etl_models**](ReverseETLApi.md#list_reverse_etl_models) | **GET** /reverse-etl-models | List Reverse Etl Models
+[**list_reverse_etl_sync_statuses_from_model_and_subscription_id**](ReverseETLApi.md#list_reverse_etl_sync_statuses_from_model_and_subscription_id) | **GET** /reverse-etl-models/{modelId}/subscriptionId/{subscriptionId}/syncs | List Reverse ETL Sync Statuses from Model And Subscription Id
+[**update_reverse_etl_model**](ReverseETLApi.md#update_reverse_etl_model) | **PATCH** /reverse-etl-models/{modelId} | Update Reverse Etl Model
+
+
+
+## Operation: cancel_reverse_etl_sync_for_model
+
+> CancelReverseETLSyncForModel200Response cancel_reverse_etl_sync_for_model(model_id, sync_id, cancel_reverse_etl_sync_for_model_input)
+
+Cancel Reverse ETL Sync for Model
+
+Cancels a sync for a Reverse ETL Connection. It might take a few seconds to completely cancel the sync.   Will return an error if the sync is already completed or cancelled.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.cancel_reverse_etl_sync_for_model200_response import CancelReverseETLSyncForModel200Response
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_input import CancelReverseETLSyncForModelInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = 'modelId' # str | 
+    sync_id = '1' # str | 
+    cancel_reverse_etl_sync_for_model_input = {"reasonForCanceling":0} # CancelReverseETLSyncForModelInput | 
+
+    try:
+        # Cancel Reverse ETL Sync for Model
+        api_response = api_instance.cancel_reverse_etl_sync_for_model(model_id, sync_id, cancel_reverse_etl_sync_for_model_input)
+        print("The response of ReverseETLApi->cancel_reverse_etl_sync_for_model:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->cancel_reverse_etl_sync_for_model: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+ **sync_id** | **str**|  | 
+ **cancel_reverse_etl_sync_for_model_input** | [**CancelReverseETLSyncForModelInput**](CancelReverseETLSyncForModelInput.md)|  | 
+
+### Return type
+
+[**CancelReverseETLSyncForModel200Response**](CancelReverseETLSyncForModel200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_reverse_etl_manual_sync
+
+> CreateReverseETLManualSync200Response create_reverse_etl_manual_sync(create_reverse_etl_manual_sync_input)
+
+Create Reverse ETL Manual Sync
+
+Triggers a manual sync for a Reverse ETL Connection.   In the request body, the `subscription id` is the id that follows after `/mappings/` portion in the URL of the sync.   For example, the `subscription id` would be `2` for this sync: https://app.Segment.com/example-workspace/reverse-etl/destinations/example-destination/sources/example-source/instances/1/mappings/2/source-id/3/model-id/4/sync-details   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_reverse_etl_manual_sync200_response import CreateReverseETLManualSync200Response
+from segment_public_api.models.create_reverse_etl_manual_sync_input import CreateReverseETLManualSyncInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    create_reverse_etl_manual_sync_input = {"sourceId":"sourceId","modelId":"modelId","subscriptionId":"subscriptionId"} # CreateReverseETLManualSyncInput | 
+
+    try:
+        # Create Reverse ETL Manual Sync
+        api_response = api_instance.create_reverse_etl_manual_sync(create_reverse_etl_manual_sync_input)
+        print("The response of ReverseETLApi->create_reverse_etl_manual_sync:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->create_reverse_etl_manual_sync: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_reverse_etl_manual_sync_input** | [**CreateReverseETLManualSyncInput**](CreateReverseETLManualSyncInput.md)|  | 
+
+### Return type
+
+[**CreateReverseETLManualSync200Response**](CreateReverseETLManualSync200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_reverse_etl_model
+
+> CreateReverseEtlModel201Response create_reverse_etl_model(create_reverse_etl_model_input)
+
+Create Reverse Etl Model
+
+Creates a new Reverse ETL Model.          • When called, this endpoint may generate the `Model Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_reverse_etl_model201_response import CreateReverseEtlModel201Response
+from segment_public_api.models.create_reverse_etl_model_input import CreateReverseEtlModelInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    create_reverse_etl_model_input = {"sourceId":"qQEHquLrjRDN9j1ByrChyn","name":"Model 1","description":"This model is very useful.","enabled":true,"query":"SELECT 'user_1' AS id","queryIdentifierColumn":"id"} # CreateReverseEtlModelInput | 
+
+    try:
+        # Create Reverse Etl Model
+        api_response = api_instance.create_reverse_etl_model(create_reverse_etl_model_input)
+        print("The response of ReverseETLApi->create_reverse_etl_model:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->create_reverse_etl_model: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_reverse_etl_model_input** | [**CreateReverseEtlModelInput**](CreateReverseEtlModelInput.md)|  | 
+
+### Return type
+
+[**CreateReverseEtlModel201Response**](CreateReverseEtlModel201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_reverse_etl_model
+
+> DeleteReverseEtlModel200Response delete_reverse_etl_model(model_id)
+
+Delete Reverse Etl Model
+
+Deletes an existing Model.          • When called, this endpoint may generate the `Model Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_reverse_etl_model200_response import DeleteReverseEtlModel200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = 'fxXMc5bLdKnDfEgBpDbV11' # str | 
+
+    try:
+        # Delete Reverse Etl Model
+        api_response = api_instance.delete_reverse_etl_model(model_id)
+        print("The response of ReverseETLApi->delete_reverse_etl_model:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->delete_reverse_etl_model: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+
+### Return type
+
+[**DeleteReverseEtlModel200Response**](DeleteReverseEtlModel200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_reverse_etl_model
+
+> GetReverseEtlModel200Response get_reverse_etl_model(model_id)
+
+Get Reverse Etl Model
+
+Returns a Reverse ETL Model by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_reverse_etl_model200_response import GetReverseEtlModel200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = 'jSAVzDH3z89geNDZwoNY9V' # str | 
+
+    try:
+        # Get Reverse Etl Model
+        api_response = api_instance.get_reverse_etl_model(model_id)
+        print("The response of ReverseETLApi->get_reverse_etl_model:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->get_reverse_etl_model: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+
+### Return type
+
+[**GetReverseEtlModel200Response**](GetReverseEtlModel200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_reverse_etl_sync_status
+
+> GetReverseETLSyncStatus200Response get_reverse_etl_sync_status(model_id, sync_id)
+
+Get Reverse ETL Sync Status
+
+Get the sync status for a Reverse ETL sync.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.   The rate limit for this endpoint is 250 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_reverse_etl_sync_status200_response import GetReverseETLSyncStatus200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = 'modelId' # str | 
+    sync_id = 'syncId' # str | 
+
+    try:
+        # Get Reverse ETL Sync Status
+        api_response = api_instance.get_reverse_etl_sync_status(model_id, sync_id)
+        print("The response of ReverseETLApi->get_reverse_etl_sync_status:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->get_reverse_etl_sync_status: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+ **sync_id** | **str**|  | 
+
+### Return type
+
+[**GetReverseETLSyncStatus200Response**](GetReverseETLSyncStatus200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_reverse_etl_models
+
+> ListReverseEtlModels200Response list_reverse_etl_models(pagination=pagination)
+
+List Reverse Etl Models
+
+Returns a list of Reverse ETL Models.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_reverse_etl_models200_response import ListReverseEtlModels200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Reverse Etl Models
+        api_response = api_instance.list_reverse_etl_models(pagination=pagination)
+        print("The response of ReverseETLApi->list_reverse_etl_models:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->list_reverse_etl_models: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListReverseEtlModels200Response**](ListReverseEtlModels200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_reverse_etl_sync_statuses_from_model_and_subscription_id
+
+> ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response list_reverse_etl_sync_statuses_from_model_and_subscription_id(model_id, subscription_id, count=count, cursor=cursor)
+
+List Reverse ETL Sync Statuses from Model And Subscription Id
+
+Get the sync statuses for a Reverse ETL mapping subscription.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.  The default page count is 10, and then the next page can be fetched by passing the `cursor` query parameter.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response import ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = 'modelId' # str | 
+    subscription_id = 'subscriptionId' # str | 
+    count = 3.4 # float | The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha. (optional)
+    cursor = 'cursor_example' # str | The page to request. Acceptable values to use are from the `current`, `next`, and `previous` keys.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Reverse ETL Sync Statuses from Model And Subscription Id
+        api_response = api_instance.list_reverse_etl_sync_statuses_from_model_and_subscription_id(model_id, subscription_id, count=count, cursor=cursor)
+        print("The response of ReverseETLApi->list_reverse_etl_sync_statuses_from_model_and_subscription_id:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->list_reverse_etl_sync_statuses_from_model_and_subscription_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+ **subscription_id** | **str**|  | 
+ **count** | **float**| The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha. | [optional] 
+ **cursor** | **str**| The page to request. Acceptable values to use are from the &#x60;current&#x60;, &#x60;next&#x60;, and &#x60;previous&#x60; keys.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response**](ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_reverse_etl_model
+
+> UpdateReverseEtlModel200Response update_reverse_etl_model(model_id, update_reverse_etl_model_input)
+
+Update Reverse Etl Model
+
+Updates an existing Reverse ETL Model.          • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Model Settings Saved * Model State Change Toggled       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_reverse_etl_model200_response import UpdateReverseEtlModel200Response
+from segment_public_api.models.update_reverse_etl_model_input import UpdateReverseEtlModelInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.ReverseETLApi(api_client)
+    model_id = '6BthE21tPsXyA2cK3QPQFQ' # str | 
+    update_reverse_etl_model_input = {"name":"My Updated Model","query":"SELECT 'user_2' AS id"} # UpdateReverseEtlModelInput | 
+
+    try:
+        # Update Reverse Etl Model
+        api_response = api_instance.update_reverse_etl_model(model_id, update_reverse_etl_model_input)
+        print("The response of ReverseETLApi->update_reverse_etl_model:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling ReverseETLApi->update_reverse_etl_model: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **model_id** | **str**|  | 
+ **update_reverse_etl_model_input** | [**UpdateReverseEtlModelInput**](UpdateReverseEtlModelInput.md)|  | 
+
+### Return type
+
+[**UpdateReverseEtlModel200Response**](UpdateReverseEtlModel200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/SelectiveSyncApi.md b/docs/SelectiveSyncApi.md
new file mode 100644
index 000000000..556b3b5ab
--- /dev/null
+++ b/docs/SelectiveSyncApi.md
@@ -0,0 +1,471 @@
+# segment_public_api.SelectiveSyncApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_advanced_sync_schedule_from_warehouse**](SelectiveSyncApi.md#get_advanced_sync_schedule_from_warehouse) | **GET** /warehouses/{warehouseId}/advanced-sync-schedule | Get Advanced Sync Schedule from Warehouse
+[**list_selective_syncs_from_warehouse_and_source**](SelectiveSyncApi.md#list_selective_syncs_from_warehouse_and_source) | **GET** /warehouses/{warehouseId}/connected-sources/{sourceId}/selective-syncs | List Selective Syncs from Warehouse And Source
+[**list_syncs_from_warehouse**](SelectiveSyncApi.md#list_syncs_from_warehouse) | **GET** /warehouses/{warehouseId}/syncs | List Syncs from Warehouse
+[**list_syncs_from_warehouse_and_source**](SelectiveSyncApi.md#list_syncs_from_warehouse_and_source) | **GET** /warehouses/{warehouseId}/connected-sources/{sourceId}/syncs | List Syncs from Warehouse And Source
+[**replace_advanced_sync_schedule_for_warehouse**](SelectiveSyncApi.md#replace_advanced_sync_schedule_for_warehouse) | **PUT** /warehouses/{warehouseId}/advanced-sync-schedule | Replace Advanced Sync Schedule for Warehouse
+[**update_selective_sync_for_warehouse**](SelectiveSyncApi.md#update_selective_sync_for_warehouse) | **PATCH** /warehouses/{warehouseId}/selective-sync | Update Selective Sync for Warehouse
+
+
+
+## Operation: get_advanced_sync_schedule_from_warehouse
+
+> GetAdvancedSyncScheduleFromWarehouse200Response get_advanced_sync_schedule_from_warehouse(warehouse_id)
+
+Get Advanced Sync Schedule from Warehouse
+
+Returns the advanced sync schedule for a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_advanced_sync_schedule_from_warehouse200_response import GetAdvancedSyncScheduleFromWarehouse200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+
+    try:
+        # Get Advanced Sync Schedule from Warehouse
+        api_response = api_instance.get_advanced_sync_schedule_from_warehouse(warehouse_id)
+        print("The response of SelectiveSyncApi->get_advanced_sync_schedule_from_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->get_advanced_sync_schedule_from_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+
+### Return type
+
+[**GetAdvancedSyncScheduleFromWarehouse200Response**](GetAdvancedSyncScheduleFromWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_selective_syncs_from_warehouse_and_source
+
+> ListSelectiveSyncsFromWarehouseAndSource200Response list_selective_syncs_from_warehouse_and_source(warehouse_id, source_id, pagination=pagination)
+
+List Selective Syncs from Warehouse And Source
+
+Returns the schema for a Warehouse, including Sources, Collections, and Properties.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_selective_syncs_from_warehouse_and_source200_response import ListSelectiveSyncsFromWarehouseAndSource200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Selective Syncs from Warehouse And Source
+        api_response = api_instance.list_selective_syncs_from_warehouse_and_source(warehouse_id, source_id, pagination=pagination)
+        print("The response of SelectiveSyncApi->list_selective_syncs_from_warehouse_and_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->list_selective_syncs_from_warehouse_and_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **source_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListSelectiveSyncsFromWarehouseAndSource200Response**](ListSelectiveSyncsFromWarehouseAndSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_syncs_from_warehouse
+
+> ListSyncsFromWarehouse200Response list_syncs_from_warehouse(warehouse_id, pagination=pagination)
+
+List Syncs from Warehouse
+
+Returns the overview of syncs for every Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_syncs_from_warehouse200_response import ListSyncsFromWarehouse200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Syncs from Warehouse
+        api_response = api_instance.list_syncs_from_warehouse(warehouse_id, pagination=pagination)
+        print("The response of SelectiveSyncApi->list_syncs_from_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->list_syncs_from_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListSyncsFromWarehouse200Response**](ListSyncsFromWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_syncs_from_warehouse_and_source
+
+> ListSyncsFromWarehouseAndSource200Response list_syncs_from_warehouse_and_source(warehouse_id, source_id, pagination=pagination)
+
+List Syncs from Warehouse And Source
+
+Returns the overview of syncs for a Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_syncs_from_warehouse_and_source200_response import ListSyncsFromWarehouseAndSource200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Syncs from Warehouse And Source
+        api_response = api_instance.list_syncs_from_warehouse_and_source(warehouse_id, source_id, pagination=pagination)
+        print("The response of SelectiveSyncApi->list_syncs_from_warehouse_and_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->list_syncs_from_warehouse_and_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **source_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListSyncsFromWarehouseAndSource200Response**](ListSyncsFromWarehouseAndSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_advanced_sync_schedule_for_warehouse
+
+> ReplaceAdvancedSyncScheduleForWarehouse200Response replace_advanced_sync_schedule_for_warehouse(warehouse_id, replace_advanced_sync_schedule_for_warehouse_v1_input)
+
+Replace Advanced Sync Schedule for Warehouse
+
+Updates the advanced sync schedule for a Warehouse, replacing the sync schedule with a new schedule.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse200_response import ReplaceAdvancedSyncScheduleForWarehouse200Response
+from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse_v1_input import ReplaceAdvancedSyncScheduleForWarehouseV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    replace_advanced_sync_schedule_for_warehouse_v1_input = {"enabled":true,"schedule":{"times":[{"enabled":true,"hourOfDay":7},{"enabled":false,"hourOfDay":5},{"enabled":true,"hourOfDay":23}],"timezone":"America/Vancouver"}} # ReplaceAdvancedSyncScheduleForWarehouseV1Input | 
+
+    try:
+        # Replace Advanced Sync Schedule for Warehouse
+        api_response = api_instance.replace_advanced_sync_schedule_for_warehouse(warehouse_id, replace_advanced_sync_schedule_for_warehouse_v1_input)
+        print("The response of SelectiveSyncApi->replace_advanced_sync_schedule_for_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->replace_advanced_sync_schedule_for_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **replace_advanced_sync_schedule_for_warehouse_v1_input** | [**ReplaceAdvancedSyncScheduleForWarehouseV1Input**](ReplaceAdvancedSyncScheduleForWarehouseV1Input.md)|  | 
+
+### Return type
+
+[**ReplaceAdvancedSyncScheduleForWarehouse200Response**](ReplaceAdvancedSyncScheduleForWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_selective_sync_for_warehouse
+
+> UpdateSelectiveSyncForWarehouse200Response update_selective_sync_for_warehouse(warehouse_id, update_selective_sync_for_warehouse_v1_input)
+
+Update Selective Sync for Warehouse
+
+Configures the schema for a Warehouse, including Sources, Collections, and Properties.    • When called, this endpoint may generate the `Storage Destination Modified` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_selective_sync_for_warehouse200_response import UpdateSelectiveSyncForWarehouse200Response
+from segment_public_api.models.update_selective_sync_for_warehouse_v1_input import UpdateSelectiveSyncForWarehouseV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SelectiveSyncApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    update_selective_sync_for_warehouse_v1_input = {"syncOverrides":[{"sourceId":"rh5BDZp6QDHvXFCkibm1pR","enabled":true,"collection":"checkout_started","property":"context_ip"}]} # UpdateSelectiveSyncForWarehouseV1Input | 
+
+    try:
+        # Update Selective Sync for Warehouse
+        api_response = api_instance.update_selective_sync_for_warehouse(warehouse_id, update_selective_sync_for_warehouse_v1_input)
+        print("The response of SelectiveSyncApi->update_selective_sync_for_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SelectiveSyncApi->update_selective_sync_for_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **update_selective_sync_for_warehouse_v1_input** | [**UpdateSelectiveSyncForWarehouseV1Input**](UpdateSelectiveSyncForWarehouseV1Input.md)|  | 
+
+### Return type
+
+[**UpdateSelectiveSyncForWarehouse200Response**](UpdateSelectiveSyncForWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/SourcesApi.md b/docs/SourcesApi.md
new file mode 100644
index 000000000..901c7e04a
--- /dev/null
+++ b/docs/SourcesApi.md
@@ -0,0 +1,992 @@
+# segment_public_api.SourcesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_labels_to_source**](SourcesApi.md#add_labels_to_source) | **POST** /sources/{sourceId}/labels | Add Labels to Source
+[**create_source**](SourcesApi.md#create_source) | **POST** /sources | Create Source
+[**create_write_key_for_source**](SourcesApi.md#create_write_key_for_source) | **POST** /sources/{sourceId}/writekey | Create Write Key for Source
+[**delete_source**](SourcesApi.md#delete_source) | **DELETE** /sources/{sourceId} | Delete Source
+[**get_source**](SourcesApi.md#get_source) | **GET** /sources/{sourceId} | Get Source
+[**list_connected_destinations_from_source**](SourcesApi.md#list_connected_destinations_from_source) | **GET** /sources/{sourceId}/connected-destinations | List Connected Destinations from Source
+[**list_connected_warehouses_from_source**](SourcesApi.md#list_connected_warehouses_from_source) | **GET** /sources/{sourceId}/connected-warehouses | List Connected Warehouses from Source
+[**list_schema_settings_in_source**](SourcesApi.md#list_schema_settings_in_source) | **GET** /sources/{sourceId}/settings | List Schema Settings in Source
+[**list_sources**](SourcesApi.md#list_sources) | **GET** /sources | List Sources
+[**remove_write_key_from_source**](SourcesApi.md#remove_write_key_from_source) | **DELETE** /sources/{sourceId}/writekey/{writeKey} | Remove Write Key from Source
+[**replace_labels_in_source**](SourcesApi.md#replace_labels_in_source) | **PUT** /sources/{sourceId}/labels | Replace Labels in Source
+[**update_schema_settings_in_source**](SourcesApi.md#update_schema_settings_in_source) | **PATCH** /sources/{sourceId}/settings | Update Schema Settings in Source
+[**update_source**](SourcesApi.md#update_source) | **PATCH** /sources/{sourceId} | Update Source
+
+
+
+## Operation: add_labels_to_source
+
+> AddLabelsToSource200Response add_labels_to_source(source_id, add_labels_to_source_v1_input)
+
+Add Labels to Source
+
+Adds an existing label to a Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_labels_to_source200_response import AddLabelsToSource200Response
+from segment_public_api.models.add_labels_to_source_v1_input import AddLabelsToSourceV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+    add_labels_to_source_v1_input = {"labels":[{"key":"type","value":"web"}]} # AddLabelsToSourceV1Input | 
+
+    try:
+        # Add Labels to Source
+        api_response = api_instance.add_labels_to_source(source_id, add_labels_to_source_v1_input)
+        print("The response of SourcesApi->add_labels_to_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->add_labels_to_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **add_labels_to_source_v1_input** | [**AddLabelsToSourceV1Input**](AddLabelsToSourceV1Input.md)|  | 
+
+### Return type
+
+[**AddLabelsToSource200Response**](AddLabelsToSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_source
+
+> CreateSource201Response create_source(create_source_v1_input)
+
+Create Source
+
+Creates a new Source.    • When called, this endpoint may generate the `Source Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_source201_response import CreateSource201Response
+from segment_public_api.models.create_source_v1_input import CreateSourceV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    create_source_v1_input = {"slug":"my-test-source-2gwoon","enabled":true,"metadataId":"IqDTy1TpoU","settings":{}} # CreateSourceV1Input | 
+
+    try:
+        # Create Source
+        api_response = api_instance.create_source(create_source_v1_input)
+        print("The response of SourcesApi->create_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->create_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_source_v1_input** | [**CreateSourceV1Input**](CreateSourceV1Input.md)|  | 
+
+### Return type
+
+[**CreateSource201Response**](CreateSource201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_write_key_for_source
+
+> CreateWriteKeyForSource200Response create_write_key_for_source(source_id)
+
+Create Write Key for Source
+
+Creates a new Write Key for the Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail). 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_write_key_for_source200_response import CreateWriteKeyForSource200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'idR4zzU9iGcGJgoAX891nf' # str | 
+
+    try:
+        # Create Write Key for Source
+        api_response = api_instance.create_write_key_for_source(source_id)
+        print("The response of SourcesApi->create_write_key_for_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->create_write_key_for_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**CreateWriteKeyForSource200Response**](CreateWriteKeyForSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_source
+
+> DeleteSource200Response delete_source(source_id)
+
+Delete Source
+
+Deletes an existing Source.    • When called, this endpoint may generate the `Source Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_source200_response import DeleteSource200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'rYxTjyaPtAELCjnFE5EYfM' # str | 
+
+    try:
+        # Delete Source
+        api_response = api_instance.delete_source(source_id)
+        print("The response of SourcesApi->delete_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->delete_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**DeleteSource200Response**](DeleteSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_source
+
+> GetSource200Response get_source(source_id)
+
+Get Source
+
+Returns a Source by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_source200_response import GetSource200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+
+    try:
+        # Get Source
+        api_response = api_instance.get_source(source_id)
+        print("The response of SourcesApi->get_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->get_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**GetSource200Response**](GetSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_connected_destinations_from_source
+
+> ListConnectedDestinationsFromSource200Response list_connected_destinations_from_source(source_id, pagination=pagination)
+
+List Connected Destinations from Source
+
+Returns a list of Destinations connected to a Source.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_connected_destinations_from_source200_response import ListConnectedDestinationsFromSource200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Required pagination params for the request.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Connected Destinations from Source
+        api_response = api_instance.list_connected_destinations_from_source(source_id, pagination=pagination)
+        print("The response of SourcesApi->list_connected_destinations_from_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->list_connected_destinations_from_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Required pagination params for the request.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListConnectedDestinationsFromSource200Response**](ListConnectedDestinationsFromSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_connected_warehouses_from_source
+
+> ListConnectedWarehousesFromSource200Response list_connected_warehouses_from_source(source_id, pagination=pagination)
+
+List Connected Warehouses from Source
+
+Returns a list of Warehouses connected to a Source.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_connected_warehouses_from_source200_response import ListConnectedWarehousesFromSource200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Required pagination params for the request.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Connected Warehouses from Source
+        api_response = api_instance.list_connected_warehouses_from_source(source_id, pagination=pagination)
+        print("The response of SourcesApi->list_connected_warehouses_from_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->list_connected_warehouses_from_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Required pagination params for the request.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListConnectedWarehousesFromSource200Response**](ListConnectedWarehousesFromSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_schema_settings_in_source
+
+> ListSchemaSettingsInSource200Response list_schema_settings_in_source(source_id)
+
+List Schema Settings in Source
+
+Retrieves the schema configuration settings for a Source. If Protocols is not enabled for the Source, the configurations specific to Protocols will have default values.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_schema_settings_in_source200_response import ListSchemaSettingsInSource200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+
+    try:
+        # List Schema Settings in Source
+        api_response = api_instance.list_schema_settings_in_source(source_id)
+        print("The response of SourcesApi->list_schema_settings_in_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->list_schema_settings_in_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**ListSchemaSettingsInSource200Response**](ListSchemaSettingsInSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_sources
+
+> ListSources200Response list_sources(pagination=pagination)
+
+List Sources
+
+Returns a list of Sources.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_sources200_response import ListSources200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in alpha. (optional)
+
+    try:
+        # List Sources
+        api_response = api_instance.list_sources(pagination=pagination)
+        print("The response of SourcesApi->list_sources:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->list_sources: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListSources200Response**](ListSources200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_write_key_from_source
+
+> RemoveWriteKeyFromSource200Response remove_write_key_from_source(source_id, write_key)
+
+Remove Write Key from Source
+
+Removes a Write Key from a Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail). 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_write_key_from_source200_response import RemoveWriteKeyFromSource200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'idR4zzU9iGcGJgoAX891nf' # str | 
+    write_key = 'wk123' # str | 
+
+    try:
+        # Remove Write Key from Source
+        api_response = api_instance.remove_write_key_from_source(source_id, write_key)
+        print("The response of SourcesApi->remove_write_key_from_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->remove_write_key_from_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **write_key** | **str**|  | 
+
+### Return type
+
+[**RemoveWriteKeyFromSource200Response**](RemoveWriteKeyFromSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_labels_in_source
+
+> ReplaceLabelsInSource200Response replace_labels_in_source(source_id, replace_labels_in_source_v1_input)
+
+Replace Labels in Source
+
+Replaces all labels in a Source.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_labels_in_source200_response import ReplaceLabelsInSource200Response
+from segment_public_api.models.replace_labels_in_source_v1_input import ReplaceLabelsInSourceV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+    replace_labels_in_source_v1_input = {"labels":[{"key":"environment","value":"prod"}]} # ReplaceLabelsInSourceV1Input | 
+
+    try:
+        # Replace Labels in Source
+        api_response = api_instance.replace_labels_in_source(source_id, replace_labels_in_source_v1_input)
+        print("The response of SourcesApi->replace_labels_in_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->replace_labels_in_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **replace_labels_in_source_v1_input** | [**ReplaceLabelsInSourceV1Input**](ReplaceLabelsInSourceV1Input.md)|  | 
+
+### Return type
+
+[**ReplaceLabelsInSource200Response**](ReplaceLabelsInSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_schema_settings_in_source
+
+> UpdateSchemaSettingsInSource200Response update_schema_settings_in_source(source_id, update_schema_settings_in_source_v1_input)
+
+Update Schema Settings in Source
+
+Updates the schema configuration for a Source. If Protocols is not enabled for the Source, any updates to Protocols-specific configurations will not be applied.        Config API omitted fields: - `updateMask`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_schema_settings_in_source200_response import UpdateSchemaSettingsInSource200Response
+from segment_public_api.models.update_schema_settings_in_source_v1_input import UpdateSchemaSettingsInSourceV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | 
+    update_schema_settings_in_source_v1_input = {"group":{"allowTraitsOnViolations":false,"allowUnplannedTraits":false,"commonEventOnViolations":"ALLOW"},"identify":{"allowTraitsOnViolations":true,"allowUnplannedTraits":true,"commonEventOnViolations":"BLOCK"},"track":{"allowEventOnViolations":false,"allowPropertiesOnViolations":false,"allowUnplannedEventProperties":false,"allowUnplannedEvents":false,"commonEventOnViolations":"OMIT_PROPERTIES"},"forwardingViolationsTo":"rh5BDZp6QDHvXFCkibm1pR","forwardingBlockedEventsTo":"rh5BDZp6QDHvXFCkibm1pR"} # UpdateSchemaSettingsInSourceV1Input | 
+
+    try:
+        # Update Schema Settings in Source
+        api_response = api_instance.update_schema_settings_in_source(source_id, update_schema_settings_in_source_v1_input)
+        print("The response of SourcesApi->update_schema_settings_in_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->update_schema_settings_in_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **update_schema_settings_in_source_v1_input** | [**UpdateSchemaSettingsInSourceV1Input**](UpdateSchemaSettingsInSourceV1Input.md)|  | 
+
+### Return type
+
+[**UpdateSchemaSettingsInSource200Response**](UpdateSchemaSettingsInSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_source
+
+> UpdateSource200Response update_source(source_id, update_source_v1_input)
+
+Update Source
+
+Updates an existing Source.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Source Modified * Source Enabled * Source Settings Modified * Source Disabled  Config API omitted fields: - `updateMask` 
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_source200_response import UpdateSource200Response
+from segment_public_api.models.update_source_v1_input import UpdateSourceV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SourcesApi(api_client)
+    source_id = '44LMHs8Wf5vidxba4kN52J' # str | 
+    update_source_v1_input = {"name":"My updated source","enabled":false} # UpdateSourceV1Input | 
+
+    try:
+        # Update Source
+        api_response = api_instance.update_source(source_id, update_source_v1_input)
+        print("The response of SourcesApi->update_source:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SourcesApi->update_source: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **source_id** | **str**|  | 
+ **update_source_v1_input** | [**UpdateSourceV1Input**](UpdateSourceV1Input.md)|  | 
+
+### Return type
+
+[**UpdateSource200Response**](UpdateSource200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/SpaceFiltersApi.md b/docs/SpaceFiltersApi.md
new file mode 100644
index 000000000..023c1bb8f
--- /dev/null
+++ b/docs/SpaceFiltersApi.md
@@ -0,0 +1,385 @@
+# segment_public_api.SpaceFiltersApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_filter_for_space**](SpaceFiltersApi.md#create_filter_for_space) | **POST** /filters | Create Filter for Space
+[**delete_filter_by_id**](SpaceFiltersApi.md#delete_filter_by_id) | **DELETE** /filters/{id} | Delete Filter By Id
+[**get_filter_by_id**](SpaceFiltersApi.md#get_filter_by_id) | **GET** /filters/{id} | Get Filter By Id
+[**list_filters_for_space**](SpaceFiltersApi.md#list_filters_for_space) | **GET** /filters | List Filters for Space
+[**update_filter_by_id**](SpaceFiltersApi.md#update_filter_by_id) | **PATCH** /filters/{id} | Update Filter By Id
+
+
+
+## Operation: create_filter_for_space
+
+> CreateFilterForSpace200Response create_filter_for_space(create_filter_for_space_input)
+
+Create Filter for Space
+
+Creates a filter for a space. A space filter applies to events coming from all Sources connected to a space.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_filter_for_space200_response import CreateFilterForSpace200Response
+from segment_public_api.models.create_filter_for_space_input import CreateFilterForSpaceInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpaceFiltersApi(api_client)
+    create_filter_for_space_input = {"integrationId":"<id>","name":"Test filter","if":"type = \"track\""} # CreateFilterForSpaceInput | 
+
+    try:
+        # Create Filter for Space
+        api_response = api_instance.create_filter_for_space(create_filter_for_space_input)
+        print("The response of SpaceFiltersApi->create_filter_for_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpaceFiltersApi->create_filter_for_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_filter_for_space_input** | [**CreateFilterForSpaceInput**](CreateFilterForSpaceInput.md)|  | 
+
+### Return type
+
+[**CreateFilterForSpace200Response**](CreateFilterForSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_filter_by_id
+
+> DeleteFilterById200Response delete_filter_by_id(id)
+
+Delete Filter By Id
+
+Deletes a filter by id.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_filter_by_id200_response import DeleteFilterById200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpaceFiltersApi(api_client)
+    id = '<id>' # str | 
+
+    try:
+        # Delete Filter By Id
+        api_response = api_instance.delete_filter_by_id(id)
+        print("The response of SpaceFiltersApi->delete_filter_by_id:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpaceFiltersApi->delete_filter_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**|  | 
+
+### Return type
+
+[**DeleteFilterById200Response**](DeleteFilterById200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_filter_by_id
+
+> GetFilterById200Response get_filter_by_id(id)
+
+Get Filter By Id
+
+Gets a filter by id.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_filter_by_id200_response import GetFilterById200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpaceFiltersApi(api_client)
+    id = '<id>' # str | 
+
+    try:
+        # Get Filter By Id
+        api_response = api_instance.get_filter_by_id(id)
+        print("The response of SpaceFiltersApi->get_filter_by_id:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpaceFiltersApi->get_filter_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**|  | 
+
+### Return type
+
+[**GetFilterById200Response**](GetFilterById200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_filters_for_space
+
+> ListFiltersForSpace200Response list_filters_for_space(integration_id, pagination=pagination)
+
+List Filters for Space
+
+Lists filters for a space.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_filters_for_space200_response import ListFiltersForSpace200Response
+from segment_public_api.models.list_filters_pagination_input import ListFiltersPaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpaceFiltersApi(api_client)
+    integration_id = '<id>' # str | The Space Id for which to fetch filters  This parameter exists in beta.
+    pagination = segment_public_api.ListFiltersPaginationInput() # ListFiltersPaginationInput | Pagination parameters.  This parameter exists in beta. (optional)
+
+    try:
+        # List Filters for Space
+        api_response = api_instance.list_filters_for_space(integration_id, pagination=pagination)
+        print("The response of SpaceFiltersApi->list_filters_for_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpaceFiltersApi->list_filters_for_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **integration_id** | **str**| The Space Id for which to fetch filters  This parameter exists in beta. | 
+ **pagination** | [**ListFiltersPaginationInput**](.md)| Pagination parameters.  This parameter exists in beta. | [optional] 
+
+### Return type
+
+[**ListFiltersForSpace200Response**](ListFiltersForSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_filter_by_id
+
+> UpdateFilterById200Response update_filter_by_id(id, update_filter_by_id_input)
+
+Update Filter By Id
+
+Updates a filter by id and replaces the existing filter.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Updated` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_filter_by_id200_response import UpdateFilterById200Response
+from segment_public_api.models.update_filter_by_id_input import UpdateFilterByIdInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpaceFiltersApi(api_client)
+    id = '<id>' # str | 
+    update_filter_by_id_input = {"integrationId":"<id>","if":"!(type = \"track\")","name":"Test name","enabled":true,"description":"Changed description"} # UpdateFilterByIdInput | 
+
+    try:
+        # Update Filter By Id
+        api_response = api_instance.update_filter_by_id(id, update_filter_by_id_input)
+        print("The response of SpaceFiltersApi->update_filter_by_id:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpaceFiltersApi->update_filter_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**|  | 
+ **update_filter_by_id_input** | [**UpdateFilterByIdInput**](UpdateFilterByIdInput.md)|  | 
+
+### Return type
+
+[**UpdateFilterById200Response**](UpdateFilterById200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/SpacesApi.md b/docs/SpacesApi.md
new file mode 100644
index 000000000..a1780c3d5
--- /dev/null
+++ b/docs/SpacesApi.md
@@ -0,0 +1,311 @@
+# segment_public_api.SpacesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**batch_query_messaging_subscriptions_for_space**](SpacesApi.md#batch_query_messaging_subscriptions_for_space) | **POST** /spaces/{spaceId}/messaging-subscriptions/batch | Batch Query Messaging Subscriptions for Space
+[**get_space**](SpacesApi.md#get_space) | **GET** /spaces/{spaceId} | Get Space
+[**list_spaces**](SpacesApi.md#list_spaces) | **GET** /spaces | List Spaces
+[**replace_messaging_subscriptions_in_spaces**](SpacesApi.md#replace_messaging_subscriptions_in_spaces) | **PUT** /spaces/{spaceId}/messaging-subscriptions | Replace Messaging Subscriptions in Spaces
+
+
+
+## Operation: batch_query_messaging_subscriptions_for_space
+
+> BatchQueryMessagingSubscriptionsForSpace200Response batch_query_messaging_subscriptions_for_space(space_id, batch_query_messaging_subscriptions_for_space_alpha_input)
+
+Batch Query Messaging Subscriptions for Space
+
+ <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Get Messaging Subscriptions for space.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.batch_query_messaging_subscriptions_for_space200_response import BatchQueryMessagingSubscriptionsForSpace200Response
+from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_input import BatchQueryMessagingSubscriptionsForSpaceAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpacesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    batch_query_messaging_subscriptions_for_space_alpha_input = {"subscriptions":[{"key":"jacob@exmple.com","type":"EMAIL"},{"key":"jane@exmple.com","type":"EMAIL"},{"key":"pgibbonsexample.com","type":"EMAIL"},{"key":"+12162226233","type":"SMS"}]} # BatchQueryMessagingSubscriptionsForSpaceAlphaInput | 
+
+    try:
+        # Batch Query Messaging Subscriptions for Space
+        api_response = api_instance.batch_query_messaging_subscriptions_for_space(space_id, batch_query_messaging_subscriptions_for_space_alpha_input)
+        print("The response of SpacesApi->batch_query_messaging_subscriptions_for_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpacesApi->batch_query_messaging_subscriptions_for_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **batch_query_messaging_subscriptions_for_space_alpha_input** | [**BatchQueryMessagingSubscriptionsForSpaceAlphaInput**](BatchQueryMessagingSubscriptionsForSpaceAlphaInput.md)|  | 
+
+### Return type
+
+[**BatchQueryMessagingSubscriptionsForSpace200Response**](BatchQueryMessagingSubscriptionsForSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_space
+
+> GetSpace200Response get_space(space_id)
+
+Get Space
+
+Returns the Space by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_space200_response import GetSpace200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpacesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+
+    try:
+        # Get Space
+        api_response = api_instance.get_space(space_id)
+        print("The response of SpacesApi->get_space:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpacesApi->get_space: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+
+### Return type
+
+[**GetSpace200Response**](GetSpace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_spaces
+
+> ListSpaces200Response list_spaces(pagination=pagination)
+
+List Spaces
+
+List Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_spaces200_response import ListSpaces200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpacesApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination params  This parameter exists in alpha. (optional)
+
+    try:
+        # List Spaces
+        api_response = api_instance.list_spaces(pagination=pagination)
+        print("The response of SpacesApi->list_spaces:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpacesApi->list_spaces: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination params  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**ListSpaces200Response**](ListSpaces200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_messaging_subscriptions_in_spaces
+
+> ReplaceMessagingSubscriptionsInSpaces200Response replace_messaging_subscriptions_in_spaces(space_id, replace_messaging_subscriptions_in_spaces_alpha_input)
+
+Replace Messaging Subscriptions in Spaces
+
+ <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Replace Messaging Subscriptions in Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_messaging_subscriptions_in_spaces200_response import ReplaceMessagingSubscriptionsInSpaces200Response
+from segment_public_api.models.replace_messaging_subscriptions_in_spaces_alpha_input import ReplaceMessagingSubscriptionsInSpacesAlphaInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.SpacesApi(api_client)
+    space_id = '9aQ1Lj62S4bomZKLF4DPqW' # str | 
+    replace_messaging_subscriptions_in_spaces_alpha_input = {"subscriptions":[{"key":"jacob@exmple.com","type":"EMAIL","status":"SUBSCRIBED"},{"key":"jane@exmple.com","type":"EMAIL","status":"SUBSCRIBED","groups":[{"name":"promotions","status":"SUBSCRIBED"}]},{"key":"pgibbonsexample.com","type":"EMAIL","status":"UNSUBSCRIBED"},{"key":"+12162226233","type":"SMS","status":"DID_NOT_SUBSCRIBE"}]} # ReplaceMessagingSubscriptionsInSpacesAlphaInput | 
+
+    try:
+        # Replace Messaging Subscriptions in Spaces
+        api_response = api_instance.replace_messaging_subscriptions_in_spaces(space_id, replace_messaging_subscriptions_in_spaces_alpha_input)
+        print("The response of SpacesApi->replace_messaging_subscriptions_in_spaces:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling SpacesApi->replace_messaging_subscriptions_in_spaces: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **space_id** | **str**|  | 
+ **replace_messaging_subscriptions_in_spaces_alpha_input** | [**ReplaceMessagingSubscriptionsInSpacesAlphaInput**](ReplaceMessagingSubscriptionsInSpacesAlphaInput.md)|  | 
+
+### Return type
+
+[**ReplaceMessagingSubscriptionsInSpaces200Response**](ReplaceMessagingSubscriptionsInSpaces200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1alpha+json, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/TestingApi.md b/docs/TestingApi.md
new file mode 100644
index 000000000..970591709
--- /dev/null
+++ b/docs/TestingApi.md
@@ -0,0 +1,92 @@
+# segment_public_api.TestingApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**echo**](TestingApi.md#echo) | **GET** /echo | Echo
+
+
+
+## Operation: echo
+
+> Echo200Response echo(message, delay=delay, trigger_error=trigger_error, trigger_multiple_errors=trigger_multiple_errors, trigger_unexpected_error=trigger_unexpected_error, status_code=status_code)
+
+Echo
+
+Public Echo endpoint.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.echo200_response import Echo200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TestingApi(api_client)
+    message = 'Hello, World!' # str | Sets the response `message` field. The response contains this field's entry.  This parameter exists in alpha.
+    delay = 3.4 # float | The desired response delay, in milliseconds.  This parameter exists in alpha. (optional)
+    trigger_error = True # bool | If `true`, returns an HTTP `4xx` error that contains the string in `message`.  This parameter exists in alpha. (optional)
+    trigger_multiple_errors = True # bool | If `true`, returns an HTTP `4xx` error that contains the value of the `message` field in the error message array.  This has no effect if the request sets `triggerError`.  This parameter exists in alpha. (optional)
+    trigger_unexpected_error = True # bool | If `true`, triggers a `500` error.  This has no effect if the request sets either `triggerError` or `triggerMultipleErrors`.  This parameter exists in alpha. (optional)
+    status_code = 3.4 # float | Sets the HTTP status code to return.  This parameter exists in alpha. (optional)
+
+    try:
+        # Echo
+        api_response = api_instance.echo(message, delay=delay, trigger_error=trigger_error, trigger_multiple_errors=trigger_multiple_errors, trigger_unexpected_error=trigger_unexpected_error, status_code=status_code)
+        print("The response of TestingApi->echo:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TestingApi->echo: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **message** | **str**| Sets the response &#x60;message&#x60; field. The response contains this field&#39;s entry.  This parameter exists in alpha. | 
+ **delay** | **float**| The desired response delay, in milliseconds.  This parameter exists in alpha. | [optional] 
+ **trigger_error** | **bool**| If &#x60;true&#x60;, returns an HTTP &#x60;4xx&#x60; error that contains the string in &#x60;message&#x60;.  This parameter exists in alpha. | [optional] 
+ **trigger_multiple_errors** | **bool**| If &#x60;true&#x60;, returns an HTTP &#x60;4xx&#x60; error that contains the value of the &#x60;message&#x60; field in the error message array.  This has no effect if the request sets &#x60;triggerError&#x60;.  This parameter exists in alpha. | [optional] 
+ **trigger_unexpected_error** | **bool**| If &#x60;true&#x60;, triggers a &#x60;500&#x60; error.  This has no effect if the request sets either &#x60;triggerError&#x60; or &#x60;triggerMultipleErrors&#x60;.  This parameter exists in alpha. | [optional] 
+ **status_code** | **float**| Sets the HTTP status code to return.  This parameter exists in alpha. | [optional] 
+
+### Return type
+
+[**Echo200Response**](Echo200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/TrackingPlansApi.md b/docs/TrackingPlansApi.md
new file mode 100644
index 000000000..3d38a8b81
--- /dev/null
+++ b/docs/TrackingPlansApi.md
@@ -0,0 +1,923 @@
+# segment_public_api.TrackingPlansApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_source_to_tracking_plan**](TrackingPlansApi.md#add_source_to_tracking_plan) | **POST** /tracking-plans/{trackingPlanId}/sources | Add Source to Tracking Plan
+[**create_tracking_plan**](TrackingPlansApi.md#create_tracking_plan) | **POST** /tracking-plans | Create Tracking Plan
+[**delete_tracking_plan**](TrackingPlansApi.md#delete_tracking_plan) | **DELETE** /tracking-plans/{trackingPlanId} | Delete Tracking Plan
+[**get_tracking_plan**](TrackingPlansApi.md#get_tracking_plan) | **GET** /tracking-plans/{trackingPlanId} | Get Tracking Plan
+[**list_rules_from_tracking_plan**](TrackingPlansApi.md#list_rules_from_tracking_plan) | **GET** /tracking-plans/{trackingPlanId}/rules | List Rules from Tracking Plan
+[**list_sources_from_tracking_plan**](TrackingPlansApi.md#list_sources_from_tracking_plan) | **GET** /tracking-plans/{trackingPlanId}/sources | List Sources from Tracking Plan
+[**list_tracking_plans**](TrackingPlansApi.md#list_tracking_plans) | **GET** /tracking-plans | List Tracking Plans
+[**remove_rules_from_tracking_plan**](TrackingPlansApi.md#remove_rules_from_tracking_plan) | **DELETE** /tracking-plans/{trackingPlanId}/rules | Remove Rules from Tracking Plan
+[**remove_source_from_tracking_plan**](TrackingPlansApi.md#remove_source_from_tracking_plan) | **DELETE** /tracking-plans/{trackingPlanId}/sources | Remove Source from Tracking Plan
+[**replace_rules_in_tracking_plan**](TrackingPlansApi.md#replace_rules_in_tracking_plan) | **PUT** /tracking-plans/{trackingPlanId}/rules | Replace Rules in Tracking Plan
+[**update_rules_in_tracking_plan**](TrackingPlansApi.md#update_rules_in_tracking_plan) | **PATCH** /tracking-plans/{trackingPlanId}/rules | Update Rules in Tracking Plan
+[**update_tracking_plan**](TrackingPlansApi.md#update_tracking_plan) | **PATCH** /tracking-plans/{trackingPlanId} | Update Tracking Plan
+
+
+
+## Operation: add_source_to_tracking_plan
+
+> AddSourceToTrackingPlan200Response add_source_to_tracking_plan(tracking_plan_id, add_source_to_tracking_plan_v1_input)
+
+Add Source to Tracking Plan
+
+Connects a Source to a Tracking Plan.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_source_to_tracking_plan200_response import AddSourceToTrackingPlan200Response
+from segment_public_api.models.add_source_to_tracking_plan_v1_input import AddSourceToTrackingPlanV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    add_source_to_tracking_plan_v1_input = {"sourceId":"qQEHquLrjRDN9j1ByrChyn"} # AddSourceToTrackingPlanV1Input | 
+
+    try:
+        # Add Source to Tracking Plan
+        api_response = api_instance.add_source_to_tracking_plan(tracking_plan_id, add_source_to_tracking_plan_v1_input)
+        print("The response of TrackingPlansApi->add_source_to_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->add_source_to_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **add_source_to_tracking_plan_v1_input** | [**AddSourceToTrackingPlanV1Input**](AddSourceToTrackingPlanV1Input.md)|  | 
+
+### Return type
+
+[**AddSourceToTrackingPlan200Response**](AddSourceToTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_tracking_plan
+
+> CreateTrackingPlan200Response create_tracking_plan(create_tracking_plan_v1_input)
+
+Create Tracking Plan
+
+Creates a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_tracking_plan200_response import CreateTrackingPlan200Response
+from segment_public_api.models.create_tracking_plan_v1_input import CreateTrackingPlanV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    create_tracking_plan_v1_input = {"name":"New TP","type":"LIVE"} # CreateTrackingPlanV1Input | 
+
+    try:
+        # Create Tracking Plan
+        api_response = api_instance.create_tracking_plan(create_tracking_plan_v1_input)
+        print("The response of TrackingPlansApi->create_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->create_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_tracking_plan_v1_input** | [**CreateTrackingPlanV1Input**](CreateTrackingPlanV1Input.md)|  | 
+
+### Return type
+
+[**CreateTrackingPlan200Response**](CreateTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_tracking_plan
+
+> DeleteTrackingPlan200Response delete_tracking_plan(tracking_plan_id)
+
+Delete Tracking Plan
+
+Deletes a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_tracking_plan200_response import DeleteTrackingPlan200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+
+    try:
+        # Delete Tracking Plan
+        api_response = api_instance.delete_tracking_plan(tracking_plan_id)
+        print("The response of TrackingPlansApi->delete_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->delete_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+
+### Return type
+
+[**DeleteTrackingPlan200Response**](DeleteTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_tracking_plan
+
+> GetTrackingPlan200Response get_tracking_plan(tracking_plan_id)
+
+Get Tracking Plan
+
+Returns a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_tracking_plan200_response import GetTrackingPlan200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+
+    try:
+        # Get Tracking Plan
+        api_response = api_instance.get_tracking_plan(tracking_plan_id)
+        print("The response of TrackingPlansApi->get_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->get_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+
+### Return type
+
+[**GetTrackingPlan200Response**](GetTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_rules_from_tracking_plan
+
+> ListRulesFromTrackingPlan200Response list_rules_from_tracking_plan(tracking_plan_id, pagination=pagination)
+
+List Rules from Tracking Plan
+
+Lists Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 200 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_rules_from_tracking_plan200_response import ListRulesFromTrackingPlan200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in v1. (optional)
+
+    try:
+        # List Rules from Tracking Plan
+        api_response = api_instance.list_rules_from_tracking_plan(tracking_plan_id, pagination=pagination)
+        print("The response of TrackingPlansApi->list_rules_from_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->list_rules_from_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListRulesFromTrackingPlan200Response**](ListRulesFromTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_sources_from_tracking_plan
+
+> ListSourcesFromTrackingPlan200Response list_sources_from_tracking_plan(tracking_plan_id, pagination=pagination)
+
+List Sources from Tracking Plan
+
+Lists Sources connected to a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   This endpoint requires the user to have at least the following permission(s):   * Source Read-only  * Tracking Plan Read-only
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_sources_from_tracking_plan200_response import ListSourcesFromTrackingPlan200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in v1. (optional)
+
+    try:
+        # List Sources from Tracking Plan
+        api_response = api_instance.list_sources_from_tracking_plan(tracking_plan_id, pagination=pagination)
+        print("The response of TrackingPlansApi->list_sources_from_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->list_sources_from_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListSourcesFromTrackingPlan200Response**](ListSourcesFromTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_tracking_plans
+
+> ListTrackingPlans200Response list_tracking_plans(type=type, pagination=pagination)
+
+List Tracking Plans
+
+Returns a list of Tracking Plans.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_tracking_plans200_response import ListTrackingPlans200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    type = 'LIVE' # str | Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1. (optional)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in v1. (optional)
+
+    try:
+        # List Tracking Plans
+        api_response = api_instance.list_tracking_plans(type=type, pagination=pagination)
+        print("The response of TrackingPlansApi->list_tracking_plans:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->list_tracking_plans: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **type** | **str**| Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1. | [optional] 
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListTrackingPlans200Response**](ListTrackingPlans200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_rules_from_tracking_plan
+
+> RemoveRulesFromTrackingPlan200Response remove_rules_from_tracking_plan(tracking_plan_id, rules)
+
+Remove Rules from Tracking Plan
+
+Deletes Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_rule_v1 import RemoveRuleV1
+from segment_public_api.models.remove_rules_from_tracking_plan200_response import RemoveRulesFromTrackingPlan200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    rules = [segment_public_api.RemoveRuleV1()] # List[RemoveRuleV1] | Rules to delete.  This parameter exists in v1.
+
+    try:
+        # Remove Rules from Tracking Plan
+        api_response = api_instance.remove_rules_from_tracking_plan(tracking_plan_id, rules)
+        print("The response of TrackingPlansApi->remove_rules_from_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->remove_rules_from_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **rules** | [**List[RemoveRuleV1]**](RemoveRuleV1.md)| Rules to delete.  This parameter exists in v1. | 
+
+### Return type
+
+[**RemoveRulesFromTrackingPlan200Response**](RemoveRulesFromTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_source_from_tracking_plan
+
+> RemoveSourceFromTrackingPlan200Response remove_source_from_tracking_plan(tracking_plan_id, source_id)
+
+Remove Source from Tracking Plan
+
+Disconnects a Source from a Tracking Plan.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_source_from_tracking_plan200_response import RemoveSourceFromTrackingPlan200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    source_id = 'qQEHquLrjRDN9j1ByrChyn' # str | The id of the Source associated with the Tracking Plan.  Config API note: analogous to `sourceName`.  This parameter exists in v1.
+
+    try:
+        # Remove Source from Tracking Plan
+        api_response = api_instance.remove_source_from_tracking_plan(tracking_plan_id, source_id)
+        print("The response of TrackingPlansApi->remove_source_from_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->remove_source_from_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **source_id** | **str**| The id of the Source associated with the Tracking Plan.  Config API note: analogous to &#x60;sourceName&#x60;.  This parameter exists in v1. | 
+
+### Return type
+
+[**RemoveSourceFromTrackingPlan200Response**](RemoveSourceFromTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: replace_rules_in_tracking_plan
+
+> ReplaceRulesInTrackingPlan200Response replace_rules_in_tracking_plan(tracking_plan_id, replace_rules_in_tracking_plan_v1_input)
+
+Replace Rules in Tracking Plan
+
+Replaces Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.replace_rules_in_tracking_plan200_response import ReplaceRulesInTrackingPlan200Response
+from segment_public_api.models.replace_rules_in_tracking_plan_v1_input import ReplaceRulesInTrackingPlanV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    replace_rules_in_tracking_plan_v1_input = {"rules":[{"key":"New Replaced Rule","type":"TRACK","version":1,"jsonSchema":{}}]} # ReplaceRulesInTrackingPlanV1Input | 
+
+    try:
+        # Replace Rules in Tracking Plan
+        api_response = api_instance.replace_rules_in_tracking_plan(tracking_plan_id, replace_rules_in_tracking_plan_v1_input)
+        print("The response of TrackingPlansApi->replace_rules_in_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->replace_rules_in_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **replace_rules_in_tracking_plan_v1_input** | [**ReplaceRulesInTrackingPlanV1Input**](ReplaceRulesInTrackingPlanV1Input.md)|  | 
+
+### Return type
+
+[**ReplaceRulesInTrackingPlan200Response**](ReplaceRulesInTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_rules_in_tracking_plan
+
+> UpdateRulesInTrackingPlan200Response update_rules_in_tracking_plan(tracking_plan_id, update_rules_in_tracking_plan_v1_input)
+
+Update Rules in Tracking Plan
+
+Updates Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_rules_in_tracking_plan200_response import UpdateRulesInTrackingPlan200Response
+from segment_public_api.models.update_rules_in_tracking_plan_v1_input import UpdateRulesInTrackingPlanV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    update_rules_in_tracking_plan_v1_input = {"rules":[{"key":"New Rule","type":"TRACK","version":1,"jsonSchema":{}}]} # UpdateRulesInTrackingPlanV1Input | 
+
+    try:
+        # Update Rules in Tracking Plan
+        api_response = api_instance.update_rules_in_tracking_plan(tracking_plan_id, update_rules_in_tracking_plan_v1_input)
+        print("The response of TrackingPlansApi->update_rules_in_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->update_rules_in_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **update_rules_in_tracking_plan_v1_input** | [**UpdateRulesInTrackingPlanV1Input**](UpdateRulesInTrackingPlanV1Input.md)|  | 
+
+### Return type
+
+[**UpdateRulesInTrackingPlan200Response**](UpdateRulesInTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_tracking_plan
+
+> UpdateTrackingPlan200Response update_tracking_plan(tracking_plan_id, update_tracking_plan_v1_input)
+
+Update Tracking Plan
+
+Updates a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  Config API omitted fields: - `updateMask`       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_tracking_plan200_response import UpdateTrackingPlan200Response
+from segment_public_api.models.update_tracking_plan_v1_input import UpdateTrackingPlanV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TrackingPlansApi(api_client)
+    tracking_plan_id = 'tp_sprout_rVGCC6WdrNxjCf6JpCHP' # str | 
+    update_tracking_plan_v1_input = {"name":"Updated TP"} # UpdateTrackingPlanV1Input | 
+
+    try:
+        # Update Tracking Plan
+        api_response = api_instance.update_tracking_plan(tracking_plan_id, update_tracking_plan_v1_input)
+        print("The response of TrackingPlansApi->update_tracking_plan:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TrackingPlansApi->update_tracking_plan: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tracking_plan_id** | **str**|  | 
+ **update_tracking_plan_v1_input** | [**UpdateTrackingPlanV1Input**](UpdateTrackingPlanV1Input.md)|  | 
+
+### Return type
+
+[**UpdateTrackingPlan200Response**](UpdateTrackingPlan200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/TransformationsApi.md b/docs/TransformationsApi.md
new file mode 100644
index 000000000..62de3fba7
--- /dev/null
+++ b/docs/TransformationsApi.md
@@ -0,0 +1,383 @@
+# segment_public_api.TransformationsApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_transformation**](TransformationsApi.md#create_transformation) | **POST** /transformations | Create Transformation
+[**delete_transformation**](TransformationsApi.md#delete_transformation) | **DELETE** /transformations/{transformationId} | Delete Transformation
+[**get_transformation**](TransformationsApi.md#get_transformation) | **GET** /transformations/{transformationId} | Get Transformation
+[**list_transformations**](TransformationsApi.md#list_transformations) | **GET** /transformations | List Transformations
+[**update_transformation**](TransformationsApi.md#update_transformation) | **PATCH** /transformations/{transformationId} | Update Transformation
+
+
+
+## Operation: create_transformation
+
+> CreateTransformation200Response create_transformation(create_transformation_v1_input)
+
+Create Transformation
+
+Creates a new Transformation.    • When called, this endpoint may generate the `Transformation Created` event in the [audit trail](/tag/Audit-Trail).   • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_transformation200_response import CreateTransformation200Response
+from segment_public_api.models.create_transformation_v1_input import CreateTransformationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TransformationsApi(api_client)
+    create_transformation_v1_input = {"name":"Name of the new transformation","sourceId":"qQEHquLrjRDN9j1ByrChyn","enabled":true,"newEventName":"new-event-name","propertyRenames":[{"oldName":"old-name","newName":"new-name"},{"oldName":"another-name-old","newName":"another-name-new"}],"propertyValueTransformations":[{"propertyPaths":["properties.some-property","context.some-property"],"propertyValue":"some property value"}],"if":"event = 'Example Event V1'"} # CreateTransformationV1Input | 
+
+    try:
+        # Create Transformation
+        api_response = api_instance.create_transformation(create_transformation_v1_input)
+        print("The response of TransformationsApi->create_transformation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TransformationsApi->create_transformation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_transformation_v1_input** | [**CreateTransformationV1Input**](CreateTransformationV1Input.md)|  | 
+
+### Return type
+
+[**CreateTransformation200Response**](CreateTransformation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_transformation
+
+> DeleteTransformation200Response delete_transformation(transformation_id)
+
+Delete Transformation
+
+Deletes a Transformation.    • When called, this endpoint may generate the `Transformation Deleted` event in the [audit trail](/tag/Audit-Trail).   • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_transformation200_response import DeleteTransformation200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TransformationsApi(api_client)
+    transformation_id = '2c0vVuRdDmJ3UQkVjd5WxaA3dar' # str | 
+
+    try:
+        # Delete Transformation
+        api_response = api_instance.delete_transformation(transformation_id)
+        print("The response of TransformationsApi->delete_transformation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TransformationsApi->delete_transformation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **transformation_id** | **str**|  | 
+
+### Return type
+
+[**DeleteTransformation200Response**](DeleteTransformation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_transformation
+
+> GetTransformation200Response get_transformation(transformation_id)
+
+Get Transformation
+
+Gets a Transformation.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_transformation200_response import GetTransformation200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TransformationsApi(api_client)
+    transformation_id = 'pHrD51Ds35Zjfka84yXQE6' # str | 
+
+    try:
+        # Get Transformation
+        api_response = api_instance.get_transformation(transformation_id)
+        print("The response of TransformationsApi->get_transformation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TransformationsApi->get_transformation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **transformation_id** | **str**|  | 
+
+### Return type
+
+[**GetTransformation200Response**](GetTransformation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_transformations
+
+> ListTransformations200Response list_transformations(pagination=pagination)
+
+List Transformations
+
+Lists all Transformations in the Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_transformations200_response import ListTransformations200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TransformationsApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Pagination options.  This parameter exists in v1. (optional)
+
+    try:
+        # List Transformations
+        api_response = api_instance.list_transformations(pagination=pagination)
+        print("The response of TransformationsApi->list_transformations:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TransformationsApi->list_transformations: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Pagination options.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListTransformations200Response**](ListTransformations200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_transformation
+
+> UpdateTransformation200Response update_transformation(transformation_id, update_transformation_v1_input)
+
+Update Transformation
+
+Updates an existing Transformation.    • When called, this endpoint may generate the `Transformation Updated` event in the [audit trail](/tag/Audit-Trail).   • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_transformation200_response import UpdateTransformation200Response
+from segment_public_api.models.update_transformation_v1_input import UpdateTransformationV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.TransformationsApi(api_client)
+    transformation_id = 'pHrD51Ds35Zjfka84yXQE6' # str | 
+    update_transformation_v1_input = {"name":"updated-name","sourceId":"rh5BDZp6QDHvXFCkibm1pR","enabled":true,"destinationMetadataId":"547610a5db31d978f14a5c4e","if":"event=\"my-event\"","newEventName":"my-updated-event","propertyRenames":[{"newName":"new-property","oldName":"old-property"}],"propertyValueTransformations":[{"propertyPaths":["properties.another-property"],"propertyValue":"another property value"}]} # UpdateTransformationV1Input | 
+
+    try:
+        # Update Transformation
+        api_response = api_instance.update_transformation(transformation_id, update_transformation_v1_input)
+        print("The response of TransformationsApi->update_transformation:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling TransformationsApi->update_transformation: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **transformation_id** | **str**|  | 
+ **update_transformation_v1_input** | [**UpdateTransformationV1Input**](UpdateTransformationV1Input.md)|  | 
+
+### Return type
+
+[**UpdateTransformation200Response**](UpdateTransformation200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/WarehousesApi.md b/docs/WarehousesApi.md
new file mode 100644
index 000000000..7bd11889d
--- /dev/null
+++ b/docs/WarehousesApi.md
@@ -0,0 +1,761 @@
+# segment_public_api.WarehousesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_connection_from_source_to_warehouse**](WarehousesApi.md#add_connection_from_source_to_warehouse) | **POST** /warehouses/{warehouseId}/connected-sources/{sourceId} | Add Connection from Source to Warehouse
+[**create_validation_in_warehouse**](WarehousesApi.md#create_validation_in_warehouse) | **POST** /warehouses/validation | Create Validation in Warehouse
+[**create_warehouse**](WarehousesApi.md#create_warehouse) | **POST** /warehouses | Create Warehouse
+[**delete_warehouse**](WarehousesApi.md#delete_warehouse) | **DELETE** /warehouses/{warehouseId} | Delete Warehouse
+[**get_connection_state_from_warehouse**](WarehousesApi.md#get_connection_state_from_warehouse) | **GET** /warehouses/{warehouseId}/connection-state | Get Connection State from Warehouse
+[**get_warehouse**](WarehousesApi.md#get_warehouse) | **GET** /warehouses/{warehouseId} | Get Warehouse
+[**list_connected_sources_from_warehouse**](WarehousesApi.md#list_connected_sources_from_warehouse) | **GET** /warehouses/{warehouseId}/connected-sources | List Connected Sources from Warehouse
+[**list_warehouses**](WarehousesApi.md#list_warehouses) | **GET** /warehouses | List Warehouses
+[**remove_source_connection_from_warehouse**](WarehousesApi.md#remove_source_connection_from_warehouse) | **DELETE** /warehouses/{warehouseId}/connected-sources/{sourceId} | Remove Source Connection from Warehouse
+[**update_warehouse**](WarehousesApi.md#update_warehouse) | **PATCH** /warehouses/{warehouseId} | Update Warehouse
+
+
+
+## Operation: add_connection_from_source_to_warehouse
+
+> AddConnectionFromSourceToWarehouse201Response add_connection_from_source_to_warehouse(warehouse_id, source_id)
+
+Add Connection from Source to Warehouse
+
+Connects a Source to a Warehouse.    • When called, this endpoint may generate the `Storage Destination Modified` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.add_connection_from_source_to_warehouse201_response import AddConnectionFromSourceToWarehouse201Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+
+    try:
+        # Add Connection from Source to Warehouse
+        api_response = api_instance.add_connection_from_source_to_warehouse(warehouse_id, source_id)
+        print("The response of WarehousesApi->add_connection_from_source_to_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->add_connection_from_source_to_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**AddConnectionFromSourceToWarehouse201Response**](AddConnectionFromSourceToWarehouse201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_validation_in_warehouse
+
+> CreateValidationInWarehouse200Response create_validation_in_warehouse(create_validation_in_warehouse_v1_input)
+
+Create Validation in Warehouse
+
+Validates input settings against a Warehouse.    • When called, this endpoint may generate the `Storage Destination Settings Validation` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_validation_in_warehouse200_response import CreateValidationInWarehouse200Response
+from segment_public_api.models.create_validation_in_warehouse_v1_input import CreateValidationInWarehouseV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    create_validation_in_warehouse_v1_input = {"metadataId":"55d3d3aea3c","settings":{"hostname":"address.us-west-2.redshift.amazonaws.com","port":"5439","database":"db","username":"user","password":"test"}} # CreateValidationInWarehouseV1Input | 
+
+    try:
+        # Create Validation in Warehouse
+        api_response = api_instance.create_validation_in_warehouse(create_validation_in_warehouse_v1_input)
+        print("The response of WarehousesApi->create_validation_in_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->create_validation_in_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_validation_in_warehouse_v1_input** | [**CreateValidationInWarehouseV1Input**](CreateValidationInWarehouseV1Input.md)|  | 
+
+### Return type
+
+[**CreateValidationInWarehouse200Response**](CreateValidationInWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: create_warehouse
+
+> CreateWarehouse201Response create_warehouse(create_warehouse_v1_input)
+
+Create Warehouse
+
+Creates a new Warehouse.    • When called, this endpoint may generate the `Storage Destination Created` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.create_warehouse201_response import CreateWarehouse201Response
+from segment_public_api.models.create_warehouse_v1_input import CreateWarehouseV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    create_warehouse_v1_input = {"metadataId":"CCIl4HLQPz","settings":{"username":"CONNECTOR_UNIT_TEST_USER","password":"test_pass","auth_type":"password_auth","account":"segment","warehouse":"ENGINEERING","database":"TEST_DB"}} # CreateWarehouseV1Input | 
+
+    try:
+        # Create Warehouse
+        api_response = api_instance.create_warehouse(create_warehouse_v1_input)
+        print("The response of WarehousesApi->create_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->create_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **create_warehouse_v1_input** | [**CreateWarehouseV1Input**](CreateWarehouseV1Input.md)|  | 
+
+### Return type
+
+[**CreateWarehouse201Response**](CreateWarehouse201Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: delete_warehouse
+
+> DeleteWarehouse200Response delete_warehouse(warehouse_id)
+
+Delete Warehouse
+
+Deletes an existing Warehouse.    • When called, this endpoint may generate the `Storage Destination Deleted` event in the [audit trail](/tag/Audit-Trail).       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.delete_warehouse200_response import DeleteWarehouse200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'tmiTtiPi58udvDAjcxKUJY' # str | 
+
+    try:
+        # Delete Warehouse
+        api_response = api_instance.delete_warehouse(warehouse_id)
+        print("The response of WarehousesApi->delete_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->delete_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+
+### Return type
+
+[**DeleteWarehouse200Response**](DeleteWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_connection_state_from_warehouse
+
+> GetConnectionStateFromWarehouse200Response get_connection_state_from_warehouse(warehouse_id)
+
+Get Connection State from Warehouse
+
+Verifies the state of Warehouse connection settings.   The rate limit for this endpoint is 200 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_connection_state_from_warehouse200_response import GetConnectionStateFromWarehouse200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+
+    try:
+        # Get Connection State from Warehouse
+        api_response = api_instance.get_connection_state_from_warehouse(warehouse_id)
+        print("The response of WarehousesApi->get_connection_state_from_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->get_connection_state_from_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+
+### Return type
+
+[**GetConnectionStateFromWarehouse200Response**](GetConnectionStateFromWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: get_warehouse
+
+> GetWarehouse200Response get_warehouse(warehouse_id)
+
+Get Warehouse
+
+Returns a Warehouse by its id.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_warehouse200_response import GetWarehouse200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+
+    try:
+        # Get Warehouse
+        api_response = api_instance.get_warehouse(warehouse_id)
+        print("The response of WarehousesApi->get_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->get_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+
+### Return type
+
+[**GetWarehouse200Response**](GetWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_connected_sources_from_warehouse
+
+> ListConnectedSourcesFromWarehouse200Response list_connected_sources_from_warehouse(warehouse_id, pagination=pagination)
+
+List Connected Sources from Warehouse
+
+Returns the list of Sources that are connected to a Warehouse.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_connected_sources_from_warehouse200_response import ListConnectedSourcesFromWarehouse200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Connected Sources from Warehouse
+        api_response = api_instance.list_connected_sources_from_warehouse(warehouse_id, pagination=pagination)
+        print("The response of WarehousesApi->list_connected_sources_from_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->list_connected_sources_from_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListConnectedSourcesFromWarehouse200Response**](ListConnectedSourcesFromWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: list_warehouses
+
+> ListWarehouses200Response list_warehouses(pagination=pagination)
+
+List Warehouses
+
+Returns a list of Warehouses.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.list_warehouses200_response import ListWarehouses200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    pagination = segment_public_api.PaginationInput(count=10) # PaginationInput | Defines the pagination parameters.  This parameter exists in v1. (optional)
+
+    try:
+        # List Warehouses
+        api_response = api_instance.list_warehouses(pagination=pagination)
+        print("The response of WarehousesApi->list_warehouses:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->list_warehouses: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pagination** | [**PaginationInput**](.md)| Defines the pagination parameters.  This parameter exists in v1. | [optional] 
+
+### Return type
+
+[**ListWarehouses200Response**](ListWarehouses200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: remove_source_connection_from_warehouse
+
+> RemoveSourceConnectionFromWarehouse200Response remove_source_connection_from_warehouse(warehouse_id, source_id)
+
+Remove Source Connection from Warehouse
+
+Disconnects a Source from a Warehouse.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.remove_source_connection_from_warehouse200_response import RemoveSourceConnectionFromWarehouse200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    source_id = 'rh5BDZp6QDHvXFCkibm1pR' # str | 
+
+    try:
+        # Remove Source Connection from Warehouse
+        api_response = api_instance.remove_source_connection_from_warehouse(warehouse_id, source_id)
+        print("The response of WarehousesApi->remove_source_connection_from_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->remove_source_connection_from_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **source_id** | **str**|  | 
+
+### Return type
+
+[**RemoveSourceConnectionFromWarehouse200Response**](RemoveSourceConnectionFromWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
+
+## Operation: update_warehouse
+
+> UpdateWarehouse200Response update_warehouse(warehouse_id, update_warehouse_v1_input)
+
+Update Warehouse
+
+Updates an existing Warehouse.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Storage Destination Modified * Storage Destination Enabled       
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.update_warehouse200_response import UpdateWarehouse200Response
+from segment_public_api.models.update_warehouse_v1_input import UpdateWarehouseV1Input
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WarehousesApi(api_client)
+    warehouse_id = 'kjU72LCJexvrqL7G4TMHHN' # str | 
+    update_warehouse_v1_input = {"name":"Redshift Dev","settings":{}} # UpdateWarehouseV1Input | 
+
+    try:
+        # Update Warehouse
+        api_response = api_instance.update_warehouse(warehouse_id, update_warehouse_v1_input)
+        print("The response of WarehousesApi->update_warehouse:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WarehousesApi->update_warehouse: %s\n" % e)
+```
+
+
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **warehouse_id** | **str**|  | 
+ **update_warehouse_v1_input** | [**UpdateWarehouseV1Input**](UpdateWarehouseV1Input.md)|  | 
+
+### Return type
+
+[**UpdateWarehouse200Response**](UpdateWarehouse200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/vnd.segment.v1+json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/docs/WorkspacesApi.md b/docs/WorkspacesApi.md
new file mode 100644
index 000000000..ca0647eb7
--- /dev/null
+++ b/docs/WorkspacesApi.md
@@ -0,0 +1,78 @@
+# segment_public_api.WorkspacesApi
+
+All URIs are relative to *https://api.segmentapis.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_workspace**](WorkspacesApi.md#get_workspace) | **GET** / | Get Workspace
+
+
+
+## Operation: get_workspace
+
+> GetWorkspace200Response get_workspace()
+
+Get Workspace
+
+Returns the Workspace associated with the token used to access this resource.
+
+### Example
+
+* Bearer Authentication (token):
+```python
+import time
+import os
+import segment_public_api
+from segment_public_api.models.get_workspace200_response import GetWorkspace200Response
+from segment_public_api.rest import ApiException
+from pprint import pprint
+
+
+
+# Configure Bearer authorization: token
+configuration = segment_public_api.Configuration(
+    access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with segment_public_api.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = segment_public_api.WorkspacesApi(api_client)
+
+    try:
+        # Get Workspace
+        api_response = api_instance.get_workspace()
+        print("The response of WorkspacesApi->get_workspace:\n")
+        pprint(api_response)
+    except Exception as e:
+        print("Exception when calling WorkspacesApi->get_workspace: %s\n" % e)
+```
+
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**GetWorkspace200Response**](GetWorkspace200Response.md)
+
+### Authorization
+
+[token](../README.md#token)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.segment.v1+json, application/json, application/vnd.segment.v1beta+json, application/vnd.segment.v1alpha+json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK |  -  |
+**404** | Resource not found |  -  |
+**422** | Validation failure |  -  |
+**429** | Too many requests |  -  |
+
+[[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)
+
diff --git a/segment_public_api/__init__.py b/segment_public_api/__init__.py
index 2a9777110..61359379a 100644
--- a/segment_public_api/__init__.py
+++ b/segment_public_api/__init__.py
@@ -7,7 +7,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -15,15 +15,17 @@
 """  # noqa: E501
 
 
-__version__ = "37.2.0"
+__version__ = "58.13.0"
 
 # import apis into sdk package
 from segment_public_api.api.api_calls_api import APICallsApi
+from segment_public_api.api.activations_api import ActivationsApi
 from segment_public_api.api.audiences_api import AudiencesApi
 from segment_public_api.api.audit_trail_api import AuditTrailApi
 from segment_public_api.api.catalog_api import CatalogApi
 from segment_public_api.api.computed_traits_api import ComputedTraitsApi
 from segment_public_api.api.deletion_and_suppression_api import DeletionAndSuppressionApi
+from segment_public_api.api.delivery_overview_api import DeliveryOverviewApi
 from segment_public_api.api.destination_filters_api import DestinationFiltersApi
 from segment_public_api.api.destinations_api import DestinationsApi
 from segment_public_api.api.edge_functions_api import EdgeFunctionsApi
@@ -38,12 +40,15 @@
 from segment_public_api.api.reverse_etl_api import ReverseETLApi
 from segment_public_api.api.selective_sync_api import SelectiveSyncApi
 from segment_public_api.api.sources_api import SourcesApi
+from segment_public_api.api.space_filters_api import SpaceFiltersApi
 from segment_public_api.api.spaces_api import SpacesApi
 from segment_public_api.api.testing_api import TestingApi
 from segment_public_api.api.tracking_plans_api import TrackingPlansApi
 from segment_public_api.api.transformations_api import TransformationsApi
 from segment_public_api.api.warehouses_api import WarehousesApi
 from segment_public_api.api.workspaces_api import WorkspacesApi
+from segment_public_api.api.customer_insights_api import CustomerInsightsApi
+from segment_public_api.api.dbt_api import DbtApi
 
 # import ApiClient
 from segment_public_api.api_response import ApiResponse
@@ -59,8 +64,15 @@
 # import models into sdk package
 from segment_public_api.models.api_call_snapshot_v1 import APICallSnapshotV1
 from segment_public_api.models.access_permission_v1 import AccessPermissionV1
-from segment_public_api.models.add_connection_from_source_to_warehouse200_response import AddConnectionFromSourceToWarehouse200Response
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+from segment_public_api.models.add_activation_to_audience200_response import AddActivationToAudience200Response
+from segment_public_api.models.add_activation_to_audience_alpha_input import AddActivationToAudienceAlphaInput
+from segment_public_api.models.add_activation_to_audience_alpha_output import AddActivationToAudienceAlphaOutput
+from segment_public_api.models.add_connection_from_source_to_warehouse201_response import AddConnectionFromSourceToWarehouse201Response
 from segment_public_api.models.add_connection_from_source_to_warehouse_v1_output import AddConnectionFromSourceToWarehouseV1Output
+from segment_public_api.models.add_destination_to_audience200_response import AddDestinationToAudience200Response
+from segment_public_api.models.add_destination_to_audience_alpha_input import AddDestinationToAudienceAlphaInput
+from segment_public_api.models.add_destination_to_audience_alpha_output import AddDestinationToAudienceAlphaOutput
 from segment_public_api.models.add_labels_to_source200_response import AddLabelsToSource200Response
 from segment_public_api.models.add_labels_to_source200_response1 import AddLabelsToSource200Response1
 from segment_public_api.models.add_labels_to_source_alpha_input import AddLabelsToSourceAlphaInput
@@ -82,30 +94,70 @@
 from segment_public_api.models.advanced_warehouse_sync_schedule_v1_input import AdvancedWarehouseSyncScheduleV1Input
 from segment_public_api.models.advanced_warehouse_sync_schedule_v1_output import AdvancedWarehouseSyncScheduleV1Output
 from segment_public_api.models.allowed_label_beta import AllowedLabelBeta
+from segment_public_api.models.audience_compute_cadence import AudienceComputeCadence
+from segment_public_api.models.audience_definition import AudienceDefinition
+from segment_public_api.models.audience_definition_without_type import AudienceDefinitionWithoutType
+from segment_public_api.models.audience_options import AudienceOptions
+from segment_public_api.models.audience_options_with_lookback import AudienceOptionsWithLookback
+from segment_public_api.models.audience_preview import AudiencePreview
+from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
+from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
+from segment_public_api.models.audience_preview_identifier import AudiencePreviewIdentifier
+from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
+from segment_public_api.models.audience_preview_result import AudiencePreviewResult
+from segment_public_api.models.audience_schedule import AudienceSchedule
+from segment_public_api.models.audience_size import AudienceSize
 from segment_public_api.models.audience_summary import AudienceSummary
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
 from segment_public_api.models.audit_event_v1 import AuditEventV1
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space200_response import BatchQueryMessagingSubscriptionsForSpace200Response
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_input import BatchQueryMessagingSubscriptionsForSpaceAlphaInput
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_output import BatchQueryMessagingSubscriptionsForSpaceAlphaOutput
 from segment_public_api.models.breakdown_beta import BreakdownBeta
+from segment_public_api.models.cancel_reverse_etl_sync_for_model200_response import CancelReverseETLSyncForModel200Response
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_input import CancelReverseETLSyncForModelInput
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_output import CancelReverseETLSyncForModelOutput
 from segment_public_api.models.common_source_settings_v1 import CommonSourceSettingsV1
 from segment_public_api.models.computed_trait_summary import ComputedTraitSummary
+from segment_public_api.models.computed_traits_definition import ComputedTraitsDefinition
+from segment_public_api.models.config import Config
+from segment_public_api.models.config1 import Config1
+from segment_public_api.models.connection import Connection
 from segment_public_api.models.contact import Contact
+from segment_public_api.models.create_audience200_response import CreateAudience200Response
+from segment_public_api.models.create_audience_alpha_input import CreateAudienceAlphaInput
+from segment_public_api.models.create_audience_alpha_output import CreateAudienceAlphaOutput
+from segment_public_api.models.create_audience_preview200_response import CreateAudiencePreview200Response
+from segment_public_api.models.create_audience_preview_alpha_input import CreateAudiencePreviewAlphaInput
+from segment_public_api.models.create_audience_preview_alpha_output import CreateAudiencePreviewAlphaOutput
+from segment_public_api.models.create_audience_preview_options import CreateAudiencePreviewOptions
 from segment_public_api.models.create_cloud_source_regulation200_response import CreateCloudSourceRegulation200Response
 from segment_public_api.models.create_cloud_source_regulation_v1_input import CreateCloudSourceRegulationV1Input
 from segment_public_api.models.create_cloud_source_regulation_v1_output import CreateCloudSourceRegulationV1Output
+from segment_public_api.models.create_computed_trait200_response import CreateComputedTrait200Response
+from segment_public_api.models.create_computed_trait_alpha_input import CreateComputedTraitAlphaInput
+from segment_public_api.models.create_computed_trait_alpha_output import CreateComputedTraitAlphaOutput
+from segment_public_api.models.create_dbt_model_sync_trigger200_response import CreateDbtModelSyncTrigger200Response
+from segment_public_api.models.create_dbt_model_sync_trigger_input import CreateDbtModelSyncTriggerInput
+from segment_public_api.models.create_dbt_model_sync_trigger_output import CreateDbtModelSyncTriggerOutput
 from segment_public_api.models.create_destination200_response import CreateDestination200Response
 from segment_public_api.models.create_destination_subscription200_response import CreateDestinationSubscription200Response
 from segment_public_api.models.create_destination_subscription_alpha_input import CreateDestinationSubscriptionAlphaInput
 from segment_public_api.models.create_destination_subscription_alpha_output import CreateDestinationSubscriptionAlphaOutput
 from segment_public_api.models.create_destination_v1_input import CreateDestinationV1Input
 from segment_public_api.models.create_destination_v1_output import CreateDestinationV1Output
+from segment_public_api.models.create_download200_response import CreateDownload200Response
+from segment_public_api.models.create_download_alpha_input import CreateDownloadAlphaInput
+from segment_public_api.models.create_download_alpha_output import CreateDownloadAlphaOutput
 from segment_public_api.models.create_edge_functions200_response import CreateEdgeFunctions200Response
 from segment_public_api.models.create_edge_functions_alpha_input import CreateEdgeFunctionsAlphaInput
 from segment_public_api.models.create_edge_functions_alpha_output import CreateEdgeFunctionsAlphaOutput
 from segment_public_api.models.create_filter_for_destination200_response import CreateFilterForDestination200Response
 from segment_public_api.models.create_filter_for_destination_v1_input import CreateFilterForDestinationV1Input
 from segment_public_api.models.create_filter_for_destination_v1_output import CreateFilterForDestinationV1Output
+from segment_public_api.models.create_filter_for_space200_response import CreateFilterForSpace200Response
+from segment_public_api.models.create_filter_for_space_input import CreateFilterForSpaceInput
+from segment_public_api.models.create_filter_for_space_output import CreateFilterForSpaceOutput
 from segment_public_api.models.create_function200_response import CreateFunction200Response
 from segment_public_api.models.create_function_deployment200_response import CreateFunctionDeployment200Response
 from segment_public_api.models.create_function_deployment_v1_output import CreateFunctionDeploymentV1Output
@@ -114,20 +166,23 @@
 from segment_public_api.models.create_insert_function_instance200_response import CreateInsertFunctionInstance200Response
 from segment_public_api.models.create_insert_function_instance_alpha_input import CreateInsertFunctionInstanceAlphaInput
 from segment_public_api.models.create_insert_function_instance_alpha_output import CreateInsertFunctionInstanceAlphaOutput
-from segment_public_api.models.create_invites200_response import CreateInvites200Response
+from segment_public_api.models.create_invites201_response import CreateInvites201Response
 from segment_public_api.models.create_invites_v1_input import CreateInvitesV1Input
 from segment_public_api.models.create_invites_v1_output import CreateInvitesV1Output
-from segment_public_api.models.create_label200_response import CreateLabel200Response
+from segment_public_api.models.create_label201_response import CreateLabel201Response
 from segment_public_api.models.create_label_v1_input import CreateLabelV1Input
 from segment_public_api.models.create_label_v1_output import CreateLabelV1Output
-from segment_public_api.models.create_profiles_warehouse200_response import CreateProfilesWarehouse200Response
+from segment_public_api.models.create_profiles_warehouse201_response import CreateProfilesWarehouse201Response
 from segment_public_api.models.create_profiles_warehouse_alpha_input import CreateProfilesWarehouseAlphaInput
 from segment_public_api.models.create_profiles_warehouse_alpha_output import CreateProfilesWarehouseAlphaOutput
-from segment_public_api.models.create_reverse_etl_model200_response import CreateReverseEtlModel200Response
+from segment_public_api.models.create_reverse_etl_manual_sync200_response import CreateReverseETLManualSync200Response
+from segment_public_api.models.create_reverse_etl_manual_sync_input import CreateReverseETLManualSyncInput
+from segment_public_api.models.create_reverse_etl_manual_sync_output import CreateReverseETLManualSyncOutput
+from segment_public_api.models.create_reverse_etl_model201_response import CreateReverseEtlModel201Response
 from segment_public_api.models.create_reverse_etl_model_input import CreateReverseEtlModelInput
 from segment_public_api.models.create_reverse_etl_model_output import CreateReverseEtlModelOutput
-from segment_public_api.models.create_source200_response import CreateSource200Response
-from segment_public_api.models.create_source200_response1 import CreateSource200Response1
+from segment_public_api.models.create_source201_response import CreateSource201Response
+from segment_public_api.models.create_source201_response1 import CreateSource201Response1
 from segment_public_api.models.create_source_alpha_input import CreateSourceAlphaInput
 from segment_public_api.models.create_source_alpha_output import CreateSourceAlphaOutput
 from segment_public_api.models.create_source_regulation200_response import CreateSourceRegulation200Response
@@ -149,14 +204,20 @@
 from segment_public_api.models.create_validation_in_warehouse200_response import CreateValidationInWarehouse200Response
 from segment_public_api.models.create_validation_in_warehouse_v1_input import CreateValidationInWarehouseV1Input
 from segment_public_api.models.create_validation_in_warehouse_v1_output import CreateValidationInWarehouseV1Output
-from segment_public_api.models.create_warehouse200_response import CreateWarehouse200Response
+from segment_public_api.models.create_warehouse201_response import CreateWarehouse201Response
 from segment_public_api.models.create_warehouse_v1_input import CreateWarehouseV1Input
 from segment_public_api.models.create_warehouse_v1_output import CreateWarehouseV1Output
 from segment_public_api.models.create_workspace_regulation200_response import CreateWorkspaceRegulation200Response
 from segment_public_api.models.create_workspace_regulation_v1_input import CreateWorkspaceRegulationV1Input
 from segment_public_api.models.create_workspace_regulation_v1_output import CreateWorkspaceRegulationV1Output
+from segment_public_api.models.create_write_key_for_source200_response import CreateWriteKeyForSource200Response
+from segment_public_api.models.create_write_key_for_source_alpha_output import CreateWriteKeyForSourceAlphaOutput
+from segment_public_api.models.dbt_model_sync_trigger import DbtModelSyncTrigger
+from segment_public_api.models.delete_activation_alpha_output import DeleteActivationAlphaOutput
 from segment_public_api.models.delete_destination200_response import DeleteDestination200Response
 from segment_public_api.models.delete_destination_v1_output import DeleteDestinationV1Output
+from segment_public_api.models.delete_filter_by_id200_response import DeleteFilterById200Response
+from segment_public_api.models.delete_filter_by_id_output import DeleteFilterByIdOutput
 from segment_public_api.models.delete_function200_response import DeleteFunction200Response
 from segment_public_api.models.delete_function_v1_output import DeleteFunctionV1Output
 from segment_public_api.models.delete_insert_function_instance200_response import DeleteInsertFunctionInstance200Response
@@ -188,8 +249,14 @@
 from segment_public_api.models.delete_warehouse200_response import DeleteWarehouse200Response
 from segment_public_api.models.delete_warehouse_v1_output import DeleteWarehouseV1Output
 from segment_public_api.models.delivery_metrics_summary_beta import DeliveryMetricsSummaryBeta
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.delivery_overview_metrics_datapoint import DeliveryOverviewMetricsDatapoint
+from segment_public_api.models.delivery_overview_metrics_dataset import DeliveryOverviewMetricsDataset
+from segment_public_api.models.delivery_overview_source_filter_by import DeliveryOverviewSourceFilterBy
+from segment_public_api.models.delivery_overview_successfully_received_filter_by import DeliveryOverviewSuccessfullyReceivedFilterBy
 from segment_public_api.models.destination_filter_action_v1 import DestinationFilterActionV1
 from segment_public_api.models.destination_filter_v1 import DestinationFilterV1
+from segment_public_api.models.destination_input import DestinationInput
 from segment_public_api.models.destination_metadata_action_field_v1 import DestinationMetadataActionFieldV1
 from segment_public_api.models.destination_metadata_action_v1 import DestinationMetadataActionV1
 from segment_public_api.models.destination_metadata_component_v1 import DestinationMetadataComponentV1
@@ -204,23 +271,33 @@
 from segment_public_api.models.destination_v1 import DestinationV1
 from segment_public_api.models.disable_edge_functions200_response import DisableEdgeFunctions200Response
 from segment_public_api.models.disable_edge_functions_alpha_output import DisableEdgeFunctionsAlphaOutput
+from segment_public_api.models.download import Download
 from segment_public_api.models.echo200_response import Echo200Response
 from segment_public_api.models.echo200_response1 import Echo200Response1
 from segment_public_api.models.echo_alpha_output import EchoAlphaOutput
 from segment_public_api.models.echo_v1_output import EchoV1Output
 from segment_public_api.models.edge_functions_alpha import EdgeFunctionsAlpha
+from segment_public_api.models.entity_details import EntityDetails
 from segment_public_api.models.event_source_v1 import EventSourceV1
 from segment_public_api.models.fql_defined_property_v1 import FQLDefinedPropertyV1
-from segment_public_api.models.function import Function
+from segment_public_api.models.filter import Filter
 from segment_public_api.models.function_deployment import FunctionDeployment
 from segment_public_api.models.function_setting_v1 import FunctionSettingV1
 from segment_public_api.models.function_v1 import FunctionV1
 from segment_public_api.models.generate_upload_url_for_edge_functions200_response import GenerateUploadURLForEdgeFunctions200Response
 from segment_public_api.models.generate_upload_url_for_edge_functions_alpha_output import GenerateUploadURLForEdgeFunctionsAlphaOutput
+from segment_public_api.models.get_activation_from_audience200_response import GetActivationFromAudience200Response
+from segment_public_api.models.get_activation_from_audience_output import GetActivationFromAudienceOutput
 from segment_public_api.models.get_advanced_sync_schedule_from_warehouse200_response import GetAdvancedSyncScheduleFromWarehouse200Response
 from segment_public_api.models.get_advanced_sync_schedule_from_warehouse_v1_output import GetAdvancedSyncScheduleFromWarehouseV1Output
 from segment_public_api.models.get_audience200_response import GetAudience200Response
+from segment_public_api.models.get_audience200_response1 import GetAudience200Response1
 from segment_public_api.models.get_audience_alpha_output import GetAudienceAlphaOutput
+from segment_public_api.models.get_audience_beta_output import GetAudienceBetaOutput
+from segment_public_api.models.get_audience_preview200_response import GetAudiencePreview200Response
+from segment_public_api.models.get_audience_preview_alpha_output import GetAudiencePreviewAlphaOutput
+from segment_public_api.models.get_audience_schedule_from_space_and_audience200_response import GetAudienceScheduleFromSpaceAndAudience200Response
+from segment_public_api.models.get_audience_schedule_from_space_and_audience_alpha_output import GetAudienceScheduleFromSpaceAndAudienceAlphaOutput
 from segment_public_api.models.get_computed_trait200_response import GetComputedTrait200Response
 from segment_public_api.models.get_computed_trait_alpha_output import GetComputedTraitAlphaOutput
 from segment_public_api.models.get_connection_state_from_warehouse200_response import GetConnectionStateFromWarehouse200Response
@@ -233,15 +310,19 @@
 from segment_public_api.models.get_daily_workspace_api_calls_usage_v1_output import GetDailyWorkspaceAPICallsUsageV1Output
 from segment_public_api.models.get_daily_workspace_mtu_usage200_response import GetDailyWorkspaceMTUUsage200Response
 from segment_public_api.models.get_daily_workspace_mtu_usage_v1_output import GetDailyWorkspaceMTUUsageV1Output
+from segment_public_api.models.get_delivery_overview_metrics_beta_output import GetDeliveryOverviewMetricsBetaOutput
 from segment_public_api.models.get_destination200_response import GetDestination200Response
 from segment_public_api.models.get_destination_metadata200_response import GetDestinationMetadata200Response
 from segment_public_api.models.get_destination_metadata_v1_output import GetDestinationMetadataV1Output
 from segment_public_api.models.get_destination_v1_output import GetDestinationV1Output
 from segment_public_api.models.get_destinations_catalog200_response import GetDestinationsCatalog200Response
 from segment_public_api.models.get_destinations_catalog_v1_output import GetDestinationsCatalogV1Output
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
 from segment_public_api.models.get_events_volume_from_workspace200_response import GetEventsVolumeFromWorkspace200Response
 from segment_public_api.models.get_events_volume_from_workspace_v1_output import GetEventsVolumeFromWorkspaceV1Output
 from segment_public_api.models.get_events_volume_from_workspace_v1_query import GetEventsVolumeFromWorkspaceV1Query
+from segment_public_api.models.get_filter_by_id200_response import GetFilterById200Response
+from segment_public_api.models.get_filter_by_id_output import GetFilterByIdOutput
 from segment_public_api.models.get_filter_in_destination200_response import GetFilterInDestination200Response
 from segment_public_api.models.get_filter_in_destination_v1_output import GetFilterInDestinationV1Output
 from segment_public_api.models.get_function200_response import GetFunction200Response
@@ -256,6 +337,8 @@
 from segment_public_api.models.get_messaging_subscription_success_response import GetMessagingSubscriptionSuccessResponse
 from segment_public_api.models.get_regulation200_response import GetRegulation200Response
 from segment_public_api.models.get_regulation_v1_output import GetRegulationV1Output
+from segment_public_api.models.get_reverse_etl_sync_status200_response import GetReverseETLSyncStatus200Response
+from segment_public_api.models.get_reverse_etl_sync_status_output import GetReverseETLSyncStatusOutput
 from segment_public_api.models.get_reverse_etl_model200_response import GetReverseEtlModel200Response
 from segment_public_api.models.get_reverse_etl_model_output import GetReverseEtlModelOutput
 from segment_public_api.models.get_source200_response import GetSource200Response
@@ -294,6 +377,7 @@
 from segment_public_api.models.group_subscription_status_response import GroupSubscriptionStatusResponse
 from segment_public_api.models.handle_webhook_input import HandleWebhookInput
 from segment_public_api.models.handle_webhook_output import HandleWebhookOutput
+from segment_public_api.models.hash_properties_configuration import HashPropertiesConfiguration
 from segment_public_api.models.identify_source_settings_v1 import IdentifySourceSettingsV1
 from segment_public_api.models.insert_function_instance_alpha import InsertFunctionInstanceAlpha
 from segment_public_api.models.integration_option_beta import IntegrationOptionBeta
@@ -301,8 +385,20 @@
 from segment_public_api.models.invite_v1 import InviteV1
 from segment_public_api.models.label_alpha import LabelAlpha
 from segment_public_api.models.label_v1 import LabelV1
+from segment_public_api.models.list_activations_alpha_output import ListActivationsAlphaOutput
+from segment_public_api.models.list_activations_from_audience200_response import ListActivationsFromAudience200Response
+from segment_public_api.models.list_activations_from_audience_output import ListActivationsFromAudienceOutput
+from segment_public_api.models.list_audience_consumers_from_space_and_audience200_response import ListAudienceConsumersFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_consumers_from_space_and_audience_alpha_output import ListAudienceConsumersFromSpaceAndAudienceAlphaOutput
+from segment_public_api.models.list_audience_consumers_sort_input import ListAudienceConsumersSortInput
+from segment_public_api.models.list_audience_schedules_from_space_and_audience200_response import ListAudienceSchedulesFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_schedules_from_space_and_audience_alpha_output import ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput
+from segment_public_api.models.list_audience_search_input import ListAudienceSearchInput
 from segment_public_api.models.list_audiences200_response import ListAudiences200Response
+from segment_public_api.models.list_audiences200_response1 import ListAudiences200Response1
 from segment_public_api.models.list_audiences_alpha_output import ListAudiencesAlphaOutput
+from segment_public_api.models.list_audiences_beta_output import ListAudiencesBetaOutput
+from segment_public_api.models.list_audiences_pagination_input import ListAudiencesPaginationInput
 from segment_public_api.models.list_audit_events200_response import ListAuditEvents200Response
 from segment_public_api.models.list_audit_events_v1_output import ListAuditEventsV1Output
 from segment_public_api.models.list_computed_traits200_response import ListComputedTraits200Response
@@ -321,8 +417,12 @@
 from segment_public_api.models.list_delivery_metrics_summary_from_destination_beta_output import ListDeliveryMetricsSummaryFromDestinationBetaOutput
 from segment_public_api.models.list_destinations200_response import ListDestinations200Response
 from segment_public_api.models.list_destinations_v1_output import ListDestinationsV1Output
+from segment_public_api.models.list_filters_for_space200_response import ListFiltersForSpace200Response
+from segment_public_api.models.list_filters_for_space_output import ListFiltersForSpaceOutput
 from segment_public_api.models.list_filters_from_destination200_response import ListFiltersFromDestination200Response
 from segment_public_api.models.list_filters_from_destination_v1_output import ListFiltersFromDestinationV1Output
+from segment_public_api.models.list_filters_pagination_input import ListFiltersPaginationInput
+from segment_public_api.models.list_filters_pagination_output import ListFiltersPaginationOutput
 from segment_public_api.models.list_function_item_v1 import ListFunctionItemV1
 from segment_public_api.models.list_function_versions200_response import ListFunctionVersions200Response
 from segment_public_api.models.list_function_versions_alpha_output import ListFunctionVersionsAlphaOutput
@@ -342,6 +442,8 @@
 from segment_public_api.models.list_profiles_warehouse_in_space_alpha_output import ListProfilesWarehouseInSpaceAlphaOutput
 from segment_public_api.models.list_regulations_from_source200_response import ListRegulationsFromSource200Response
 from segment_public_api.models.list_regulations_from_source_v1_output import ListRegulationsFromSourceV1Output
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response import ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id_output import ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput
 from segment_public_api.models.list_reverse_etl_models200_response import ListReverseEtlModels200Response
 from segment_public_api.models.list_reverse_etl_models_output import ListReverseEtlModelsOutput
 from segment_public_api.models.list_roles200_response import ListRoles200Response
@@ -360,6 +462,8 @@
 from segment_public_api.models.list_sources_from_tracking_plan200_response import ListSourcesFromTrackingPlan200Response
 from segment_public_api.models.list_sources_from_tracking_plan_v1_output import ListSourcesFromTrackingPlanV1Output
 from segment_public_api.models.list_sources_v1_output import ListSourcesV1Output
+from segment_public_api.models.list_spaces200_response import ListSpaces200Response
+from segment_public_api.models.list_spaces_alpha_output import ListSpacesAlphaOutput
 from segment_public_api.models.list_subscriptions_from_destination200_response import ListSubscriptionsFromDestination200Response
 from segment_public_api.models.list_subscriptions_from_destination_alpha_output import ListSubscriptionsFromDestinationAlphaOutput
 from segment_public_api.models.list_suppressions200_response import ListSuppressions200Response
@@ -396,6 +500,7 @@
 from segment_public_api.models.mtu_snapshot_v1 import MtuSnapshotV1
 from segment_public_api.models.pagination_input import PaginationInput
 from segment_public_api.models.pagination_output import PaginationOutput
+from segment_public_api.models.periodic_config import PeriodicConfig
 from segment_public_api.models.permission_input_v1 import PermissionInputV1
 from segment_public_api.models.permission_resource_v1 import PermissionResourceV1
 from segment_public_api.models.permission_v1 import PermissionV1
@@ -403,13 +508,17 @@
 from segment_public_api.models.preview_destination_filter_v1 import PreviewDestinationFilterV1
 from segment_public_api.models.preview_destination_filter_v1_input import PreviewDestinationFilterV1Input
 from segment_public_api.models.preview_destination_filter_v1_output import PreviewDestinationFilterV1Output
+from segment_public_api.models.profile import Profile
 from segment_public_api.models.profiles_warehouse_alpha import ProfilesWarehouseAlpha
 from segment_public_api.models.property_rename_beta import PropertyRenameBeta
 from segment_public_api.models.property_rename_v1 import PropertyRenameV1
 from segment_public_api.models.property_value_transformation_beta import PropertyValueTransformationBeta
 from segment_public_api.models.property_value_transformation_v1 import PropertyValueTransformationV1
+from segment_public_api.models.read_audience_preview_options import ReadAudiencePreviewOptions
 from segment_public_api.models.regulation import Regulation
 from segment_public_api.models.regulation_list_entry_v1 import RegulationListEntryV1
+from segment_public_api.models.remove_activation_from_audience200_response import RemoveActivationFromAudience200Response
+from segment_public_api.models.remove_activation_from_audience_output import RemoveActivationFromAudienceOutput
 from segment_public_api.models.remove_audience_from_space200_response import RemoveAudienceFromSpace200Response
 from segment_public_api.models.remove_audience_from_space_alpha_output import RemoveAudienceFromSpaceAlphaOutput
 from segment_public_api.models.remove_computed_trait_from_space200_response import RemoveComputedTraitFromSpace200Response
@@ -429,6 +538,8 @@
 from segment_public_api.models.remove_subscription_from_destination_alpha_output import RemoveSubscriptionFromDestinationAlphaOutput
 from segment_public_api.models.remove_users_from_user_group200_response import RemoveUsersFromUserGroup200Response
 from segment_public_api.models.remove_users_from_user_group_v1_output import RemoveUsersFromUserGroupV1Output
+from segment_public_api.models.remove_write_key_from_source200_response import RemoveWriteKeyFromSource200Response
+from segment_public_api.models.remove_write_key_from_source_alpha_output import RemoveWriteKeyFromSourceAlphaOutput
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse200_response import ReplaceAdvancedSyncScheduleForWarehouse200Response
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse_v1_input import ReplaceAdvancedSyncScheduleForWarehouseV1Input
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse_v1_output import ReplaceAdvancedSyncScheduleForWarehouseV1Output
@@ -459,7 +570,15 @@
 from segment_public_api.models.restore_function_version200_response import RestoreFunctionVersion200Response
 from segment_public_api.models.restore_function_version_alpha_input import RestoreFunctionVersionAlphaInput
 from segment_public_api.models.restore_function_version_alpha_output import RestoreFunctionVersionAlphaOutput
+from segment_public_api.models.reverse_etl_manual_sync_job_output import ReverseETLManualSyncJobOutput
+from segment_public_api.models.reverse_etl_sync_status import ReverseETLSyncStatus
+from segment_public_api.models.reverse_etl_cron_schedule_config import ReverseEtlCronScheduleConfig
+from segment_public_api.models.reverse_etl_dbt_cloud_schedule_config import ReverseEtlDbtCloudScheduleConfig
 from segment_public_api.models.reverse_etl_model import ReverseEtlModel
+from segment_public_api.models.reverse_etl_periodic_schedule_config import ReverseEtlPeriodicScheduleConfig
+from segment_public_api.models.reverse_etl_schedule_config import ReverseEtlScheduleConfig
+from segment_public_api.models.reverse_etl_schedule_definition import ReverseEtlScheduleDefinition
+from segment_public_api.models.reverse_etl_specific_time_schedule_config import ReverseEtlSpecificTimeScheduleConfig
 from segment_public_api.models.role_v1 import RoleV1
 from segment_public_api.models.rule_input_v1 import RuleInputV1
 from segment_public_api.models.rule_v1 import RuleV1
@@ -473,23 +592,34 @@
 from segment_public_api.models.space import Space
 from segment_public_api.models.space_warehouse_schema_override import SpaceWarehouseSchemaOverride
 from segment_public_api.models.space_warehouse_selective_sync_item_alpha import SpaceWarehouseSelectiveSyncItemAlpha
+from segment_public_api.models.specific_days_config import SpecificDaysConfig
 from segment_public_api.models.stream_status_v1 import StreamStatusV1
 from segment_public_api.models.suppressed_inner import SuppressedInner
+from segment_public_api.models.sync_extract_phase import SyncExtractPhase
+from segment_public_api.models.sync_load_phase import SyncLoadPhase
 from segment_public_api.models.sync_notice_v1 import SyncNoticeV1
 from segment_public_api.models.sync_v1 import SyncV1
 from segment_public_api.models.track_source_settings_v1 import TrackSourceSettingsV1
 from segment_public_api.models.tracking_plan_v1 import TrackingPlanV1
+from segment_public_api.models.trait_definition import TraitDefinition
+from segment_public_api.models.trait_options import TraitOptions
 from segment_public_api.models.transformation_beta import TransformationBeta
 from segment_public_api.models.transformation_v1 import TransformationV1
+from segment_public_api.models.update_activation_for_audience200_response import UpdateActivationForAudience200Response
+from segment_public_api.models.update_activation_for_audience_alpha_input import UpdateActivationForAudienceAlphaInput
+from segment_public_api.models.update_activation_for_audience_output import UpdateActivationForAudienceOutput
 from segment_public_api.models.update_audience_for_space200_response import UpdateAudienceForSpace200Response
+from segment_public_api.models.update_audience_for_space_alpha_input import UpdateAudienceForSpaceAlphaInput
 from segment_public_api.models.update_audience_for_space_alpha_output import UpdateAudienceForSpaceAlphaOutput
-from segment_public_api.models.update_audience_for_space_input import UpdateAudienceForSpaceInput
 from segment_public_api.models.update_computed_trait_for_space200_response import UpdateComputedTraitForSpace200Response
 from segment_public_api.models.update_computed_trait_for_space_alpha_input import UpdateComputedTraitForSpaceAlphaInput
 from segment_public_api.models.update_computed_trait_for_space_alpha_output import UpdateComputedTraitForSpaceAlphaOutput
 from segment_public_api.models.update_destination200_response import UpdateDestination200Response
 from segment_public_api.models.update_destination_v1_input import UpdateDestinationV1Input
 from segment_public_api.models.update_destination_v1_output import UpdateDestinationV1Output
+from segment_public_api.models.update_filter_by_id200_response import UpdateFilterById200Response
+from segment_public_api.models.update_filter_by_id_input import UpdateFilterByIdInput
+from segment_public_api.models.update_filter_by_id_output import UpdateFilterByIdOutput
 from segment_public_api.models.update_filter_for_destination200_response import UpdateFilterForDestination200Response
 from segment_public_api.models.update_filter_for_destination_v1_input import UpdateFilterForDestinationV1Input
 from segment_public_api.models.update_filter_for_destination_v1_output import UpdateFilterForDestinationV1Output
diff --git a/segment_public_api/api/__init__.py b/segment_public_api/api/__init__.py
index 7fdedfeab..b4f7e24b3 100644
--- a/segment_public_api/api/__init__.py
+++ b/segment_public_api/api/__init__.py
@@ -2,11 +2,13 @@
 
 # import apis into api package
 from segment_public_api.api.api_calls_api import APICallsApi
+from segment_public_api.api.activations_api import ActivationsApi
 from segment_public_api.api.audiences_api import AudiencesApi
 from segment_public_api.api.audit_trail_api import AuditTrailApi
 from segment_public_api.api.catalog_api import CatalogApi
 from segment_public_api.api.computed_traits_api import ComputedTraitsApi
 from segment_public_api.api.deletion_and_suppression_api import DeletionAndSuppressionApi
+from segment_public_api.api.delivery_overview_api import DeliveryOverviewApi
 from segment_public_api.api.destination_filters_api import DestinationFiltersApi
 from segment_public_api.api.destinations_api import DestinationsApi
 from segment_public_api.api.edge_functions_api import EdgeFunctionsApi
@@ -21,10 +23,13 @@
 from segment_public_api.api.reverse_etl_api import ReverseETLApi
 from segment_public_api.api.selective_sync_api import SelectiveSyncApi
 from segment_public_api.api.sources_api import SourcesApi
+from segment_public_api.api.space_filters_api import SpaceFiltersApi
 from segment_public_api.api.spaces_api import SpacesApi
 from segment_public_api.api.testing_api import TestingApi
 from segment_public_api.api.tracking_plans_api import TrackingPlansApi
 from segment_public_api.api.transformations_api import TransformationsApi
 from segment_public_api.api.warehouses_api import WarehousesApi
 from segment_public_api.api.workspaces_api import WorkspacesApi
+from segment_public_api.api.customer_insights_api import CustomerInsightsApi
+from segment_public_api.api.dbt_api import DbtApi
 
diff --git a/segment_public_api/api/activations_api.py b/segment_public_api/api/activations_api.py
new file mode 100644
index 000000000..a6d2e3f39
--- /dev/null
+++ b/segment_public_api/api/activations_api.py
@@ -0,0 +1,1071 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+import re  # noqa: F401
+import io
+import warnings
+
+from pydantic import validate_arguments, ValidationError
+
+from typing_extensions import Annotated
+from pydantic import Field, StrictStr, constr
+
+from typing import Optional
+
+from segment_public_api.models.add_activation_to_audience200_response import AddActivationToAudience200Response
+from segment_public_api.models.add_activation_to_audience_alpha_input import AddActivationToAudienceAlphaInput
+from segment_public_api.models.add_destination_to_audience200_response import AddDestinationToAudience200Response
+from segment_public_api.models.add_destination_to_audience_alpha_input import AddDestinationToAudienceAlphaInput
+from segment_public_api.models.get_activation_from_audience200_response import GetActivationFromAudience200Response
+from segment_public_api.models.list_activations_from_audience200_response import ListActivationsFromAudience200Response
+from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.models.remove_activation_from_audience200_response import RemoveActivationFromAudience200Response
+from segment_public_api.models.update_activation_for_audience200_response import UpdateActivationForAudience200Response
+from segment_public_api.models.update_activation_for_audience_alpha_input import UpdateActivationForAudienceAlphaInput
+
+from segment_public_api.api_client import ApiClient
+from segment_public_api.api_response import ApiResponse
+from segment_public_api.exceptions import (  # noqa: F401
+    ApiTypeError,
+    ApiValueError
+)
+
+
+class ActivationsApi:
+    """NOTE: This class is auto generated by OpenAPI Generator
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def add_activation_to_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), connection_id : constr(strict=True), add_activation_to_audience_alpha_input : AddActivationToAudienceAlphaInput, **kwargs) -> AddActivationToAudience200Response:  # noqa: E501
+        """Add Activation to Audience  # noqa: E501
+
+        Creates Activation.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Activation Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.add_activation_to_audience(space_id, audience_id, connection_id, add_activation_to_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param connection_id: (required)
+        :type connection_id: str
+        :param add_activation_to_audience_alpha_input: (required)
+        :type add_activation_to_audience_alpha_input: AddActivationToAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: AddActivationToAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the add_activation_to_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.add_activation_to_audience_with_http_info(space_id, audience_id, connection_id, add_activation_to_audience_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def add_activation_to_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), connection_id : constr(strict=True), add_activation_to_audience_alpha_input : AddActivationToAudienceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Add Activation to Audience  # noqa: E501
+
+        Creates Activation.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Activation Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.add_activation_to_audience_with_http_info(space_id, audience_id, connection_id, add_activation_to_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param connection_id: (required)
+        :type connection_id: str
+        :param add_activation_to_audience_alpha_input: (required)
+        :type add_activation_to_audience_alpha_input: AddActivationToAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(AddActivationToAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'connection_id',
+            'add_activation_to_audience_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method add_activation_to_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+        if _params['connection_id']:
+            _path_params['connectionId'] = _params['connection_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['add_activation_to_audience_alpha_input'] is not None:
+            _body_params = _params['add_activation_to_audience_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "AddActivationToAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/{connectionId}/activations', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def add_destination_to_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), add_destination_to_audience_alpha_input : AddDestinationToAudienceAlphaInput, **kwargs) -> AddDestinationToAudience200Response:  # noqa: E501
+        """Add Destination to Audience  # noqa: E501
+
+        Adds a Destination to an Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Destination Added into Audience` event in the [audit trail](/tag/Audit-Trail).  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.add_destination_to_audience(space_id, audience_id, add_destination_to_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param add_destination_to_audience_alpha_input: (required)
+        :type add_destination_to_audience_alpha_input: AddDestinationToAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: AddDestinationToAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the add_destination_to_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.add_destination_to_audience_with_http_info(space_id, audience_id, add_destination_to_audience_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def add_destination_to_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), add_destination_to_audience_alpha_input : AddDestinationToAudienceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Add Destination to Audience  # noqa: E501
+
+        Adds a Destination to an Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Destination Added into Audience` event in the [audit trail](/tag/Audit-Trail).  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.add_destination_to_audience_with_http_info(space_id, audience_id, add_destination_to_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param add_destination_to_audience_alpha_input: (required)
+        :type add_destination_to_audience_alpha_input: AddDestinationToAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(AddDestinationToAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'add_destination_to_audience_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method add_destination_to_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['add_destination_to_audience_alpha_input'] is not None:
+            _body_params = _params['add_destination_to_audience_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "AddDestinationToAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/destinations', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_activation_from_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], **kwargs) -> GetActivationFromAudience200Response:  # noqa: E501
+        """Get Activation from Audience  # noqa: E501
+
+        Gets a single Activation by id.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_activation_from_audience(space_id, audience_id, id, workspace_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetActivationFromAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_activation_from_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_activation_from_audience_with_http_info(space_id, audience_id, id, workspace_id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_activation_from_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Activation from Audience  # noqa: E501
+
+        Gets a single Activation by id.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_activation_from_audience_with_http_info(space_id, audience_id, id, workspace_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetActivationFromAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'id',
+            'workspace_id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_activation_from_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('workspace_id') is not None:  # noqa: E501
+            _query_params.append(('workspaceId', _params['workspace_id']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetActivationFromAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/activations/{id}', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def list_activations_from_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], pagination : Annotated[Optional[PaginationInput], Field(description="Optional pagination.  This parameter exists in alpha.")] = None, **kwargs) -> ListActivationsFromAudience200Response:  # noqa: E501
+        """List Activations from Audience  # noqa: E501
+
+        Lists all Activations.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_activations_from_audience(space_id, audience_id, workspace_id, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param pagination: Optional pagination.  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListActivationsFromAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_activations_from_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_activations_from_audience_with_http_info(space_id, audience_id, workspace_id, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_activations_from_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], pagination : Annotated[Optional[PaginationInput], Field(description="Optional pagination.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Activations from Audience  # noqa: E501
+
+        Lists all Activations.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_activations_from_audience_with_http_info(space_id, audience_id, workspace_id, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param pagination: Optional pagination.  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListActivationsFromAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'workspace_id',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_activations_from_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('workspace_id') is not None:  # noqa: E501
+            _query_params.append(('workspaceId', _params['workspace_id']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListActivationsFromAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/activations', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def remove_activation_from_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], **kwargs) -> RemoveActivationFromAudience200Response:  # noqa: E501
+        """Remove Activation from Audience  # noqa: E501
+
+        Deletes an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.remove_activation_from_audience(space_id, audience_id, id, workspace_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: RemoveActivationFromAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the remove_activation_from_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.remove_activation_from_audience_with_http_info(space_id, audience_id, id, workspace_id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def remove_activation_from_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), workspace_id : Annotated[StrictStr, Field(..., description="The workspace id  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+        """Remove Activation from Audience  # noqa: E501
+
+        Deletes an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.remove_activation_from_audience_with_http_info(space_id, audience_id, id, workspace_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param workspace_id: The workspace id  This parameter exists in alpha. (required)
+        :type workspace_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(RemoveActivationFromAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'id',
+            'workspace_id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method remove_activation_from_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('workspace_id') is not None:  # noqa: E501
+            _query_params.append(('workspaceId', _params['workspace_id']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "RemoveActivationFromAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/activations/{id}', 'DELETE',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def update_activation_for_audience(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), update_activation_for_audience_alpha_input : UpdateActivationForAudienceAlphaInput, **kwargs) -> UpdateActivationForAudience200Response:  # noqa: E501
+        """Update Activation for Audience  # noqa: E501
+
+        Updates an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.update_activation_for_audience(space_id, audience_id, id, update_activation_for_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param update_activation_for_audience_alpha_input: (required)
+        :type update_activation_for_audience_alpha_input: UpdateActivationForAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: UpdateActivationForAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the update_activation_for_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.update_activation_for_audience_with_http_info(space_id, audience_id, id, update_activation_for_audience_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def update_activation_for_audience_with_http_info(self, space_id : constr(strict=True), audience_id : constr(strict=True), id : constr(strict=True), update_activation_for_audience_alpha_input : UpdateActivationForAudienceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Update Activation for Audience  # noqa: E501
+
+        Updates an Activation.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.update_activation_for_audience_with_http_info(space_id, audience_id, id, update_activation_for_audience_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param audience_id: (required)
+        :type audience_id: str
+        :param id: (required)
+        :type id: str
+        :param update_activation_for_audience_alpha_input: (required)
+        :type update_activation_for_audience_alpha_input: UpdateActivationForAudienceAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(UpdateActivationForAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'audience_id',
+            'id',
+            'update_activation_for_audience_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method update_activation_for_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['audience_id']:
+            _path_params['audienceId'] = _params['audience_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['update_activation_for_audience_alpha_input'] is not None:
+            _body_params = _params['update_activation_for_audience_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "UpdateActivationForAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{audienceId}/activations/{id}', 'PATCH',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
diff --git a/segment_public_api/api/api_calls_api.py b/segment_public_api/api/api_calls_api.py
index 07a951656..161a36385 100644
--- a/segment_public_api/api/api_calls_api.py
+++ b/segment_public_api/api/api_calls_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr
 
+from typing import Optional
+
 from segment_public_api.models.get_daily_per_source_api_calls_usage200_response import GetDailyPerSourceAPICallsUsage200Response
 from segment_public_api.models.get_daily_workspace_api_calls_usage200_response import GetDailyWorkspaceAPICallsUsage200Response
 from segment_public_api.models.pagination_input import PaginationInput
@@ -47,7 +49,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def get_daily_per_source_api_calls_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for per Source API calls counts.  This parameter exists in v1.")], **kwargs) -> GetDailyPerSourceAPICallsUsage200Response:  # noqa: E501
+    def get_daily_per_source_api_calls_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for per Source API calls counts.  This parameter exists in v1.")] = None, **kwargs) -> GetDailyPerSourceAPICallsUsage200Response:  # noqa: E501
         """Get Daily Per Source API Calls Usage  # noqa: E501
 
         Provides daily cumulative per-source API call counts for a usage period.  # noqa: E501
@@ -59,7 +61,7 @@ def get_daily_per_source_api_calls_usage(self, period : Annotated[StrictStr, Fie
 
         :param period: The start of the usage month in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for per Source API calls counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for per Source API calls counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -79,7 +81,7 @@ def get_daily_per_source_api_calls_usage(self, period : Annotated[StrictStr, Fie
         return self.get_daily_per_source_api_calls_usage_with_http_info(period, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_daily_per_source_api_calls_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for per Source API calls counts.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_daily_per_source_api_calls_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for per Source API calls counts.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Daily Per Source API Calls Usage  # noqa: E501
 
         Provides daily cumulative per-source API call counts for a usage period.  # noqa: E501
@@ -91,7 +93,7 @@ def get_daily_per_source_api_calls_usage_with_http_info(self, period : Annotated
 
         :param period: The start of the usage month in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for per Source API calls counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for per Source API calls counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -198,7 +200,7 @@ def get_daily_per_source_api_calls_usage_with_http_info(self, period : Annotated
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_daily_workspace_api_calls_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for Workspace API call counts.  This parameter exists in v1.")], **kwargs) -> GetDailyWorkspaceAPICallsUsage200Response:  # noqa: E501
+    def get_daily_workspace_api_calls_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for Workspace API call counts.  This parameter exists in v1.")] = None, **kwargs) -> GetDailyWorkspaceAPICallsUsage200Response:  # noqa: E501
         """Get Daily Workspace API Calls Usage  # noqa: E501
 
         Provides daily cumulative API call counts for a usage period.  # noqa: E501
@@ -210,7 +212,7 @@ def get_daily_workspace_api_calls_usage(self, period : Annotated[StrictStr, Fiel
 
         :param period: The start of the usage month in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for Workspace API call counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for Workspace API call counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -230,7 +232,7 @@ def get_daily_workspace_api_calls_usage(self, period : Annotated[StrictStr, Fiel
         return self.get_daily_workspace_api_calls_usage_with_http_info(period, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_daily_workspace_api_calls_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for Workspace API call counts.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_daily_workspace_api_calls_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for Workspace API call counts.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Daily Workspace API Calls Usage  # noqa: E501
 
         Provides daily cumulative API call counts for a usage period.  # noqa: E501
@@ -242,7 +244,7 @@ def get_daily_workspace_api_calls_usage_with_http_info(self, period : Annotated[
 
         :param period: The start of the usage month in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for Workspace API call counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for Workspace API call counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
diff --git a/segment_public_api/api/audiences_api.py b/segment_public_api/api/audiences_api.py
index 941049890..5075e570b 100644
--- a/segment_public_api/api/audiences_api.py
+++ b/segment_public_api/api/audiences_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -20,14 +20,27 @@
 from pydantic import validate_arguments, ValidationError
 
 from typing_extensions import Annotated
-from pydantic import Field, constr
+from pydantic import Field, StrictStr, constr
 
+from typing import Optional
+
+from segment_public_api.models.create_audience200_response import CreateAudience200Response
+from segment_public_api.models.create_audience_alpha_input import CreateAudienceAlphaInput
+from segment_public_api.models.create_audience_preview200_response import CreateAudiencePreview200Response
+from segment_public_api.models.create_audience_preview_alpha_input import CreateAudiencePreviewAlphaInput
 from segment_public_api.models.get_audience200_response import GetAudience200Response
+from segment_public_api.models.get_audience_preview200_response import GetAudiencePreview200Response
+from segment_public_api.models.get_audience_schedule_from_space_and_audience200_response import GetAudienceScheduleFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_consumers_from_space_and_audience200_response import ListAudienceConsumersFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_consumers_sort_input import ListAudienceConsumersSortInput
+from segment_public_api.models.list_audience_schedules_from_space_and_audience200_response import ListAudienceSchedulesFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_search_input import ListAudienceSearchInput
 from segment_public_api.models.list_audiences200_response import ListAudiences200Response
+from segment_public_api.models.list_audiences_pagination_input import ListAudiencesPaginationInput
 from segment_public_api.models.pagination_input import PaginationInput
 from segment_public_api.models.remove_audience_from_space200_response import RemoveAudienceFromSpace200Response
 from segment_public_api.models.update_audience_for_space200_response import UpdateAudienceForSpace200Response
-from segment_public_api.models.update_audience_for_space_input import UpdateAudienceForSpaceInput
+from segment_public_api.models.update_audience_for_space_alpha_input import UpdateAudienceForSpaceAlphaInput
 
 from segment_public_api.api_client import ApiClient
 from segment_public_api.api_response import ApiResponse
@@ -50,20 +63,20 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def get_audience(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> GetAudience200Response:  # noqa: E501
-        """Get Audience  # noqa: E501
+    def create_audience(self, space_id : constr(strict=True), create_audience_alpha_input : CreateAudienceAlphaInput, **kwargs) -> CreateAudience200Response:  # noqa: E501
+        """Create Audience  # noqa: E501
 
-        Returns the Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Creates Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for an Audience created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.get_audience(space_id, id, async_req=True)
+        >>> thread = api.create_audience(space_id, create_audience_alpha_input, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
-        :param id: (required)
-        :type id: str
+        :param create_audience_alpha_input: (required)
+        :type create_audience_alpha_input: CreateAudienceAlphaInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -73,29 +86,29 @@ def get_audience(self, space_id : constr(strict=True), id : constr(strict=True),
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: GetAudience200Response
+        :rtype: CreateAudience200Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
-            message = "Error! Please call the get_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            message = "Error! Please call the create_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.get_audience_with_http_info(space_id, id, **kwargs)  # noqa: E501
+        return self.create_audience_with_http_info(space_id, create_audience_alpha_input, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_audience_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
-        """Get Audience  # noqa: E501
+    def create_audience_with_http_info(self, space_id : constr(strict=True), create_audience_alpha_input : CreateAudienceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Audience  # noqa: E501
 
-        Returns the Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Creates Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for an Audience created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.get_audience_with_http_info(space_id, id, async_req=True)
+        >>> thread = api.create_audience_with_http_info(space_id, create_audience_alpha_input, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
-        :param id: (required)
-        :type id: str
+        :param create_audience_alpha_input: (required)
+        :type create_audience_alpha_input: CreateAudienceAlphaInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -118,14 +131,14 @@ def get_audience_with_http_info(self, space_id : constr(strict=True), id : const
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(GetAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateAudience200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
 
         _all_params = [
             'space_id',
-            'id'
+            'create_audience_alpha_input'
         ]
         _all_params.extend(
             [
@@ -144,7 +157,7 @@ def get_audience_with_http_info(self, space_id : constr(strict=True), id : const
             if _key not in _all_params:
                 raise ApiTypeError(
                     "Got an unexpected keyword argument '%s'"
-                    " to method get_audience" % _key
+                    " to method create_audience" % _key
                 )
             _params[_key] = _val
         del _params['kwargs']
@@ -156,8 +169,163 @@ def get_audience_with_http_info(self, space_id : constr(strict=True), id : const
         if _params['space_id']:
             _path_params['spaceId'] = _params['space_id']
 
-        if _params['id']:
-            _path_params['id'] = _params['id']
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_audience_alpha_input'] is not None:
+            _body_params = _params['create_audience_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def create_audience_preview(self, space_id : constr(strict=True), create_audience_preview_alpha_input : CreateAudiencePreviewAlphaInput, **kwargs) -> CreateAudiencePreview200Response:  # noqa: E501
+        """Create Audience Preview  # noqa: E501
+
+        Previews Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Preview Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information. This endpoint also has a rate limit of 700 requests per month per spaceId, which is lower than the default due to access pattern restrictions.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_audience_preview(space_id, create_audience_preview_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param create_audience_preview_alpha_input: (required)
+        :type create_audience_preview_alpha_input: CreateAudiencePreviewAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateAudiencePreview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_audience_preview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_audience_preview_with_http_info(space_id, create_audience_preview_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_audience_preview_with_http_info(self, space_id : constr(strict=True), create_audience_preview_alpha_input : CreateAudiencePreviewAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Audience Preview  # noqa: E501
+
+        Previews Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Preview Created` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information. This endpoint also has a rate limit of 700 requests per month per spaceId, which is lower than the default due to access pattern restrictions.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_audience_preview_with_http_info(space_id, create_audience_preview_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param create_audience_preview_alpha_input: (required)
+        :type create_audience_preview_alpha_input: CreateAudiencePreviewAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateAudiencePreview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'create_audience_preview_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_audience_preview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
 
 
         # process the query parameters
@@ -169,22 +337,32 @@ def get_audience_with_http_info(self, space_id : constr(strict=True), id : const
         _files = {}
         # process the body parameter
         _body_params = None
+        if _params['create_audience_preview_alpha_input'] is not None:
+            _body_params = _params['create_audience_preview_alpha_input']
+
         # set the HTTP header `Accept`
         _header_params['Accept'] = self.api_client.select_header_accept(
             ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
 
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
         # authentication setting
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "GetAudience200Response",
+            '200': "CreateAudiencePreview200Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
         }
 
         return self.api_client.call_api(
-            '/spaces/{spaceId}/audiences/{id}', 'GET',
+            '/spaces/{spaceId}/audiences/previews', 'POST',
             _path_params,
             _query_params,
             _header_params,
@@ -201,20 +379,22 @@ def get_audience_with_http_info(self, space_id : constr(strict=True), id : const
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_audiences(self, space_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Information about the pagination of this response.  This parameter exists in alpha.")], **kwargs) -> ListAudiences200Response:  # noqa: E501
-        """List Audiences  # noqa: E501
+    def get_audience(self, space_id : constr(strict=True), id : constr(strict=True), include : Annotated[Optional[StrictStr], Field(description="Additional resource to include, support schedules only.  This parameter exists in alpha.")] = None, **kwargs) -> GetAudience200Response:  # noqa: E501
+        """Get Audience  # noqa: E501
 
-        Returns Audiences by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns the Audience by id and spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_audiences(space_id, pagination, async_req=True)
+        >>> thread = api.get_audience(space_id, id, include, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
-        :param pagination: Information about the pagination of this response.  This parameter exists in alpha. (required)
-        :type pagination: PaginationInput
+        :param id: (required)
+        :type id: str
+        :param include: Additional resource to include, support schedules only.  This parameter exists in alpha.
+        :type include: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -224,29 +404,31 @@ def list_audiences(self, space_id : constr(strict=True), pagination : Annotated[
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: ListAudiences200Response
+        :rtype: GetAudience200Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
-            message = "Error! Please call the list_audiences_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            message = "Error! Please call the get_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_audiences_with_http_info(space_id, pagination, **kwargs)  # noqa: E501
+        return self.get_audience_with_http_info(space_id, id, include, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_audiences_with_http_info(self, space_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Information about the pagination of this response.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
-        """List Audiences  # noqa: E501
+    def get_audience_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), include : Annotated[Optional[StrictStr], Field(description="Additional resource to include, support schedules only.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Audience  # noqa: E501
 
-        Returns Audiences by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns the Audience by id and spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_audiences_with_http_info(space_id, pagination, async_req=True)
+        >>> thread = api.get_audience_with_http_info(space_id, id, include, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
-        :param pagination: Information about the pagination of this response.  This parameter exists in alpha. (required)
-        :type pagination: PaginationInput
+        :param id: (required)
+        :type id: str
+        :param include: Additional resource to include, support schedules only.  This parameter exists in alpha.
+        :type include: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -269,14 +451,15 @@ def list_audiences_with_http_info(self, space_id : constr(strict=True), paginati
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(ListAudiences200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(GetAudience200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
 
         _all_params = [
             'space_id',
-            'pagination'
+            'id',
+            'include'
         ]
         _all_params.extend(
             [
@@ -295,7 +478,7 @@ def list_audiences_with_http_info(self, space_id : constr(strict=True), paginati
             if _key not in _all_params:
                 raise ApiTypeError(
                     "Got an unexpected keyword argument '%s'"
-                    " to method list_audiences" % _key
+                    " to method get_audience" % _key
                 )
             _params[_key] = _val
         del _params['kwargs']
@@ -307,11 +490,14 @@ def list_audiences_with_http_info(self, space_id : constr(strict=True), paginati
         if _params['space_id']:
             _path_params['spaceId'] = _params['space_id']
 
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
 
         # process the query parameters
         _query_params = []
-        if _params.get('pagination') is not None:  # noqa: E501
-            _query_params.append(('pagination', _params['pagination']))
+        if _params.get('include') is not None:  # noqa: E501
+            _query_params.append(('include', _params['include']))
 
         # process the header parameters
         _header_params = dict(_params.get('_headers', {}))
@@ -322,7 +508,810 @@ def list_audiences_with_http_info(self, space_id : constr(strict=True), paginati
         _body_params = None
         # set the HTTP header `Accept`
         _header_params['Accept'] = self.api_client.select_header_accept(
-            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{id}', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_audience_preview(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> GetAudiencePreview200Response:  # noqa: E501
+        """Get Audience Preview  # noqa: E501
+
+        Reads the results of an audience preview.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_audience_preview(space_id, id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetAudiencePreview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_audience_preview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_audience_preview_with_http_info(space_id, id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_audience_preview_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Audience Preview  # noqa: E501
+
+        Reads the results of an audience preview.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_audience_preview_with_http_info(space_id, id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetAudiencePreview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_audience_preview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetAudiencePreview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/previews/{id}', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_audience_schedule_from_space_and_audience(self, space_id : constr(strict=True), id : constr(strict=True), schedule_id : constr(strict=True), **kwargs) -> GetAudienceScheduleFromSpaceAndAudience200Response:  # noqa: E501
+        """Get Audience Schedule from Space And Audience  # noqa: E501
+
+        Returns the schedule for the given audience and scheduleId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_audience_schedule_from_space_and_audience(space_id, id, schedule_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param schedule_id: (required)
+        :type schedule_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetAudienceScheduleFromSpaceAndAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_audience_schedule_from_space_and_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_audience_schedule_from_space_and_audience_with_http_info(space_id, id, schedule_id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_audience_schedule_from_space_and_audience_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), schedule_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Audience Schedule from Space And Audience  # noqa: E501
+
+        Returns the schedule for the given audience and scheduleId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_audience_schedule_from_space_and_audience_with_http_info(space_id, id, schedule_id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param schedule_id: (required)
+        :type schedule_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetAudienceScheduleFromSpaceAndAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'id',
+            'schedule_id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_audience_schedule_from_space_and_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+        if _params['schedule_id']:
+            _path_params['scheduleId'] = _params['schedule_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetAudienceScheduleFromSpaceAndAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{id}/schedules/{scheduleId}', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def list_audience_consumers_from_space_and_audience(self, space_id : constr(strict=True), id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, search : Annotated[Optional[ListAudienceSearchInput], Field(description="Optional search criteria  This parameter exists in alpha.")] = None, sort : Annotated[Optional[ListAudienceConsumersSortInput], Field(description="Optional sort criteria  This parameter exists in alpha.")] = None, **kwargs) -> ListAudienceConsumersFromSpaceAndAudience200Response:  # noqa: E501
+        """List Audience Consumers from Space And Audience  # noqa: E501
+
+        Returns the list of consumers for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audience_consumers_from_space_and_audience(space_id, id, pagination, search, sort, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param search: Optional search criteria  This parameter exists in alpha.
+        :type search: ListAudienceSearchInput
+        :param sort: Optional sort criteria  This parameter exists in alpha.
+        :type sort: ListAudienceConsumersSortInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListAudienceConsumersFromSpaceAndAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_audience_consumers_from_space_and_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_audience_consumers_from_space_and_audience_with_http_info(space_id, id, pagination, search, sort, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_audience_consumers_from_space_and_audience_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, search : Annotated[Optional[ListAudienceSearchInput], Field(description="Optional search criteria  This parameter exists in alpha.")] = None, sort : Annotated[Optional[ListAudienceConsumersSortInput], Field(description="Optional sort criteria  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Audience Consumers from Space And Audience  # noqa: E501
+
+        Returns the list of consumers for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audience_consumers_from_space_and_audience_with_http_info(space_id, id, pagination, search, sort, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param search: Optional search criteria  This parameter exists in alpha.
+        :type search: ListAudienceSearchInput
+        :param sort: Optional sort criteria  This parameter exists in alpha.
+        :type sort: ListAudienceConsumersSortInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListAudienceConsumersFromSpaceAndAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'id',
+            'pagination',
+            'search',
+            'sort'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_audience_consumers_from_space_and_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        if _params.get('search') is not None:  # noqa: E501
+            _query_params.append(('search', _params['search']))
+
+        if _params.get('sort') is not None:  # noqa: E501
+            _query_params.append(('sort', _params['sort']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListAudienceConsumersFromSpaceAndAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{id}/audience-references', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def list_audience_schedules_from_space_and_audience(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ListAudienceSchedulesFromSpaceAndAudience200Response:  # noqa: E501
+        """List Audience Schedules from Space And Audience  # noqa: E501
+
+        Returns the list of schedules for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audience_schedules_from_space_and_audience(space_id, id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListAudienceSchedulesFromSpaceAndAudience200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_audience_schedules_from_space_and_audience_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_audience_schedules_from_space_and_audience_with_http_info(space_id, id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_audience_schedules_from_space_and_audience_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """List Audience Schedules from Space And Audience  # noqa: E501
+
+        Returns the list of schedules for the given audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audience_schedules_from_space_and_audience_with_http_info(space_id, id, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListAudienceSchedulesFromSpaceAndAudience200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_audience_schedules_from_space_and_audience" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListAudienceSchedulesFromSpaceAndAudience200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/audiences/{id}/schedules', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def list_audiences(self, space_id : constr(strict=True), search : Annotated[Optional[ListAudienceSearchInput], Field(description="Optional search criteria  This parameter exists in alpha.")] = None, pagination : Annotated[Optional[ListAudiencesPaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, include : Annotated[Optional[StrictStr], Field(description="Additional resource to include, support schedules only.  This parameter exists in alpha.")] = None, **kwargs) -> ListAudiences200Response:  # noqa: E501
+        """List Audiences  # noqa: E501
+
+        Returns Audiences by spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audiences(space_id, search, pagination, include, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param search: Optional search criteria  This parameter exists in alpha.
+        :type search: ListAudienceSearchInput
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
+        :type pagination: ListAudiencesPaginationInput
+        :param include: Additional resource to include, support schedules only.  This parameter exists in alpha.
+        :type include: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListAudiences200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_audiences_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_audiences_with_http_info(space_id, search, pagination, include, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_audiences_with_http_info(self, space_id : constr(strict=True), search : Annotated[Optional[ListAudienceSearchInput], Field(description="Optional search criteria  This parameter exists in alpha.")] = None, pagination : Annotated[Optional[ListAudiencesPaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, include : Annotated[Optional[StrictStr], Field(description="Additional resource to include, support schedules only.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Audiences  # noqa: E501
+
+        Returns Audiences by spaceId. Supports including audience schedules via `?include=schedules`.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_audiences_with_http_info(space_id, search, pagination, include, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param search: Optional search criteria  This parameter exists in alpha.
+        :type search: ListAudienceSearchInput
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
+        :type pagination: ListAudiencesPaginationInput
+        :param include: Additional resource to include, support schedules only.  This parameter exists in alpha.
+        :type include: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListAudiences200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'search',
+            'pagination',
+            'include'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_audiences" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('search') is not None:  # noqa: E501
+            _query_params.append(('search', _params['search']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        if _params.get('include') is not None:  # noqa: E501
+            _query_params.append(('include', _params['include']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
 
         # authentication setting
         _auth_settings = ['token']  # noqa: E501
@@ -355,7 +1344,7 @@ def list_audiences_with_http_info(self, space_id : constr(strict=True), paginati
     def remove_audience_from_space(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> RemoveAudienceFromSpace200Response:  # noqa: E501
         """Remove Audience from Space  # noqa: E501
 
-        Deletes an Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Deletes an Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -387,7 +1376,7 @@ def remove_audience_from_space(self, space_id : constr(strict=True), id : constr
     def remove_audience_from_space_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Remove Audience from Space  # noqa: E501
 
-        Deletes an Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Deletes an Audience by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -503,22 +1492,22 @@ def remove_audience_from_space_with_http_info(self, space_id : constr(strict=Tru
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def update_audience_for_space(self, space_id : constr(strict=True), id : constr(strict=True), update_audience_for_space_input : UpdateAudienceForSpaceInput, **kwargs) -> UpdateAudienceForSpace200Response:  # noqa: E501
+    def update_audience_for_space(self, space_id : constr(strict=True), id : constr(strict=True), update_audience_for_space_alpha_input : UpdateAudienceForSpaceAlphaInput, **kwargs) -> UpdateAudienceForSpace200Response:  # noqa: E501
         """Update Audience for Space  # noqa: E501
 
-        Updates the enabled status for an audience  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when an Audience is updated, the Audience will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/engage/audiences/#editing-realtime-audiences-and-traits).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Updates the Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when an Audience is updated, the Audience will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/engage/audiences/#editing-realtime-audiences-and-traits).  Note: The definition for an Audience updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.update_audience_for_space(space_id, id, update_audience_for_space_input, async_req=True)
+        >>> thread = api.update_audience_for_space(space_id, id, update_audience_for_space_alpha_input, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
         :param id: (required)
         :type id: str
-        :param update_audience_for_space_input: (required)
-        :type update_audience_for_space_input: UpdateAudienceForSpaceInput
+        :param update_audience_for_space_alpha_input: (required)
+        :type update_audience_for_space_alpha_input: UpdateAudienceForSpaceAlphaInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -534,25 +1523,25 @@ def update_audience_for_space(self, space_id : constr(strict=True), id : constr(
         if '_preload_content' in kwargs:
             message = "Error! Please call the update_audience_for_space_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.update_audience_for_space_with_http_info(space_id, id, update_audience_for_space_input, **kwargs)  # noqa: E501
+        return self.update_audience_for_space_with_http_info(space_id, id, update_audience_for_space_alpha_input, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def update_audience_for_space_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), update_audience_for_space_input : UpdateAudienceForSpaceInput, **kwargs) -> ApiResponse:  # noqa: E501
+    def update_audience_for_space_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), update_audience_for_space_alpha_input : UpdateAudienceForSpaceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Update Audience for Space  # noqa: E501
 
-        Updates the enabled status for an audience  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when an Audience is updated, the Audience will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/engage/audiences/#editing-realtime-audiences-and-traits).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Updates the Audience.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Audience feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Audience Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when an Audience is updated, the Audience will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/engage/audiences/#editing-realtime-audiences-and-traits).  Note: The definition for an Audience updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.update_audience_for_space_with_http_info(space_id, id, update_audience_for_space_input, async_req=True)
+        >>> thread = api.update_audience_for_space_with_http_info(space_id, id, update_audience_for_space_alpha_input, async_req=True)
         >>> result = thread.get()
 
         :param space_id: (required)
         :type space_id: str
         :param id: (required)
         :type id: str
-        :param update_audience_for_space_input: (required)
-        :type update_audience_for_space_input: UpdateAudienceForSpaceInput
+        :param update_audience_for_space_alpha_input: (required)
+        :type update_audience_for_space_alpha_input: UpdateAudienceForSpaceAlphaInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -583,7 +1572,7 @@ def update_audience_for_space_with_http_info(self, space_id : constr(strict=True
         _all_params = [
             'space_id',
             'id',
-            'update_audience_for_space_input'
+            'update_audience_for_space_alpha_input'
         ]
         _all_params.extend(
             [
@@ -627,8 +1616,8 @@ def update_audience_for_space_with_http_info(self, space_id : constr(strict=True
         _files = {}
         # process the body parameter
         _body_params = None
-        if _params['update_audience_for_space_input'] is not None:
-            _body_params = _params['update_audience_for_space_input']
+        if _params['update_audience_for_space_alpha_input'] is not None:
+            _body_params = _params['update_audience_for_space_alpha_input']
 
         # set the HTTP header `Accept`
         _header_params['Accept'] = self.api_client.select_header_accept(
diff --git a/segment_public_api/api/audit_trail_api.py b/segment_public_api/api/audit_trail_api.py
index fee33a2c3..7066525a7 100644
--- a/segment_public_api/api/audit_trail_api.py
+++ b/segment_public_api/api/audit_trail_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -48,18 +48,16 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def list_audit_events(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], start_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened after this time.  This parameter exists in v1.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.")] = None, resource_id : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1.")] = None, resource_type : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.")] = None, **kwargs) -> ListAuditEvents200Response:  # noqa: E501
+    def list_audit_events(self, start_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened after this time.  This parameter exists in v1.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.")] = None, resource_id : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1.")] = None, resource_type : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListAuditEvents200Response:  # noqa: E501
         """List Audit Events  # noqa: E501
 
         Returns a list of Audit Trail events.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_audit_events(pagination, start_time, end_time, resource_id, resource_type, async_req=True)
+        >>> thread = api.list_audit_events(start_time, end_time, resource_id, resource_type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param start_time: Filter response to events that happened after this time.  This parameter exists in v1.
         :type start_time: str
         :param end_time: Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.
@@ -68,6 +66,8 @@ def list_audit_events(self, pagination : Annotated[PaginationInput, Field(..., d
         :type resource_id: str
         :param resource_type: Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.
         :type resource_type: str
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -83,21 +83,19 @@ def list_audit_events(self, pagination : Annotated[PaginationInput, Field(..., d
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_audit_events_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_audit_events_with_http_info(pagination, start_time, end_time, resource_id, resource_type, **kwargs)  # noqa: E501
+        return self.list_audit_events_with_http_info(start_time, end_time, resource_id, resource_type, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_audit_events_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], start_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened after this time.  This parameter exists in v1.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.")] = None, resource_id : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1.")] = None, resource_type : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+    def list_audit_events_with_http_info(self, start_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened after this time.  This parameter exists in v1.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.")] = None, resource_id : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific resource, for example, a single Source.  This parameter exists in v1.")] = None, resource_type : Annotated[Optional[StrictStr], Field(description="Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Audit Events  # noqa: E501
 
         Returns a list of Audit Trail events.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_audit_events_with_http_info(pagination, start_time, end_time, resource_id, resource_type, async_req=True)
+        >>> thread = api.list_audit_events_with_http_info(start_time, end_time, resource_id, resource_type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param start_time: Filter response to events that happened after this time.  This parameter exists in v1.
         :type start_time: str
         :param end_time: Filter response to events that happened before this time. Defaults to the current time, or the end time from the pagination cursor.  This parameter exists in v1.
@@ -106,6 +104,8 @@ def list_audit_events_with_http_info(self, pagination : Annotated[PaginationInpu
         :type resource_id: str
         :param resource_type: Filter response to events that affect a specific type, for example, Sources, Warehouses, and Tracking Plans.  This parameter exists in v1.
         :type resource_type: str
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -134,11 +134,11 @@ def list_audit_events_with_http_info(self, pagination : Annotated[PaginationInpu
         _params = locals()
 
         _all_params = [
-            'pagination',
             'start_time',
             'end_time',
             'resource_id',
-            'resource_type'
+            'resource_type',
+            'pagination'
         ]
         _all_params.extend(
             [
diff --git a/segment_public_api/api/catalog_api.py b/segment_public_api/api/catalog_api.py
index 0e5db2426..aa87aa7fd 100644
--- a/segment_public_api/api/catalog_api.py
+++ b/segment_public_api/api/catalog_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
 from segment_public_api.models.get_destination_metadata200_response import GetDestinationMetadata200Response
 from segment_public_api.models.get_destinations_catalog200_response import GetDestinationsCatalog200Response
 from segment_public_api.models.get_source_metadata200_response import GetSourceMetadata200Response
@@ -194,7 +196,7 @@ def get_destination_metadata_with_http_info(self, destination_metadata_id : cons
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_destinations_catalog(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.")], **kwargs) -> GetDestinationsCatalog200Response:  # noqa: E501
+    def get_destinations_catalog(self, pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.")] = None, **kwargs) -> GetDestinationsCatalog200Response:  # noqa: E501
         """Get Destinations Catalog  # noqa: E501
 
         Returns a list of all available Destinations in the Segment catalog.  # noqa: E501
@@ -204,7 +206,7 @@ def get_destinations_catalog(self, pagination : Annotated[PaginationInput, Field
         >>> thread = api.get_destinations_catalog(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1. (required)
+        :param pagination: Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -224,7 +226,7 @@ def get_destinations_catalog(self, pagination : Annotated[PaginationInput, Field
         return self.get_destinations_catalog_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_destinations_catalog_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_destinations_catalog_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Destinations Catalog  # noqa: E501
 
         Returns a list of all available Destinations in the Segment catalog.  # noqa: E501
@@ -234,7 +236,7 @@ def get_destinations_catalog_with_http_info(self, pagination : Annotated[Paginat
         >>> thread = api.get_destinations_catalog_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1. (required)
+        :param pagination: Required pagination parameters used to filter the Destinations catalog.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -480,7 +482,7 @@ def get_source_metadata_with_http_info(self, source_metadata_id : constr(strict=
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_sources_catalog(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> GetSourcesCatalog200Response:  # noqa: E501
+    def get_sources_catalog(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> GetSourcesCatalog200Response:  # noqa: E501
         """Get Sources Catalog  # noqa: E501
 
         Returns a list of all available Sources in the Segment catalog.  # noqa: E501
@@ -490,7 +492,7 @@ def get_sources_catalog(self, pagination : Annotated[PaginationInput, Field(...,
         >>> thread = api.get_sources_catalog(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -510,7 +512,7 @@ def get_sources_catalog(self, pagination : Annotated[PaginationInput, Field(...,
         return self.get_sources_catalog_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_sources_catalog_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_sources_catalog_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Sources Catalog  # noqa: E501
 
         Returns a list of all available Sources in the Segment catalog.  # noqa: E501
@@ -520,7 +522,7 @@ def get_sources_catalog_with_http_info(self, pagination : Annotated[PaginationIn
         >>> thread = api.get_sources_catalog_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -766,7 +768,7 @@ def get_warehouse_metadata_with_http_info(self, warehouse_metadata_id : constr(s
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_warehouses_catalog(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination params used to filter the Warehouses catalog.  This parameter exists in v1.")], **kwargs) -> GetWarehousesCatalog200Response:  # noqa: E501
+    def get_warehouses_catalog(self, pagination : Annotated[Optional[PaginationInput], Field(description="Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1.")] = None, **kwargs) -> GetWarehousesCatalog200Response:  # noqa: E501
         """Get Warehouses Catalog  # noqa: E501
 
         Returns a list of all available Warehouses in the Segment catalog.  # noqa: E501
@@ -776,7 +778,7 @@ def get_warehouses_catalog(self, pagination : Annotated[PaginationInput, Field(.
         >>> thread = api.get_warehouses_catalog(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination params used to filter the Warehouses catalog.  This parameter exists in v1. (required)
+        :param pagination: Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -796,7 +798,7 @@ def get_warehouses_catalog(self, pagination : Annotated[PaginationInput, Field(.
         return self.get_warehouses_catalog_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_warehouses_catalog_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination params used to filter the Warehouses catalog.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_warehouses_catalog_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Warehouses Catalog  # noqa: E501
 
         Returns a list of all available Warehouses in the Segment catalog.  # noqa: E501
@@ -806,7 +808,7 @@ def get_warehouses_catalog_with_http_info(self, pagination : Annotated[Paginatio
         >>> thread = api.get_warehouses_catalog_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination params used to filter the Warehouses catalog.  This parameter exists in v1. (required)
+        :param pagination: Optional pagination params used to filter the Warehouses catalog.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
diff --git a/segment_public_api/api/computed_traits_api.py b/segment_public_api/api/computed_traits_api.py
index a6d276f85..4b42cf8ea 100644
--- a/segment_public_api/api/computed_traits_api.py
+++ b/segment_public_api/api/computed_traits_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,10 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
+from segment_public_api.models.create_computed_trait200_response import CreateComputedTrait200Response
+from segment_public_api.models.create_computed_trait_alpha_input import CreateComputedTraitAlphaInput
 from segment_public_api.models.get_computed_trait200_response import GetComputedTrait200Response
 from segment_public_api.models.list_computed_traits200_response import ListComputedTraits200Response
 from segment_public_api.models.pagination_input import PaginationInput
@@ -49,11 +53,169 @@ def __init__(self, api_client=None) -> None:
             api_client = ApiClient.get_default()
         self.api_client = api_client
 
+    @validate_arguments
+    def create_computed_trait(self, space_id : constr(strict=True), create_computed_trait_alpha_input : CreateComputedTraitAlphaInput, **kwargs) -> CreateComputedTrait200Response:  # noqa: E501
+        """Create Computed Trait  # noqa: E501
+
+        Creates a Computed Trait  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for a Computed Trait created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_computed_trait(space_id, create_computed_trait_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param create_computed_trait_alpha_input: (required)
+        :type create_computed_trait_alpha_input: CreateComputedTraitAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateComputedTrait200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_computed_trait_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_computed_trait_with_http_info(space_id, create_computed_trait_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_computed_trait_with_http_info(self, space_id : constr(strict=True), create_computed_trait_alpha_input : CreateComputedTraitAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Computed Trait  # noqa: E501
+
+        Creates a Computed Trait  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Created` event in the [audit trail](/tag/Audit-Trail).  Note: The definition for a Computed Trait created using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_computed_trait_with_http_info(space_id, create_computed_trait_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param space_id: (required)
+        :type space_id: str
+        :param create_computed_trait_alpha_input: (required)
+        :type create_computed_trait_alpha_input: CreateComputedTraitAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateComputedTrait200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'space_id',
+            'create_computed_trait_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_computed_trait" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['space_id']:
+            _path_params['spaceId'] = _params['space_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_computed_trait_alpha_input'] is not None:
+            _body_params = _params['create_computed_trait_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateComputedTrait200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces/{spaceId}/computed-traits', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
     @validate_arguments
     def get_computed_trait(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> GetComputedTrait200Response:  # noqa: E501
         """Get Computed Trait  # noqa: E501
 
-        Returns the Computed Trait by id and spaceId  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns the Computed Trait by id and spaceId  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -85,7 +247,7 @@ def get_computed_trait(self, space_id : constr(strict=True), id : constr(strict=
     def get_computed_trait_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Get Computed Trait  # noqa: E501
 
-        Returns the Computed Trait by id and spaceId  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns the Computed Trait by id and spaceId  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 100 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -201,10 +363,10 @@ def get_computed_trait_with_http_info(self, space_id : constr(strict=True), id :
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_computed_traits(self, space_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Information about the pagination of this response.  This parameter exists in alpha.")], **kwargs) -> ListComputedTraits200Response:  # noqa: E501
+    def list_computed_traits(self, space_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, **kwargs) -> ListComputedTraits200Response:  # noqa: E501
         """List Computed Traits  # noqa: E501
 
-        Returns Computed Traits by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns Computed Traits by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -213,7 +375,7 @@ def list_computed_traits(self, space_id : constr(strict=True), pagination : Anno
 
         :param space_id: (required)
         :type space_id: str
-        :param pagination: Information about the pagination of this response.  This parameter exists in alpha. (required)
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -233,10 +395,10 @@ def list_computed_traits(self, space_id : constr(strict=True), pagination : Anno
         return self.list_computed_traits_with_http_info(space_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_computed_traits_with_http_info(self, space_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Information about the pagination of this response.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_computed_traits_with_http_info(self, space_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Computed Traits  # noqa: E501
 
-        Returns Computed Traits by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Returns Computed Traits by spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 25 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -245,7 +407,7 @@ def list_computed_traits_with_http_info(self, space_id : constr(strict=True), pa
 
         :param space_id: (required)
         :type space_id: str
-        :param pagination: Information about the pagination of this response.  This parameter exists in alpha. (required)
+        :param pagination: Information about the pagination of this response.  [See pagination](https://docs.segmentapis.com/tag/Pagination/#section/Pagination-parameters) for more info.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -355,7 +517,7 @@ def list_computed_traits_with_http_info(self, space_id : constr(strict=True), pa
     def remove_computed_trait_from_space(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> RemoveComputedTraitFromSpace200Response:  # noqa: E501
         """Remove Computed Trait from Space  # noqa: E501
 
-        Deletes a Computed Trait by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Deletes a Computed Trait by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -387,7 +549,7 @@ def remove_computed_trait_from_space(self, space_id : constr(strict=True), id :
     def remove_computed_trait_from_space_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Remove Computed Trait from Space  # noqa: E501
 
-        Deletes a Computed Trait by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Deletes a Computed Trait by id and spaceId.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Deleted` event in the [audit trail](/tag/Audit-Trail).   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -506,7 +668,7 @@ def remove_computed_trait_from_space_with_http_info(self, space_id : constr(stri
     def update_computed_trait_for_space(self, space_id : constr(strict=True), id : constr(strict=True), update_computed_trait_for_space_alpha_input : UpdateComputedTraitForSpaceAlphaInput, **kwargs) -> UpdateComputedTraitForSpace200Response:  # noqa: E501
         """Update Computed Trait for Space  # noqa: E501
 
-        Updates the enabled status for a computed trait.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when a Computed Trait is updated, the Computed Trait will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/unify/traits/computed-traits/#editing-realtime-traits).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Updates the Computed Trait.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when a Computed Trait is updated, the Computed Trait will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/unify/traits/computed-traits/#editing-realtime-traits).  Note: The definition for a Computed Trait updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -540,7 +702,7 @@ def update_computed_trait_for_space(self, space_id : constr(strict=True), id : c
     def update_computed_trait_for_space_with_http_info(self, space_id : constr(strict=True), id : constr(strict=True), update_computed_trait_for_space_alpha_input : UpdateComputedTraitForSpaceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Update Computed Trait for Space  # noqa: E501
 
-        Updates the enabled status for a computed trait.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when a Computed Trait is updated, the Computed Trait will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/unify/traits/computed-traits/#editing-realtime-traits).   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Updates the Computed Trait.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Computed Trait feature enabled. Please reach out to your customer success manager for more information.  • When called, this endpoint may generate the `Computed Trait Modified` event in the [audit trail](/tag/Audit-Trail).  • Note that when a Computed Trait is updated, the Computed Trait will be locked from future edits until the changes have been incorporated. You can find more information [in the Segment docs](https://segment-docs.netlify.app/docs/unify/traits/computed-traits/#editing-realtime-traits).  Note: The definition for a Computed Trait updated using the API is not editable through the Segment App.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
diff --git a/segment_public_api/api/customer_insights_api.py b/segment_public_api/api/customer_insights_api.py
new file mode 100644
index 000000000..ee9e71960
--- /dev/null
+++ b/segment_public_api/api/customer_insights_api.py
@@ -0,0 +1,193 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+import re  # noqa: F401
+import io
+import warnings
+
+from pydantic import validate_arguments, ValidationError
+
+from segment_public_api.models.create_download200_response import CreateDownload200Response
+from segment_public_api.models.create_download_alpha_input import CreateDownloadAlphaInput
+
+from segment_public_api.api_client import ApiClient
+from segment_public_api.api_response import ApiResponse
+from segment_public_api.exceptions import (  # noqa: F401
+    ApiTypeError,
+    ApiValueError
+)
+
+
+class CustomerInsightsApi:
+    """NOTE: This class is auto generated by OpenAPI Generator
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def create_download(self, create_download_alpha_input : CreateDownloadAlphaInput, **kwargs) -> CreateDownload200Response:  # noqa: E501
+        """Create Download  # noqa: E501
+
+        Create Customer Insights Presigned URLsThe rate limit for this endpoint is 120 requests per day per workspaceId, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_download(create_download_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_download_alpha_input: (required)
+        :type create_download_alpha_input: CreateDownloadAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateDownload200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_download_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_download_with_http_info(create_download_alpha_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_download_with_http_info(self, create_download_alpha_input : CreateDownloadAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Download  # noqa: E501
+
+        Create Customer Insights Presigned URLsThe rate limit for this endpoint is 120 requests per day per workspaceId, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_download_with_http_info(create_download_alpha_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_download_alpha_input: (required)
+        :type create_download_alpha_input: CreateDownloadAlphaInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateDownload200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'create_download_alpha_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_download" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_download_alpha_input'] is not None:
+            _body_params = _params['create_download_alpha_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateDownload200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/customer-insights/download', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
diff --git a/segment_public_api/api/dbt_api.py b/segment_public_api/api/dbt_api.py
new file mode 100644
index 000000000..928d69c6f
--- /dev/null
+++ b/segment_public_api/api/dbt_api.py
@@ -0,0 +1,193 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+import re  # noqa: F401
+import io
+import warnings
+
+from pydantic import validate_arguments, ValidationError
+
+from segment_public_api.models.create_dbt_model_sync_trigger200_response import CreateDbtModelSyncTrigger200Response
+from segment_public_api.models.create_dbt_model_sync_trigger_input import CreateDbtModelSyncTriggerInput
+
+from segment_public_api.api_client import ApiClient
+from segment_public_api.api_response import ApiResponse
+from segment_public_api.exceptions import (  # noqa: F401
+    ApiTypeError,
+    ApiValueError
+)
+
+
+class DbtApi:
+    """NOTE: This class is auto generated by OpenAPI Generator
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def create_dbt_model_sync_trigger(self, create_dbt_model_sync_trigger_input : CreateDbtModelSyncTriggerInput, **kwargs) -> CreateDbtModelSyncTrigger200Response:  # noqa: E501
+        """Create Dbt Model Sync Trigger  # noqa: E501
+
+        Creates a trigger for a new dbt model sync for a Source.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_dbt_model_sync_trigger(create_dbt_model_sync_trigger_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_dbt_model_sync_trigger_input: (required)
+        :type create_dbt_model_sync_trigger_input: CreateDbtModelSyncTriggerInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateDbtModelSyncTrigger200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_dbt_model_sync_trigger_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_dbt_model_sync_trigger_with_http_info(create_dbt_model_sync_trigger_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_dbt_model_sync_trigger_with_http_info(self, create_dbt_model_sync_trigger_input : CreateDbtModelSyncTriggerInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Dbt Model Sync Trigger  # noqa: E501
+
+        Creates a trigger for a new dbt model sync for a Source.   The rate limit for this endpoint is 10 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_dbt_model_sync_trigger_with_http_info(create_dbt_model_sync_trigger_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_dbt_model_sync_trigger_input: (required)
+        :type create_dbt_model_sync_trigger_input: CreateDbtModelSyncTriggerInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateDbtModelSyncTrigger200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'create_dbt_model_sync_trigger_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_dbt_model_sync_trigger" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_dbt_model_sync_trigger_input'] is not None:
+            _body_params = _params['create_dbt_model_sync_trigger_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1beta+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateDbtModelSyncTrigger200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/dbt-model-syncs/trigger', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
diff --git a/segment_public_api/api/deletion_and_suppression_api.py b/segment_public_api/api/deletion_and_suppression_api.py
index 5275bcdd5..294a1bc2d 100644
--- a/segment_public_api/api/deletion_and_suppression_api.py
+++ b/segment_public_api/api/deletion_and_suppression_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,7 +22,7 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, conlist, constr, validator
 
-from typing import List, Optional
+from typing import Optional
 
 from segment_public_api.models.create_cloud_source_regulation200_response import CreateCloudSourceRegulation200Response
 from segment_public_api.models.create_cloud_source_regulation_v1_input import CreateCloudSourceRegulationV1Input
@@ -61,7 +61,7 @@ def __init__(self, api_client=None) -> None:
     def create_cloud_source_regulation(self, source_id : constr(strict=True), create_cloud_source_regulation_v1_input : CreateCloudSourceRegulationV1Input, **kwargs) -> CreateCloudSourceRegulation200Response:  # noqa: E501
         """Create Cloud Source Regulation  # noqa: E501
 
-        Creates a Source-scoped regulation.        Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
+        Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment        Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -93,7 +93,7 @@ def create_cloud_source_regulation(self, source_id : constr(strict=True), create
     def create_cloud_source_regulation_with_http_info(self, source_id : constr(strict=True), create_cloud_source_regulation_v1_input : CreateCloudSourceRegulationV1Input, **kwargs) -> ApiResponse:  # noqa: E501
         """Create Cloud Source Regulation  # noqa: E501
 
-        Creates a Source-scoped regulation.        Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
+        Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment        Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -184,7 +184,7 @@ def create_cloud_source_regulation_with_http_info(self, source_id : constr(stric
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -219,7 +219,7 @@ def create_cloud_source_regulation_with_http_info(self, source_id : constr(stric
     def create_source_regulation(self, source_id : constr(strict=True), create_source_regulation_v1_input : CreateSourceRegulationV1Input, **kwargs) -> CreateSourceRegulation200Response:  # noqa: E501
         """Create Source Regulation  # noqa: E501
 
-        Creates a Source-scoped regulation.    • When called, this endpoint may generate the `Source Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
+        Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment    • When called, this endpoint may generate the `Source Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -251,7 +251,7 @@ def create_source_regulation(self, source_id : constr(strict=True), create_sourc
     def create_source_regulation_with_http_info(self, source_id : constr(strict=True), create_source_regulation_v1_input : CreateSourceRegulationV1Input, **kwargs) -> ApiResponse:  # noqa: E501
         """Create Source Regulation  # noqa: E501
 
-        Creates a Source-scoped regulation.    • When called, this endpoint may generate the `Source Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
+        Creates a Source-scoped regulation.    Please Note: Suppression rules at the Workspace level take precedence over those at the Source level. If a user has been suppressed at the Workspace level, any attempt to un-suppress at the Source level is not supported and the processing of the request will fail in Segment    • When called, this endpoint may generate the `Source Regulation Created` event in the [audit trail](/tag/Audit-Trail).  Config API omitted fields: - `attributes`, - `userAgent`         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -342,7 +342,7 @@ def create_source_regulation_with_http_info(self, source_id : constr(strict=True
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -492,7 +492,7 @@ def create_workspace_regulation_with_http_info(self, create_workspace_regulation
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -525,9 +525,9 @@ def create_workspace_regulation_with_http_info(self, create_workspace_regulation
 
     @validate_arguments
     def delete_regulation(self, regulate_id : constr(strict=True), **kwargs) -> DeleteRegulation200Response:  # noqa: E501
-        """Delete Regulation  # noqa: E501
+        """(Deprecated) Delete Regulation  # noqa: E501
 
-        Deletes a regulation from the Workspace. The regulation must be in the initialized state to be deleted.    • When called, this endpoint may generate the `Regulation Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Deletes a regulation from the Workspace. The regulation must be in the initialized state to be deleted.    • When called, this endpoint may generate the `Regulation Deleted` event in the [audit trail](/tag/Audit-Trail).         **DEPRECATED**: this endpoint has been deprecated according to the guidelines, and may experience reduced SLA guarantees.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -555,9 +555,9 @@ def delete_regulation(self, regulate_id : constr(strict=True), **kwargs) -> Dele
 
     @validate_arguments
     def delete_regulation_with_http_info(self, regulate_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
-        """Delete Regulation  # noqa: E501
+        """(Deprecated) Delete Regulation  # noqa: E501
 
-        Deletes a regulation from the Workspace. The regulation must be in the initialized state to be deleted.    • When called, this endpoint may generate the `Regulation Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Deletes a regulation from the Workspace. The regulation must be in the initialized state to be deleted.    • When called, this endpoint may generate the `Regulation Deleted` event in the [audit trail](/tag/Audit-Trail).         **DEPRECATED**: this endpoint has been deprecated according to the guidelines, and may experience reduced SLA guarantees.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -591,6 +591,8 @@ def delete_regulation_with_http_info(self, regulate_id : constr(strict=True), **
         :rtype: tuple(DeleteRegulation200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
+        warnings.warn("DELETE /regulations/{regulateId} is deprecated.", DeprecationWarning)
+
         _params = locals()
 
         _all_params = [
@@ -810,24 +812,24 @@ def get_regulation_with_http_info(self, regulate_id : constr(strict=True), **kwa
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_regulations_from_source(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], status : Annotated[Optional[StrictStr], Field(description="The status on which to filter returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, **kwargs) -> ListRegulationsFromSource200Response:  # noqa: E501
+    def list_regulations_from_source(self, source_id : constr(strict=True), status : Annotated[Optional[StrictStr], Field(description="The status on which to filter returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(StrictStr)], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListRegulationsFromSource200Response:  # noqa: E501
         """List Regulations from Source  # noqa: E501
 
         Lists all Source-scoped regulations.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_regulations_from_source(source_id, pagination, status, regulation_types, async_req=True)
+        >>> thread = api.list_regulations_from_source(source_id, status, regulation_types, pagination, async_req=True)
         >>> result = thread.get()
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param status: The status on which to filter returned regulations.  This parameter exists in v1.
         :type status: str
         :param regulation_types: The regulation types on which to filter returned regulations.  This parameter exists in v1.
         :type regulation_types: List[str]
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -843,27 +845,27 @@ def list_regulations_from_source(self, source_id : constr(strict=True), paginati
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_regulations_from_source_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_regulations_from_source_with_http_info(source_id, pagination, status, regulation_types, **kwargs)  # noqa: E501
+        return self.list_regulations_from_source_with_http_info(source_id, status, regulation_types, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_regulations_from_source_with_http_info(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], status : Annotated[Optional[StrictStr], Field(description="The status on which to filter returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+    def list_regulations_from_source_with_http_info(self, source_id : constr(strict=True), status : Annotated[Optional[StrictStr], Field(description="The status on which to filter returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(StrictStr)], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Regulations from Source  # noqa: E501
 
         Lists all Source-scoped regulations.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_regulations_from_source_with_http_info(source_id, pagination, status, regulation_types, async_req=True)
+        >>> thread = api.list_regulations_from_source_with_http_info(source_id, status, regulation_types, pagination, async_req=True)
         >>> result = thread.get()
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param status: The status on which to filter returned regulations.  This parameter exists in v1.
         :type status: str
         :param regulation_types: The regulation types on which to filter returned regulations.  This parameter exists in v1.
         :type regulation_types: List[str]
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -893,9 +895,9 @@ def list_regulations_from_source_with_http_info(self, source_id : constr(strict=
 
         _all_params = [
             'source_id',
-            'pagination',
             'status',
-            'regulation_types'
+            'regulation_types',
+            'pagination'
         ]
         _all_params.extend(
             [
@@ -934,7 +936,7 @@ def list_regulations_from_source_with_http_info(self, source_id : constr(strict=
 
         if _params.get('regulation_types') is not None:  # noqa: E501
             _query_params.append(('regulationTypes', _params['regulation_types']))
-            _collection_formats['regulationTypes'] = 'csv'
+            _collection_formats['regulationTypes'] = 'multi'
 
         if _params.get('pagination') is not None:  # noqa: E501
             _query_params.append(('pagination', _params['pagination']))
@@ -978,7 +980,7 @@ def list_regulations_from_source_with_http_info(self, source_id : constr(strict=
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_suppressions(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListSuppressions200Response:  # noqa: E501
+    def list_suppressions(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListSuppressions200Response:  # noqa: E501
         """List Suppressions  # noqa: E501
 
         Lists all suppressions in a given Workspace.  # noqa: E501
@@ -988,7 +990,7 @@ def list_suppressions(self, pagination : Annotated[PaginationInput, Field(..., d
         >>> thread = api.list_suppressions(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1008,7 +1010,7 @@ def list_suppressions(self, pagination : Annotated[PaginationInput, Field(..., d
         return self.list_suppressions_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_suppressions_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_suppressions_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Suppressions  # noqa: E501
 
         Lists all suppressions in a given Workspace.  # noqa: E501
@@ -1018,7 +1020,7 @@ def list_suppressions_with_http_info(self, pagination : Annotated[PaginationInpu
         >>> thread = api.list_suppressions_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1121,22 +1123,22 @@ def list_suppressions_with_http_info(self, pagination : Annotated[PaginationInpu
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_workspace_regulations(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], status : Annotated[Optional[StrictStr], Field(description="The status on which to filter the returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, **kwargs) -> ListWorkspaceRegulations200Response:  # noqa: E501
+    def list_workspace_regulations(self, status : Annotated[Optional[StrictStr], Field(description="The status on which to filter the returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(StrictStr)], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListWorkspaceRegulations200Response:  # noqa: E501
         """List Workspace Regulations  # noqa: E501
 
         Lists all Workspace-scoped regulations.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_workspace_regulations(pagination, status, regulation_types, async_req=True)
+        >>> thread = api.list_workspace_regulations(status, regulation_types, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param status: The status on which to filter the returned regulations.  This parameter exists in v1.
         :type status: str
         :param regulation_types: The regulation types on which to filter returned regulations.  This parameter exists in v1.
         :type regulation_types: List[str]
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -1152,25 +1154,25 @@ def list_workspace_regulations(self, pagination : Annotated[PaginationInput, Fie
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_workspace_regulations_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_workspace_regulations_with_http_info(pagination, status, regulation_types, **kwargs)  # noqa: E501
+        return self.list_workspace_regulations_with_http_info(status, regulation_types, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_workspace_regulations_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], status : Annotated[Optional[StrictStr], Field(description="The status on which to filter the returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+    def list_workspace_regulations_with_http_info(self, status : Annotated[Optional[StrictStr], Field(description="The status on which to filter the returned regulations.  This parameter exists in v1.")] = None, regulation_types : Annotated[Optional[conlist(StrictStr)], Field(description="The regulation types on which to filter returned regulations.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Workspace Regulations  # noqa: E501
 
         Lists all Workspace-scoped regulations.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_workspace_regulations_with_http_info(pagination, status, regulation_types, async_req=True)
+        >>> thread = api.list_workspace_regulations_with_http_info(status, regulation_types, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param status: The status on which to filter the returned regulations.  This parameter exists in v1.
         :type status: str
         :param regulation_types: The regulation types on which to filter returned regulations.  This parameter exists in v1.
         :type regulation_types: List[str]
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -1199,9 +1201,9 @@ def list_workspace_regulations_with_http_info(self, pagination : Annotated[Pagin
         _params = locals()
 
         _all_params = [
-            'pagination',
             'status',
-            'regulation_types'
+            'regulation_types',
+            'pagination'
         ]
         _all_params.extend(
             [
@@ -1237,7 +1239,7 @@ def list_workspace_regulations_with_http_info(self, pagination : Annotated[Pagin
 
         if _params.get('regulation_types') is not None:  # noqa: E501
             _query_params.append(('regulationTypes', _params['regulation_types']))
-            _collection_formats['regulationTypes'] = 'csv'
+            _collection_formats['regulationTypes'] = 'multi'
 
         if _params.get('pagination') is not None:  # noqa: E501
             _query_params.append(('pagination', _params['pagination']))
diff --git a/segment_public_api/api/delivery_overview_api.py b/segment_public_api/api/delivery_overview_api.py
new file mode 100644
index 000000000..2f098369b
--- /dev/null
+++ b/segment_public_api/api/delivery_overview_api.py
@@ -0,0 +1,1227 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+import re  # noqa: F401
+import io
+import warnings
+
+from pydantic import validate_arguments, ValidationError
+
+from typing_extensions import Annotated
+from pydantic import Field, StrictStr, conlist
+
+from typing import Optional
+
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.delivery_overview_source_filter_by import DeliveryOverviewSourceFilterBy
+from segment_public_api.models.delivery_overview_successfully_received_filter_by import DeliveryOverviewSuccessfullyReceivedFilterBy
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
+from segment_public_api.models.pagination_input import PaginationInput
+
+from segment_public_api.api_client import ApiClient
+from segment_public_api.api_response import ApiResponse
+from segment_public_api.exceptions import (  # noqa: F401
+    ApiTypeError,
+    ApiValueError
+)
+
+
+class DeliveryOverviewApi:
+    """NOTE: This class is auto generated by OpenAPI Generator
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def get_egress_failed_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Egress Failed Metrics from Delivery Overview  # noqa: E501
+
+        Get events that failed to be delivered to Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_egress_failed_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_egress_failed_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_egress_failed_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_egress_failed_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Egress Failed Metrics from Delivery Overview  # noqa: E501
+
+        Get events that failed to be delivered to Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_egress_failed_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'destination_config_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_egress_failed_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('destination_config_id') is not None:  # noqa: E501
+            _query_params.append(('destinationConfigId', _params['destination_config_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/failed-delivery', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_egress_success_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `appVersion`, `subscription Id`, `activationId`, `audienceId`, or `spaceId` that can be applied in addition to a `group By`. If you would like to view retry attempts for a successful delivery, you can filter `discard Reason` from `successes.attempt.1` through `successes.attempt.10`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Egress Success Metrics from Delivery Overview  # noqa: E501
+
+        Get events successfully delivered to Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_egress_success_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `appVersion`, `subscription Id`, `activationId`, `audienceId`, or `spaceId` that can be applied in addition to a `group By`. If you would like to view retry attempts for a successful delivery, you can filter `discard Reason` from `successes.attempt.1` through `successes.attempt.10`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_egress_success_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_egress_success_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_egress_success_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `appVersion`, `subscription Id`, `activationId`, `audienceId`, or `spaceId` that can be applied in addition to a `group By`. If you would like to view retry attempts for a successful delivery, you can filter `discard Reason` from `successes.attempt.1` through `successes.attempt.10`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Egress Success Metrics from Delivery Overview  # noqa: E501
+
+        Get events successfully delivered to Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_egress_success_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `appVersion`, `subscription Id`, `activationId`, `audienceId`, or `spaceId` that can be applied in addition to a `group By`. If you would like to view retry attempts for a successful delivery, you can filter `discard Reason` from `successes.attempt.1` through `successes.attempt.10`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'destination_config_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_egress_success_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('destination_config_id') is not None:  # noqa: E501
+            _query_params.append(('destinationConfigId', _params['destination_config_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/successful-delivery', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_filtered_at_destination_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Filtered At Destination Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were filtered at Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filtered_at_destination_metrics_from_delivery_overview(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_filtered_at_destination_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_filtered_at_destination_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_filtered_at_destination_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], destination_config_id : Annotated[StrictStr, Field(..., description="The id tied to a Workspace Destination.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewDestinationFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Filtered At Destination Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were filtered at Destination.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filtered_at_destination_metrics_from_delivery_overview_with_http_info(source_id, destination_config_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param destination_config_id: The id tied to a Workspace Destination.  This parameter exists in beta. (required)
+        :type destination_config_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and `spaceId`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, `app Version`, `subscription Id`, `activationId`, `audienceId`, and/or `spaceId` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewDestinationFilterBy
+        :param pagination: Params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'destination_config_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_filtered_at_destination_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('destination_config_id') is not None:  # noqa: E501
+            _query_params.append(('destinationConfigId', _params['destination_config_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/filtered-at-destination', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_filtered_at_source_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and `app Version`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSourceFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Filtered At Source Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were filtered at Source.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filtered_at_source_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and `app Version`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSourceFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_filtered_at_source_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_filtered_at_source_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_filtered_at_source_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and `app Version`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSourceFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Filtered At Source Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were filtered at Source.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filtered_at_source_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and `app Version`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSourceFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_filtered_at_source_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/filtered-at-source', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_ingress_failed_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and/or `appVersion`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSourceFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Ingress Failed Metrics from Delivery Overview  # noqa: E501
+
+        Get events that failed on ingest.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_ingress_failed_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and/or `appVersion`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSourceFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_ingress_failed_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_ingress_failed_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_ingress_failed_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and/or `appVersion`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSourceFilterBy], Field(description="An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Ingress Failed Metrics from Delivery Overview  # noqa: E501
+
+        Get events that failed on ingest.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_ingress_failed_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, `discard Reason`, and/or `appVersion`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, `discard Reason`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSourceFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_ingress_failed_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/failed-on-ingest', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_ingress_success_metrics_from_delivery_overview(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, and/or `app Version`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSuccessfullyReceivedFilterBy], Field(description="An optional filter for `event Name`, `event Type`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> GetEgressFailedMetricsFromDeliveryOverview200Response:  # noqa: E501
+        """Get Ingress Success Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were successfully received by Segment.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_ingress_success_metrics_from_delivery_overview(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, and/or `app Version`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSuccessfullyReceivedFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetEgressFailedMetricsFromDeliveryOverview200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_ingress_success_metrics_from_delivery_overview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_ingress_success_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_ingress_success_metrics_from_delivery_overview_with_http_info(self, source_id : Annotated[StrictStr, Field(..., description="The sourceId for the Workspace.  This parameter exists in beta.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta.")], granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, and/or `app Version`.  This parameter exists in beta.")] = None, filter : Annotated[Optional[DeliveryOverviewSuccessfullyReceivedFilterBy], Field(description="An optional filter for `event Name`, `event Type`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Optional params to specify the page cursor and count.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Ingress Success Metrics from Delivery Overview  # noqa: E501
+
+        Get events that were successfully received by Segment.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_ingress_success_metrics_from_delivery_overview_with_http_info(source_id, start_time, end_time, granularity, group_by, filter, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: The sourceId for the Workspace.  This parameter exists in beta. (required)
+        :type source_id: str
+        :param start_time: The ISO8601 formatted timestamp corresponding to the beginning of the requested time frame, inclusive.  This parameter exists in beta. (required)
+        :type start_time: str
+        :param end_time: The ISO8601 formatted timestamp corresponding to the end of the requested time frame, noninclusive.  This parameter exists in beta. (required)
+        :type end_time: str
+        :param granularity: The size of each bucket in the requested window.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 14 days - Oldest possible start time: 30 days in the past  **Day**: - Max time range: 30 days - Oldest possible start time: 30 days in the past  This parameter exists in beta. (required)
+        :type granularity: str
+        :param group_by: A comma-delimited list of strings representing one or more dimensions to group the result by.  Valid options are: `event Name`, `event Type`, and/or `app Version`.  This parameter exists in beta.
+        :type group_by: List[str]
+        :param filter: An optional filter for `event Name`, `event Type`, and/or `app Version` that can be applied in addition to a `group By`.  This parameter exists in beta.
+        :type filter: DeliveryOverviewSuccessfullyReceivedFilterBy
+        :param pagination: Optional params to specify the page cursor and count.  This parameter exists in beta.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetEgressFailedMetricsFromDeliveryOverview200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'start_time',
+            'end_time',
+            'granularity',
+            'group_by',
+            'filter',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_ingress_success_metrics_from_delivery_overview" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('source_id') is not None:  # noqa: E501
+            _query_params.append(('sourceId', _params['source_id']))
+
+        if _params.get('start_time') is not None:  # noqa: E501
+            _query_params.append(('startTime', _params['start_time']))
+
+        if _params.get('end_time') is not None:  # noqa: E501
+            _query_params.append(('endTime', _params['end_time']))
+
+        if _params.get('group_by') is not None:  # noqa: E501
+            _query_params.append(('groupBy', _params['group_by']))
+            _collection_formats['groupBy'] = 'multi'
+
+        if _params.get('granularity') is not None:  # noqa: E501
+            _query_params.append(('granularity', _params['granularity']))
+
+        if _params.get('filter') is not None:  # noqa: E501
+            _query_params.append(('filter', _params['filter']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetEgressFailedMetricsFromDeliveryOverview200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/delivery-overview/successfully-received', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
diff --git a/segment_public_api/api/destination_filters_api.py b/segment_public_api/api/destination_filters_api.py
index 6d36c1b17..6e9a2e474 100644
--- a/segment_public_api/api/destination_filters_api.py
+++ b/segment_public_api/api/destination_filters_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
 from segment_public_api.models.create_filter_for_destination200_response import CreateFilterForDestination200Response
 from segment_public_api.models.create_filter_for_destination_v1_input import CreateFilterForDestinationV1Input
 from segment_public_api.models.get_filter_in_destination200_response import GetFilterInDestination200Response
@@ -180,7 +182,7 @@ def create_filter_for_destination_with_http_info(self, destination_id : constr(s
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -363,7 +365,7 @@ def get_filter_in_destination_with_http_info(self, destination_id : constr(stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_filters_from_destination(self, destination_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ListFiltersFromDestination200Response:  # noqa: E501
+    def list_filters_from_destination(self, destination_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ListFiltersFromDestination200Response:  # noqa: E501
         """List Filters from Destination  # noqa: E501
 
         Lists filters for a Destination.  # noqa: E501
@@ -375,7 +377,7 @@ def list_filters_from_destination(self, destination_id : constr(strict=True), pa
 
         :param destination_id: (required)
         :type destination_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -395,7 +397,7 @@ def list_filters_from_destination(self, destination_id : constr(strict=True), pa
         return self.list_filters_from_destination_with_http_info(destination_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_filters_from_destination_with_http_info(self, destination_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_filters_from_destination_with_http_info(self, destination_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Filters from Destination  # noqa: E501
 
         Lists filters for a Destination.  # noqa: E501
@@ -407,7 +409,7 @@ def list_filters_from_destination_with_http_info(self, destination_id : constr(s
 
         :param destination_id: (required)
         :type destination_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -632,7 +634,7 @@ def preview_destination_filter_with_http_info(self, preview_destination_filter_v
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -949,7 +951,7 @@ def update_filter_for_destination_with_http_info(self, destination_id : constr(s
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/destinations_api.py b/segment_public_api/api/destinations_api.py
index 1b407a8e9..bae447efa 100644
--- a/segment_public_api/api/destinations_api.py
+++ b/segment_public_api/api/destinations_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -180,7 +180,7 @@ def create_destination_with_http_info(self, create_destination_v1_input : Create
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -215,7 +215,7 @@ def create_destination_with_http_info(self, create_destination_v1_input : Create
     def create_destination_subscription(self, destination_id : constr(strict=True), create_destination_subscription_alpha_input : CreateDestinationSubscriptionAlphaInput, **kwargs) -> CreateDestinationSubscription200Response:  # noqa: E501
         """Create Destination Subscription  # noqa: E501
 
-        Creates a new Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Creates a new Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -247,7 +247,7 @@ def create_destination_subscription(self, destination_id : constr(strict=True),
     def create_destination_subscription_with_http_info(self, destination_id : constr(strict=True), create_destination_subscription_alpha_input : CreateDestinationSubscriptionAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Create Destination Subscription  # noqa: E501
 
-        Creates a new Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Creates a new Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -659,7 +659,7 @@ def get_destination_with_http_info(self, destination_id : constr(strict=True), *
     def get_subscription_from_destination(self, destination_id : constr(strict=True), id : constr(strict=True), **kwargs) -> GetSubscriptionFromDestination200Response:  # noqa: E501
         """Get Subscription from Destination  # noqa: E501
 
-        Gets a Destination subscription by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Gets a Destination subscription by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -691,7 +691,7 @@ def get_subscription_from_destination(self, destination_id : constr(strict=True)
     def get_subscription_from_destination_with_http_info(self, destination_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Get Subscription from Destination  # noqa: E501
 
-        Gets a Destination subscription by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Gets a Destination subscription by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -810,7 +810,7 @@ def get_subscription_from_destination_with_http_info(self, destination_id : cons
     def list_delivery_metrics_summary_from_destination(self, destination_id : constr(strict=True), source_id : Annotated[StrictStr, Field(..., description="The id of the Source linked to the Destination.  Config API note: analogous to `parent`.  This parameter exists in beta.")], start_time : Annotated[Optional[StrictStr], Field(description="Filter events that happened after this time.  Defaults to: - 1 hour ago if granularity is `MINUTE`. - 7 days ago if granularity is `HOUR`. - 30 days ago if granularity is `DAY`.  This parameter exists in beta.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter events that happened before this time. Defaults to now if not set.  This parameter exists in beta.")] = None, granularity : Annotated[Optional[StrictStr], Field(description="The granularity to filter metrics to. Either `MINUTE`, `HOUR` or `DAY`.  Defaults to `MINUTE` if not set.  This parameter exists in beta.")] = None, **kwargs) -> ListDeliveryMetricsSummaryFromDestination200Response:  # noqa: E501
         """List Delivery Metrics Summary from Destination  # noqa: E501
 
-        Get an event delivery metrics summary from a Destination.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 7 days - Oldest possible start time: 7 days in the past  **Day**: - Max time range: 14 days - Oldest possible start time: 14 days in the past   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Get an event delivery metrics summary from a Destination.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 7 days - Oldest possible start time: 7 days in the past  **Day**: - Max time range: 14 days - Oldest possible start time: 14 days in the past  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -848,7 +848,7 @@ def list_delivery_metrics_summary_from_destination(self, destination_id : constr
     def list_delivery_metrics_summary_from_destination_with_http_info(self, destination_id : constr(strict=True), source_id : Annotated[StrictStr, Field(..., description="The id of the Source linked to the Destination.  Config API note: analogous to `parent`.  This parameter exists in beta.")], start_time : Annotated[Optional[StrictStr], Field(description="Filter events that happened after this time.  Defaults to: - 1 hour ago if granularity is `MINUTE`. - 7 days ago if granularity is `HOUR`. - 30 days ago if granularity is `DAY`.  This parameter exists in beta.")] = None, end_time : Annotated[Optional[StrictStr], Field(description="Filter events that happened before this time. Defaults to now if not set.  This parameter exists in beta.")] = None, granularity : Annotated[Optional[StrictStr], Field(description="The granularity to filter metrics to. Either `MINUTE`, `HOUR` or `DAY`.  Defaults to `MINUTE` if not set.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Delivery Metrics Summary from Destination  # noqa: E501
 
-        Get an event delivery metrics summary from a Destination.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 7 days - Oldest possible start time: 7 days in the past  **Day**: - Max time range: 14 days - Oldest possible start time: 14 days in the past   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        Get an event delivery metrics summary from a Destination.  Based on the granularity chosen, there are restrictions on the time range you can query:  **Minute**: - Max time range: 4 hours - Oldest possible start time: 48 hours in the past  **Hour**: - Max Time range: 7 days - Oldest possible start time: 7 days in the past  **Day**: - Max time range: 14 days - Oldest possible start time: 14 days in the past  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -982,7 +982,7 @@ def list_delivery_metrics_summary_from_destination_with_http_info(self, destinat
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_destinations(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in v1.")], **kwargs) -> ListDestinations200Response:  # noqa: E501
+    def list_destinations(self, pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in v1.")] = None, **kwargs) -> ListDestinations200Response:  # noqa: E501
         """List Destinations  # noqa: E501
 
         Returns a list of Destinations.  # noqa: E501
@@ -992,7 +992,7 @@ def list_destinations(self, pagination : Annotated[PaginationInput, Field(..., d
         >>> thread = api.list_destinations(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination params for the request.  This parameter exists in v1. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1012,7 +1012,7 @@ def list_destinations(self, pagination : Annotated[PaginationInput, Field(..., d
         return self.list_destinations_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_destinations_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_destinations_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Destinations  # noqa: E501
 
         Returns a list of Destinations.  # noqa: E501
@@ -1022,7 +1022,7 @@ def list_destinations_with_http_info(self, pagination : Annotated[PaginationInpu
         >>> thread = api.list_destinations_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Required pagination params for the request.  This parameter exists in v1. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1125,10 +1125,10 @@ def list_destinations_with_http_info(self, pagination : Annotated[PaginationInpu
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_subscriptions_from_destination(self, destination_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in alpha.")], **kwargs) -> ListSubscriptionsFromDestination200Response:  # noqa: E501
+    def list_subscriptions_from_destination(self, destination_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in alpha.")] = None, **kwargs) -> ListSubscriptionsFromDestination200Response:  # noqa: E501
         """List Subscriptions from Destination  # noqa: E501
 
-        Lists subscriptions for a Destination.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Lists subscriptions for a Destination.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -1137,7 +1137,7 @@ def list_subscriptions_from_destination(self, destination_id : constr(strict=Tru
 
         :param destination_id: (required)
         :type destination_id: str
-        :param pagination: Pagination options.  This parameter exists in alpha. (required)
+        :param pagination: Pagination options.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1157,10 +1157,10 @@ def list_subscriptions_from_destination(self, destination_id : constr(strict=Tru
         return self.list_subscriptions_from_destination_with_http_info(destination_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_subscriptions_from_destination_with_http_info(self, destination_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_subscriptions_from_destination_with_http_info(self, destination_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Subscriptions from Destination  # noqa: E501
 
-        Lists subscriptions for a Destination.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Lists subscriptions for a Destination.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -1169,7 +1169,7 @@ def list_subscriptions_from_destination_with_http_info(self, destination_id : co
 
         :param destination_id: (required)
         :type destination_id: str
-        :param pagination: Pagination options.  This parameter exists in alpha. (required)
+        :param pagination: Pagination options.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1279,7 +1279,7 @@ def list_subscriptions_from_destination_with_http_info(self, destination_id : co
     def remove_subscription_from_destination(self, destination_id : constr(strict=True), id : constr(strict=True), **kwargs) -> RemoveSubscriptionFromDestination200Response:  # noqa: E501
         """Remove Subscription from Destination  # noqa: E501
 
-        Deletes an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Deletes an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -1311,7 +1311,7 @@ def remove_subscription_from_destination(self, destination_id : constr(strict=Tr
     def remove_subscription_from_destination_with_http_info(self, destination_id : constr(strict=True), id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Remove Subscription from Destination  # noqa: E501
 
-        Deletes an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Deletes an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -1553,7 +1553,7 @@ def update_destination_with_http_info(self, destination_id : constr(strict=True)
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1588,7 +1588,7 @@ def update_destination_with_http_info(self, destination_id : constr(strict=True)
     def update_subscription_for_destination(self, destination_id : constr(strict=True), id : constr(strict=True), update_subscription_for_destination_alpha_input : UpdateSubscriptionForDestinationAlphaInput, **kwargs) -> UpdateSubscriptionForDestination200Response:  # noqa: E501
         """Update Subscription for Destination  # noqa: E501
 
-        Updates an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Updates an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -1622,7 +1622,7 @@ def update_subscription_for_destination(self, destination_id : constr(strict=Tru
     def update_subscription_for_destination_with_http_info(self, destination_id : constr(strict=True), id : constr(strict=True), update_subscription_for_destination_alpha_input : UpdateSubscriptionForDestinationAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Update Subscription for Destination  # noqa: E501
 
-        Updates an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Updates an existing Destination subscription.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 5 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
diff --git a/segment_public_api/api/edge_functions_api.py b/segment_public_api/api/edge_functions_api.py
index 7c3333c6c..45f7655b9 100644
--- a/segment_public_api/api/edge_functions_api.py
+++ b/segment_public_api/api/edge_functions_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -51,7 +51,7 @@ def __init__(self, api_client=None) -> None:
     def create_edge_functions(self, source_id : constr(strict=True), create_edge_functions_alpha_input : CreateEdgeFunctionsAlphaInput, **kwargs) -> CreateEdgeFunctions200Response:  # noqa: E501
         """Create Edge Functions  # noqa: E501
 
-        Create EdgeFunctions for your Source given a valid upload URL for an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Create EdgeFunctions for your Source given a valid upload URL for an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -83,7 +83,7 @@ def create_edge_functions(self, source_id : constr(strict=True), create_edge_fun
     def create_edge_functions_with_http_info(self, source_id : constr(strict=True), create_edge_functions_alpha_input : CreateEdgeFunctionsAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Create Edge Functions  # noqa: E501
 
-        Create EdgeFunctions for your Source given a valid upload URL for an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Create EdgeFunctions for your Source given a valid upload URL for an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -209,7 +209,7 @@ def create_edge_functions_with_http_info(self, source_id : constr(strict=True),
     def disable_edge_functions(self, source_id : constr(strict=True), **kwargs) -> DisableEdgeFunctions200Response:  # noqa: E501
         """Disable Edge Functions  # noqa: E501
 
-        Disable Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Disable Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -239,7 +239,7 @@ def disable_edge_functions(self, source_id : constr(strict=True), **kwargs) -> D
     def disable_edge_functions_with_http_info(self, source_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Disable Edge Functions  # noqa: E501
 
-        Disable Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Disable Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -352,7 +352,7 @@ def disable_edge_functions_with_http_info(self, source_id : constr(strict=True),
     def generate_upload_url_for_edge_functions(self, source_id : constr(strict=True), **kwargs) -> GenerateUploadURLForEdgeFunctions200Response:  # noqa: E501
         """Generate Upload URL for Edge Functions  # noqa: E501
 
-        Generate a temporary upload URL that can be used to upload an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Generate a temporary upload URL that can be used to upload an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -382,7 +382,7 @@ def generate_upload_url_for_edge_functions(self, source_id : constr(strict=True)
     def generate_upload_url_for_edge_functions_with_http_info(self, source_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Generate Upload URL for Edge Functions  # noqa: E501
 
-        Generate a temporary upload URL that can be used to upload an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Generate a temporary upload URL that can be used to upload an Edge Functions bundle.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -495,7 +495,7 @@ def generate_upload_url_for_edge_functions_with_http_info(self, source_id : cons
     def get_latest_from_edge_functions(self, source_id : constr(strict=True), **kwargs) -> GetLatestFromEdgeFunctions200Response:  # noqa: E501
         """Get Latest from Edge Functions  # noqa: E501
 
-        Get the latest Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Get the latest Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -525,7 +525,7 @@ def get_latest_from_edge_functions(self, source_id : constr(strict=True), **kwar
     def get_latest_from_edge_functions_with_http_info(self, source_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Get Latest from Edge Functions  # noqa: E501
 
-        Get the latest Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Get the latest Edge Functions for your Source.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Edge Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
diff --git a/segment_public_api/api/events_api.py b/segment_public_api/api/events_api.py
index ed73a37b0..68df1bd67 100644
--- a/segment_public_api/api/events_api.py
+++ b/segment_public_api/api/events_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,7 +22,7 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, conlist
 
-from typing import List, Optional
+from typing import Optional
 
 from segment_public_api.models.get_events_volume_from_workspace200_response import GetEventsVolumeFromWorkspace200Response
 from segment_public_api.models.pagination_input import PaginationInput
@@ -48,7 +48,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def get_events_volume_from_workspace(self, granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  This parameter exists in v1.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1.")], group_by : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A comma-delimited list of strings that represents the dimensions to group the result by. The options are: `eventName`, `eventType` and `source`.  This parameter exists in v1.")] = None, source_id : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given SourceIds.  This parameter exists in v1.")] = None, event_name : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given EventNames.  This parameter exists in v1.")] = None, event_type : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given EventTypes.  This parameter exists in v1.")] = None, app_version : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given AppVersions.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for event volume by Workspace.  This parameter exists in v1.")] = None, **kwargs) -> GetEventsVolumeFromWorkspace200Response:  # noqa: E501
+    def get_events_volume_from_workspace(self, granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  This parameter exists in v1.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings that represents the dimensions to group the result by. The options are: `eventName`, `eventType` and `source`.  This parameter exists in v1.")] = None, source_id : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given SourceIds.  This parameter exists in v1.")] = None, event_name : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given EventNames.  This parameter exists in v1.")] = None, event_type : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given EventTypes.  This parameter exists in v1.")] = None, app_version : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given AppVersions.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for event volume by Workspace.  This parameter exists in v1.")] = None, **kwargs) -> GetEventsVolumeFromWorkspace200Response:  # noqa: E501
         """Get Events Volume from Workspace  # noqa: E501
 
         Enumerates the Workspace event volumes over time in minute increments.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -94,7 +94,7 @@ def get_events_volume_from_workspace(self, granularity : Annotated[StrictStr, Fi
         return self.get_events_volume_from_workspace_with_http_info(granularity, start_time, end_time, group_by, source_id, event_name, event_type, app_version, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_events_volume_from_workspace_with_http_info(self, granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  This parameter exists in v1.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1.")], group_by : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A comma-delimited list of strings that represents the dimensions to group the result by. The options are: `eventName`, `eventType` and `source`.  This parameter exists in v1.")] = None, source_id : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given SourceIds.  This parameter exists in v1.")] = None, event_name : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given EventNames.  This parameter exists in v1.")] = None, event_type : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given EventTypes.  This parameter exists in v1.")] = None, app_version : Annotated[Optional[conlist(conlist(StrictStr))], Field(description="A list of strings which filters the results to the given AppVersions.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for event volume by Workspace.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+    def get_events_volume_from_workspace_with_http_info(self, granularity : Annotated[StrictStr, Field(..., description="The size of each bucket in the requested window.  This parameter exists in v1.")], start_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the beginning of the requested time frame, inclusive.  This parameter exists in v1.")], end_time : Annotated[StrictStr, Field(..., description="The ISO8601 formatted timestamp that corresponds to the end of the requested time frame, noninclusive. Segment recommends that you lag queries 1 minute behind clock time to reduce the risk for latency to impact the counts.  This parameter exists in v1.")], group_by : Annotated[Optional[conlist(StrictStr)], Field(description="A comma-delimited list of strings that represents the dimensions to group the result by. The options are: `eventName`, `eventType` and `source`.  This parameter exists in v1.")] = None, source_id : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given SourceIds.  This parameter exists in v1.")] = None, event_name : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given EventNames.  This parameter exists in v1.")] = None, event_type : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given EventTypes.  This parameter exists in v1.")] = None, app_version : Annotated[Optional[conlist(StrictStr)], Field(description="A list of strings which filters the results to the given AppVersions.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for event volume by Workspace.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Events Volume from Workspace  # noqa: E501
 
         Enumerates the Workspace event volumes over time in minute increments.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -200,23 +200,23 @@ def get_events_volume_from_workspace_with_http_info(self, granularity : Annotate
 
         if _params.get('group_by') is not None:  # noqa: E501
             _query_params.append(('groupBy', _params['group_by']))
-            _collection_formats['groupBy'] = 'csv'
+            _collection_formats['groupBy'] = 'multi'
 
         if _params.get('source_id') is not None:  # noqa: E501
             _query_params.append(('sourceId', _params['source_id']))
-            _collection_formats['sourceId'] = 'csv'
+            _collection_formats['sourceId'] = 'multi'
 
         if _params.get('event_name') is not None:  # noqa: E501
             _query_params.append(('eventName', _params['event_name']))
-            _collection_formats['eventName'] = 'csv'
+            _collection_formats['eventName'] = 'multi'
 
         if _params.get('event_type') is not None:  # noqa: E501
             _query_params.append(('eventType', _params['event_type']))
-            _collection_formats['eventType'] = 'csv'
+            _collection_formats['eventType'] = 'multi'
 
         if _params.get('app_version') is not None:  # noqa: E501
             _query_params.append(('appVersion', _params['app_version']))
-            _collection_formats['appVersion'] = 'csv'
+            _collection_formats['appVersion'] = 'multi'
 
         if _params.get('pagination') is not None:  # noqa: E501
             _query_params.append(('pagination', _params['pagination']))
diff --git a/segment_public_api/api/functions_api.py b/segment_public_api/api/functions_api.py
index 6b8d9e313..0cf028371 100644
--- a/segment_public_api/api/functions_api.py
+++ b/segment_public_api/api/functions_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, constr
 
+from typing import Optional
+
 from segment_public_api.models.create_function200_response import CreateFunction200Response
 from segment_public_api.models.create_function_deployment200_response import CreateFunctionDeployment200Response
 from segment_public_api.models.create_function_v1_input import CreateFunctionV1Input
@@ -182,7 +184,7 @@ def create_function_with_http_info(self, create_function_v1_input : CreateFuncti
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1230,7 +1232,7 @@ def get_insert_function_instance_with_http_info(self, instance_id : constr(stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_function_versions(self, function_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ListFunctionVersions200Response:  # noqa: E501
+    def list_function_versions(self, function_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ListFunctionVersions200Response:  # noqa: E501
         """List Function Versions  # noqa: E501
 
         Lists versions for a Function in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -1242,7 +1244,7 @@ def list_function_versions(self, function_id : constr(strict=True), pagination :
 
         :param function_id: (required)
         :type function_id: str
-        :param pagination: Pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1262,7 +1264,7 @@ def list_function_versions(self, function_id : constr(strict=True), pagination :
         return self.list_function_versions_with_http_info(function_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_function_versions_with_http_info(self, function_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_function_versions_with_http_info(self, function_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Function Versions  # noqa: E501
 
         Lists versions for a Function in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -1274,7 +1276,7 @@ def list_function_versions_with_http_info(self, function_id : constr(strict=True
 
         :param function_id: (required)
         :type function_id: str
-        :param pagination: Pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1381,20 +1383,20 @@ def list_function_versions_with_http_info(self, function_id : constr(strict=True
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_functions(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], resource_type : Annotated[StrictStr, Field(..., description="The Function type.  Config API note: equal to `type`.  This parameter exists in v1.")], **kwargs) -> ListFunctions200Response:  # noqa: E501
+    def list_functions(self, resource_type : Annotated[StrictStr, Field(..., description="The Function type.  Config API note: equal to `type`.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListFunctions200Response:  # noqa: E501
         """List Functions  # noqa: E501
 
         Lists all Functions in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_functions(pagination, resource_type, async_req=True)
+        >>> thread = api.list_functions(resource_type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param resource_type: The Function type.  Config API note: equal to `type`.  This parameter exists in v1. (required)
         :type resource_type: str
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -1410,23 +1412,23 @@ def list_functions(self, pagination : Annotated[PaginationInput, Field(..., desc
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_functions_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_functions_with_http_info(pagination, resource_type, **kwargs)  # noqa: E501
+        return self.list_functions_with_http_info(resource_type, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_functions_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in v1.")], resource_type : Annotated[StrictStr, Field(..., description="The Function type.  Config API note: equal to `type`.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_functions_with_http_info(self, resource_type : Annotated[StrictStr, Field(..., description="The Function type.  Config API note: equal to `type`.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Functions  # noqa: E501
 
         Lists all Functions in a Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_functions_with_http_info(pagination, resource_type, async_req=True)
+        >>> thread = api.list_functions_with_http_info(resource_type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param resource_type: The Function type.  Config API note: equal to `type`.  This parameter exists in v1. (required)
         :type resource_type: str
+        :param pagination: Pagination parameters.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -1455,8 +1457,8 @@ def list_functions_with_http_info(self, pagination : Annotated[PaginationInput,
         _params = locals()
 
         _all_params = [
-            'pagination',
-            'resource_type'
+            'resource_type',
+            'pagination'
         ]
         _all_params.extend(
             [
@@ -1532,20 +1534,20 @@ def list_functions_with_http_info(self, pagination : Annotated[PaginationInput,
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_insert_function_instances(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in alpha.")], function_id : Annotated[StrictStr, Field(..., description="The insert Function class id to lookup.  This parameter exists in alpha.")], **kwargs) -> ListInsertFunctionInstances200Response:  # noqa: E501
+    def list_insert_function_instances(self, function_id : Annotated[StrictStr, Field(..., description="The insert Function class id to lookup.  This parameter exists in alpha.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ListInsertFunctionInstances200Response:  # noqa: E501
         """List Insert Function Instances  # noqa: E501
 
         Lists all insert Function instances connected to the given insert Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_insert_function_instances(pagination, function_id, async_req=True)
+        >>> thread = api.list_insert_function_instances(function_id, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in alpha. (required)
-        :type pagination: PaginationInput
         :param function_id: The insert Function class id to lookup.  This parameter exists in alpha. (required)
         :type function_id: str
+        :param pagination: Pagination parameters.  This parameter exists in alpha.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -1561,23 +1563,23 @@ def list_insert_function_instances(self, pagination : Annotated[PaginationInput,
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_insert_function_instances_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_insert_function_instances_with_http_info(pagination, function_id, **kwargs)  # noqa: E501
+        return self.list_insert_function_instances_with_http_info(function_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_insert_function_instances_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination parameters.  This parameter exists in alpha.")], function_id : Annotated[StrictStr, Field(..., description="The insert Function class id to lookup.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_insert_function_instances_with_http_info(self, function_id : Annotated[StrictStr, Field(..., description="The insert Function class id to lookup.  This parameter exists in alpha.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Insert Function Instances  # noqa: E501
 
         Lists all insert Function instances connected to the given insert Function.    • In order to successfully call this endpoint, the specified Workspace needs to have the Functions feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_insert_function_instances_with_http_info(pagination, function_id, async_req=True)
+        >>> thread = api.list_insert_function_instances_with_http_info(function_id, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination parameters.  This parameter exists in alpha. (required)
-        :type pagination: PaginationInput
         :param function_id: The insert Function class id to lookup.  This parameter exists in alpha. (required)
         :type function_id: str
+        :param pagination: Pagination parameters.  This parameter exists in alpha.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -1606,8 +1608,8 @@ def list_insert_function_instances_with_http_info(self, pagination : Annotated[P
         _params = locals()
 
         _all_params = [
-            'pagination',
-            'function_id'
+            'function_id',
+            'pagination'
         ]
         _all_params.extend(
             [
@@ -1967,7 +1969,7 @@ def update_function_with_http_info(self, function_id : constr(strict=True), upda
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/iam_groups_api.py b/segment_public_api/api/iam_groups_api.py
index 18f1e730b..5022e63bf 100644
--- a/segment_public_api/api/iam_groups_api.py
+++ b/segment_public_api/api/iam_groups_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,7 +22,7 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, conlist, constr
 
-from typing import List
+from typing import Optional
 
 from segment_public_api.models.add_permissions_to_user_group200_response import AddPermissionsToUserGroup200Response
 from segment_public_api.models.add_permissions_to_user_group_v1_input import AddPermissionsToUserGroupV1Input
@@ -191,7 +191,7 @@ def add_permissions_to_user_group_with_http_info(self, user_group_id : constr(st
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -349,7 +349,7 @@ def add_users_to_user_group_with_http_info(self, user_group_id : constr(strict=T
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -499,7 +499,7 @@ def create_user_group_with_http_info(self, create_user_group_v1_input : CreateUs
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -817,7 +817,7 @@ def get_user_group_with_http_info(self, user_group_id : constr(strict=True), **k
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_invites_from_user_group(self, user_group_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for invites to the group.  This parameter exists in v1.")], **kwargs) -> ListInvitesFromUserGroup200Response:  # noqa: E501
+    def list_invites_from_user_group(self, user_group_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for invites to the group.  This parameter exists in v1.")] = None, **kwargs) -> ListInvitesFromUserGroup200Response:  # noqa: E501
         """List Invites from User Group  # noqa: E501
 
         Returns the emails of invitees to a user group.  # noqa: E501
@@ -829,7 +829,7 @@ def list_invites_from_user_group(self, user_group_id : constr(strict=True), pagi
 
         :param user_group_id: (required)
         :type user_group_id: str
-        :param pagination: Pagination for invites to the group.  This parameter exists in v1. (required)
+        :param pagination: Pagination for invites to the group.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -849,7 +849,7 @@ def list_invites_from_user_group(self, user_group_id : constr(strict=True), pagi
         return self.list_invites_from_user_group_with_http_info(user_group_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_invites_from_user_group_with_http_info(self, user_group_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for invites to the group.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_invites_from_user_group_with_http_info(self, user_group_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for invites to the group.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Invites from User Group  # noqa: E501
 
         Returns the emails of invitees to a user group.  # noqa: E501
@@ -861,7 +861,7 @@ def list_invites_from_user_group_with_http_info(self, user_group_id : constr(str
 
         :param user_group_id: (required)
         :type user_group_id: str
-        :param pagination: Pagination for invites to the group.  This parameter exists in v1. (required)
+        :param pagination: Pagination for invites to the group.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -968,7 +968,7 @@ def list_invites_from_user_group_with_http_info(self, user_group_id : constr(str
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_user_groups(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for user groups.  This parameter exists in v1.")], **kwargs) -> ListUserGroups200Response:  # noqa: E501
+    def list_user_groups(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for user groups.  This parameter exists in v1.")] = None, **kwargs) -> ListUserGroups200Response:  # noqa: E501
         """List User Groups  # noqa: E501
 
         Returns all user groups.  # noqa: E501
@@ -978,7 +978,7 @@ def list_user_groups(self, pagination : Annotated[PaginationInput, Field(..., de
         >>> thread = api.list_user_groups(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for user groups.  This parameter exists in v1. (required)
+        :param pagination: Pagination for user groups.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -998,7 +998,7 @@ def list_user_groups(self, pagination : Annotated[PaginationInput, Field(..., de
         return self.list_user_groups_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_user_groups_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for user groups.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_user_groups_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for user groups.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List User Groups  # noqa: E501
 
         Returns all user groups.  # noqa: E501
@@ -1008,7 +1008,7 @@ def list_user_groups_with_http_info(self, pagination : Annotated[PaginationInput
         >>> thread = api.list_user_groups_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for user groups.  This parameter exists in v1. (required)
+        :param pagination: Pagination for user groups.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1111,7 +1111,7 @@ def list_user_groups_with_http_info(self, pagination : Annotated[PaginationInput
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_users_from_user_group(self, user_group_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for members of a group.  This parameter exists in v1.")], **kwargs) -> ListUsersFromUserGroup200Response:  # noqa: E501
+    def list_users_from_user_group(self, user_group_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for members of a group.  This parameter exists in v1.")] = None, **kwargs) -> ListUsersFromUserGroup200Response:  # noqa: E501
         """List Users from User Group  # noqa: E501
 
         Returns users belonging to a user group.  # noqa: E501
@@ -1123,7 +1123,7 @@ def list_users_from_user_group(self, user_group_id : constr(strict=True), pagina
 
         :param user_group_id: (required)
         :type user_group_id: str
-        :param pagination: Pagination for members of a group.  This parameter exists in v1. (required)
+        :param pagination: Pagination for members of a group.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1143,7 +1143,7 @@ def list_users_from_user_group(self, user_group_id : constr(strict=True), pagina
         return self.list_users_from_user_group_with_http_info(user_group_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_users_from_user_group_with_http_info(self, user_group_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for members of a group.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_users_from_user_group_with_http_info(self, user_group_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for members of a group.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Users from User Group  # noqa: E501
 
         Returns users belonging to a user group.  # noqa: E501
@@ -1155,7 +1155,7 @@ def list_users_from_user_group_with_http_info(self, user_group_id : constr(stric
 
         :param user_group_id: (required)
         :type user_group_id: str
-        :param pagination: Pagination for members of a group.  This parameter exists in v1. (required)
+        :param pagination: Pagination for members of a group.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1262,7 +1262,7 @@ def list_users_from_user_group_with_http_info(self, user_group_id : constr(stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def remove_users_from_user_group(self, user_group_id : constr(strict=True), emails : Annotated[conlist(conlist(StrictStr)), Field(..., description="The list of emails to remove from the user group.  This parameter exists in v1.")], **kwargs) -> RemoveUsersFromUserGroup200Response:  # noqa: E501
+    def remove_users_from_user_group(self, user_group_id : constr(strict=True), emails : Annotated[conlist(StrictStr), Field(..., description="The list of emails to remove from the user group.  This parameter exists in v1.")], **kwargs) -> RemoveUsersFromUserGroup200Response:  # noqa: E501
         """Remove Users from User Group  # noqa: E501
 
         Removes one or multiple users or invites from a user group by email.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Group Memberships Deleted * User Removed From User Group          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -1294,7 +1294,7 @@ def remove_users_from_user_group(self, user_group_id : constr(strict=True), emai
         return self.remove_users_from_user_group_with_http_info(user_group_id, emails, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def remove_users_from_user_group_with_http_info(self, user_group_id : constr(strict=True), emails : Annotated[conlist(conlist(StrictStr)), Field(..., description="The list of emails to remove from the user group.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def remove_users_from_user_group_with_http_info(self, user_group_id : constr(strict=True), emails : Annotated[conlist(StrictStr), Field(..., description="The list of emails to remove from the user group.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
         """Remove Users from User Group  # noqa: E501
 
         Removes one or multiple users or invites from a user group by email.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Group Memberships Deleted * User Removed From User Group          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -1373,7 +1373,7 @@ def remove_users_from_user_group_with_http_info(self, user_group_id : constr(str
         _query_params = []
         if _params.get('emails') is not None:  # noqa: E501
             _query_params.append(('emails', _params['emails']))
-            _collection_formats['emails'] = 'csv'
+            _collection_formats['emails'] = 'multi'
 
         # process the header parameters
         _header_params = dict(_params.get('_headers', {}))
@@ -1540,7 +1540,7 @@ def replace_permissions_for_user_group_with_http_info(self, user_group_id : cons
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1698,7 +1698,7 @@ def replace_users_in_user_group_with_http_info(self, user_group_id : constr(stri
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1856,7 +1856,7 @@ def update_user_group_with_http_info(self, user_group_id : constr(strict=True),
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/iam_roles_api.py b/segment_public_api/api/iam_roles_api.py
index 902beefcd..3ff205620 100644
--- a/segment_public_api/api/iam_roles_api.py
+++ b/segment_public_api/api/iam_roles_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field
 
+from typing import Optional
+
 from segment_public_api.models.list_roles200_response import ListRoles200Response
 from segment_public_api.models.pagination_input import PaginationInput
 
@@ -46,7 +48,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def list_roles(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for roles.  This parameter exists in v1.")], **kwargs) -> ListRoles200Response:  # noqa: E501
+    def list_roles(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for roles.  This parameter exists in v1.")] = None, **kwargs) -> ListRoles200Response:  # noqa: E501
         """List Roles  # noqa: E501
 
         Returns a list of Roles available to apply to permissions for users and/or groups.  # noqa: E501
@@ -56,7 +58,7 @@ def list_roles(self, pagination : Annotated[PaginationInput, Field(..., descript
         >>> thread = api.list_roles(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for roles.  This parameter exists in v1. (required)
+        :param pagination: Pagination for roles.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -76,7 +78,7 @@ def list_roles(self, pagination : Annotated[PaginationInput, Field(..., descript
         return self.list_roles_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_roles_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for roles.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_roles_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for roles.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Roles  # noqa: E501
 
         Returns a list of Roles available to apply to permissions for users and/or groups.  # noqa: E501
@@ -86,7 +88,7 @@ def list_roles_with_http_info(self, pagination : Annotated[PaginationInput, Fiel
         >>> thread = api.list_roles_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for roles.  This parameter exists in v1. (required)
+        :param pagination: Pagination for roles.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
diff --git a/segment_public_api/api/iam_users_api.py b/segment_public_api/api/iam_users_api.py
index 22eec2269..b51e7acaf 100644
--- a/segment_public_api/api/iam_users_api.py
+++ b/segment_public_api/api/iam_users_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,11 +22,11 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, conlist, constr
 
-from typing import List
+from typing import Optional
 
 from segment_public_api.models.add_permissions_to_user200_response import AddPermissionsToUser200Response
 from segment_public_api.models.add_permissions_to_user_v1_input import AddPermissionsToUserV1Input
-from segment_public_api.models.create_invites200_response import CreateInvites200Response
+from segment_public_api.models.create_invites201_response import CreateInvites201Response
 from segment_public_api.models.create_invites_v1_input import CreateInvitesV1Input
 from segment_public_api.models.delete_invites200_response import DeleteInvites200Response
 from segment_public_api.models.delete_users200_response import DeleteUsers200Response
@@ -185,7 +185,7 @@ def add_permissions_to_user_with_http_info(self, user_id : constr(strict=True),
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -217,7 +217,7 @@ def add_permissions_to_user_with_http_info(self, user_id : constr(strict=True),
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def create_invites(self, create_invites_v1_input : CreateInvitesV1Input, **kwargs) -> CreateInvites200Response:  # noqa: E501
+    def create_invites(self, create_invites_v1_input : CreateInvitesV1Input, **kwargs) -> CreateInvites201Response:  # noqa: E501
         """Create Invites  # noqa: E501
 
         Invites a list of users to join a Workspace.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Non-Segment User Invited to Workspace * Policy Created * New Segment User Invited to Workspace  Config API omitted fields: - `parent`          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -238,7 +238,7 @@ def create_invites(self, create_invites_v1_input : CreateInvitesV1Input, **kwarg
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateInvites200Response
+        :rtype: CreateInvites201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -281,7 +281,7 @@ def create_invites_with_http_info(self, create_invites_v1_input : CreateInvitesV
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateInvites200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateInvites201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -335,7 +335,7 @@ def create_invites_with_http_info(self, create_invites_v1_input : CreateInvitesV
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -343,7 +343,7 @@ def create_invites_with_http_info(self, create_invites_v1_input : CreateInvitesV
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateInvites200Response",
+            '201': "CreateInvites201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
@@ -367,7 +367,7 @@ def create_invites_with_http_info(self, create_invites_v1_input : CreateInvitesV
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def delete_invites(self, emails : Annotated[conlist(conlist(StrictStr)), Field(..., description="The list of emails to delete invites for.  This parameter exists in v1.")], **kwargs) -> DeleteInvites200Response:  # noqa: E501
+    def delete_invites(self, emails : Annotated[conlist(StrictStr), Field(..., description="The list of emails to delete invites for.  This parameter exists in v1.")], **kwargs) -> DeleteInvites200Response:  # noqa: E501
         """Delete Invites  # noqa: E501
 
         Removes a list of invitations to join a Workspace.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Invite Deleted * Group Memberships Deleted          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -397,7 +397,7 @@ def delete_invites(self, emails : Annotated[conlist(conlist(StrictStr)), Field(.
         return self.delete_invites_with_http_info(emails, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def delete_invites_with_http_info(self, emails : Annotated[conlist(conlist(StrictStr)), Field(..., description="The list of emails to delete invites for.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def delete_invites_with_http_info(self, emails : Annotated[conlist(StrictStr), Field(..., description="The list of emails to delete invites for.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
         """Delete Invites  # noqa: E501
 
         Removes a list of invitations to join a Workspace.    • When called, this endpoint may generate one or more of the following [audit trail](/tag/Audit-Trail) events:* Invite Deleted * Group Memberships Deleted          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -470,7 +470,7 @@ def delete_invites_with_http_info(self, emails : Annotated[conlist(conlist(Stric
         _query_params = []
         if _params.get('emails') is not None:  # noqa: E501
             _query_params.append(('emails', _params['emails']))
-            _collection_formats['emails'] = 'csv'
+            _collection_formats['emails'] = 'multi'
 
         # process the header parameters
         _header_params = dict(_params.get('_headers', {}))
@@ -511,7 +511,7 @@ def delete_invites_with_http_info(self, emails : Annotated[conlist(conlist(Stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def delete_users(self, user_ids : Annotated[conlist(conlist(StrictStr)), Field(..., description="The ids of the users to remove.  This parameter exists in v1.")], **kwargs) -> DeleteUsers200Response:  # noqa: E501
+    def delete_users(self, user_ids : Annotated[conlist(StrictStr), Field(..., description="The ids of the users to remove.  This parameter exists in v1.")], **kwargs) -> DeleteUsers200Response:  # noqa: E501
         """Delete Users  # noqa: E501
 
         Removes one or multiple users.    • When called, this endpoint may generate the `Group Memberships Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -541,7 +541,7 @@ def delete_users(self, user_ids : Annotated[conlist(conlist(StrictStr)), Field(.
         return self.delete_users_with_http_info(user_ids, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def delete_users_with_http_info(self, user_ids : Annotated[conlist(conlist(StrictStr)), Field(..., description="The ids of the users to remove.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def delete_users_with_http_info(self, user_ids : Annotated[conlist(StrictStr), Field(..., description="The ids of the users to remove.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
         """Delete Users  # noqa: E501
 
         Removes one or multiple users.    • When called, this endpoint may generate the `Group Memberships Deleted` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -614,7 +614,7 @@ def delete_users_with_http_info(self, user_ids : Annotated[conlist(conlist(Stric
         _query_params = []
         if _params.get('user_ids') is not None:  # noqa: E501
             _query_params.append(('userIds', _params['user_ids']))
-            _collection_formats['userIds'] = 'csv'
+            _collection_formats['userIds'] = 'multi'
 
         # process the header parameters
         _header_params = dict(_params.get('_headers', {}))
@@ -798,7 +798,7 @@ def get_user_with_http_info(self, user_id : constr(strict=True), **kwargs) -> Ap
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_invites(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListInvites200Response:  # noqa: E501
+    def list_invites(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListInvites200Response:  # noqa: E501
         """List Invites  # noqa: E501
 
         Returns a list of invitations to join a Workspace.  Config API omitted fields: - `parent`   # noqa: E501
@@ -808,7 +808,7 @@ def list_invites(self, pagination : Annotated[PaginationInput, Field(..., descri
         >>> thread = api.list_invites(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -828,7 +828,7 @@ def list_invites(self, pagination : Annotated[PaginationInput, Field(..., descri
         return self.list_invites_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_invites_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_invites_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Invites  # noqa: E501
 
         Returns a list of invitations to join a Workspace.  Config API omitted fields: - `parent`   # noqa: E501
@@ -838,7 +838,7 @@ def list_invites_with_http_info(self, pagination : Annotated[PaginationInput, Fi
         >>> thread = api.list_invites_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -941,7 +941,7 @@ def list_invites_with_http_info(self, pagination : Annotated[PaginationInput, Fi
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_user_groups_from_user(self, user_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for groups.  This parameter exists in v1.")], **kwargs) -> ListUserGroupsFromUser200Response:  # noqa: E501
+    def list_user_groups_from_user(self, user_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for groups.  This parameter exists in v1.")] = None, **kwargs) -> ListUserGroupsFromUser200Response:  # noqa: E501
         """List User Groups from User  # noqa: E501
 
         Returns all groups a user belongs to.  # noqa: E501
@@ -953,7 +953,7 @@ def list_user_groups_from_user(self, user_id : constr(strict=True), pagination :
 
         :param user_id: (required)
         :type user_id: str
-        :param pagination: Pagination for groups.  This parameter exists in v1. (required)
+        :param pagination: Pagination for groups.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -973,7 +973,7 @@ def list_user_groups_from_user(self, user_id : constr(strict=True), pagination :
         return self.list_user_groups_from_user_with_http_info(user_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_user_groups_from_user_with_http_info(self, user_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination for groups.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_user_groups_from_user_with_http_info(self, user_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for groups.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List User Groups from User  # noqa: E501
 
         Returns all groups a user belongs to.  # noqa: E501
@@ -985,7 +985,7 @@ def list_user_groups_from_user_with_http_info(self, user_id : constr(strict=True
 
         :param user_id: (required)
         :type user_id: str
-        :param pagination: Pagination for groups.  This parameter exists in v1. (required)
+        :param pagination: Pagination for groups.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1092,7 +1092,7 @@ def list_user_groups_from_user_with_http_info(self, user_id : constr(strict=True
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_users(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for users.  This parameter exists in v1.")], **kwargs) -> ListUsers200Response:  # noqa: E501
+    def list_users(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for users.  This parameter exists in v1.")] = None, **kwargs) -> ListUsers200Response:  # noqa: E501
         """List Users  # noqa: E501
 
         Returns a list of users with access to the Workspace.  # noqa: E501
@@ -1102,7 +1102,7 @@ def list_users(self, pagination : Annotated[PaginationInput, Field(..., descript
         >>> thread = api.list_users(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for users.  This parameter exists in v1. (required)
+        :param pagination: Pagination for users.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1122,7 +1122,7 @@ def list_users(self, pagination : Annotated[PaginationInput, Field(..., descript
         return self.list_users_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_users_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination for users.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_users_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination for users.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Users  # noqa: E501
 
         Returns a list of users with access to the Workspace.  # noqa: E501
@@ -1132,7 +1132,7 @@ def list_users_with_http_info(self, pagination : Annotated[PaginationInput, Fiel
         >>> thread = api.list_users_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination for users.  This parameter exists in v1. (required)
+        :param pagination: Pagination for users.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1361,7 +1361,7 @@ def replace_permissions_for_user_with_http_info(self, user_id : constr(strict=Tr
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/labels_api.py b/segment_public_api/api/labels_api.py
index 025fc9c31..8eda75cd7 100644
--- a/segment_public_api/api/labels_api.py
+++ b/segment_public_api/api/labels_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,7 +21,7 @@
 
 from pydantic import constr
 
-from segment_public_api.models.create_label200_response import CreateLabel200Response
+from segment_public_api.models.create_label201_response import CreateLabel201Response
 from segment_public_api.models.create_label_v1_input import CreateLabelV1Input
 from segment_public_api.models.delete_label200_response import DeleteLabel200Response
 from segment_public_api.models.list_labels200_response import ListLabels200Response
@@ -47,7 +47,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def create_label(self, create_label_v1_input : CreateLabelV1Input, **kwargs) -> CreateLabel200Response:  # noqa: E501
+    def create_label(self, create_label_v1_input : CreateLabelV1Input, **kwargs) -> CreateLabel201Response:  # noqa: E501
         """Create Label  # noqa: E501
 
         Creates a new label.    • When called, this endpoint may generate the `Label Created` event in the [audit trail](/tag/Audit-Trail).          The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -68,7 +68,7 @@ def create_label(self, create_label_v1_input : CreateLabelV1Input, **kwargs) ->
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateLabel200Response
+        :rtype: CreateLabel201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -111,7 +111,7 @@ def create_label_with_http_info(self, create_label_v1_input : CreateLabelV1Input
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateLabel200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateLabel201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -165,7 +165,7 @@ def create_label_with_http_info(self, create_label_v1_input : CreateLabelV1Input
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -173,7 +173,7 @@ def create_label_with_http_info(self, create_label_v1_input : CreateLabelV1Input
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateLabel200Response",
+            '201': "CreateLabel201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
diff --git a/segment_public_api/api/monthly_tracked_users_api.py b/segment_public_api/api/monthly_tracked_users_api.py
index e70f7efc2..49d7f889f 100644
--- a/segment_public_api/api/monthly_tracked_users_api.py
+++ b/segment_public_api/api/monthly_tracked_users_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr
 
+from typing import Optional
+
 from segment_public_api.models.get_daily_per_source_mtu_usage200_response import GetDailyPerSourceMTUUsage200Response
 from segment_public_api.models.get_daily_workspace_mtu_usage200_response import GetDailyWorkspaceMTUUsage200Response
 from segment_public_api.models.pagination_input import PaginationInput
@@ -47,7 +49,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def get_daily_per_source_mtu_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for per Source MTU counts.  This parameter exists in v1.")], **kwargs) -> GetDailyPerSourceMTUUsage200Response:  # noqa: E501
+    def get_daily_per_source_mtu_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for per Source MTU counts.  This parameter exists in v1.")] = None, **kwargs) -> GetDailyPerSourceMTUUsage200Response:  # noqa: E501
         """Get Daily Per Source MTU Usage  # noqa: E501
 
         Provides daily cumulative per-source MTU counts for a usage period.  # noqa: E501
@@ -59,7 +61,7 @@ def get_daily_per_source_mtu_usage(self, period : Annotated[StrictStr, Field(...
 
         :param period: The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for per Source MTU counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for per Source MTU counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -79,7 +81,7 @@ def get_daily_per_source_mtu_usage(self, period : Annotated[StrictStr, Field(...
         return self.get_daily_per_source_mtu_usage_with_http_info(period, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_daily_per_source_mtu_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for per Source MTU counts.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_daily_per_source_mtu_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for per Source MTU counts.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Daily Per Source MTU Usage  # noqa: E501
 
         Provides daily cumulative per-source MTU counts for a usage period.  # noqa: E501
@@ -91,7 +93,7 @@ def get_daily_per_source_mtu_usage_with_http_info(self, period : Annotated[Stric
 
         :param period: The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for per Source MTU counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for per Source MTU counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -198,7 +200,7 @@ def get_daily_per_source_mtu_usage_with_http_info(self, period : Annotated[Stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_daily_workspace_mtu_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for Workspace MTU counts.  This parameter exists in v1.")], **kwargs) -> GetDailyWorkspaceMTUUsage200Response:  # noqa: E501
+    def get_daily_workspace_mtu_usage(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for Workspace MTU counts.  This parameter exists in v1.")] = None, **kwargs) -> GetDailyWorkspaceMTUUsage200Response:  # noqa: E501
         """Get Daily Workspace MTU Usage  # noqa: E501
 
         Provides daily cumulative MTU counts for a usage period.  # noqa: E501
@@ -210,7 +212,7 @@ def get_daily_workspace_mtu_usage(self, period : Annotated[StrictStr, Field(...,
 
         :param period: The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for Workspace MTU counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for Workspace MTU counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -230,7 +232,7 @@ def get_daily_workspace_mtu_usage(self, period : Annotated[StrictStr, Field(...,
         return self.get_daily_workspace_mtu_usage_with_http_info(period, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_daily_workspace_mtu_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[PaginationInput, Field(..., description="Pagination input for Workspace MTU counts.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def get_daily_workspace_mtu_usage_with_http_info(self, period : Annotated[StrictStr, Field(..., description="The start of the usage month, in the ISO-8601 format.  This parameter exists in v1.")], pagination : Annotated[Optional[PaginationInput], Field(description="Pagination input for Workspace MTU counts.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """Get Daily Workspace MTU Usage  # noqa: E501
 
         Provides daily cumulative MTU counts for a usage period.  # noqa: E501
@@ -242,7 +244,7 @@ def get_daily_workspace_mtu_usage_with_http_info(self, period : Annotated[Strict
 
         :param period: The start of the usage month, in the ISO-8601 format.  This parameter exists in v1. (required)
         :type period: str
-        :param pagination: Pagination input for Workspace MTU counts.  This parameter exists in v1. (required)
+        :param pagination: Pagination input for Workspace MTU counts.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
diff --git a/segment_public_api/api/profiles_sync_api.py b/segment_public_api/api/profiles_sync_api.py
index 5808c43ec..1870b03c1 100644
--- a/segment_public_api/api/profiles_sync_api.py
+++ b/segment_public_api/api/profiles_sync_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -24,7 +24,7 @@
 
 from typing import Optional
 
-from segment_public_api.models.create_profiles_warehouse200_response import CreateProfilesWarehouse200Response
+from segment_public_api.models.create_profiles_warehouse201_response import CreateProfilesWarehouse201Response
 from segment_public_api.models.create_profiles_warehouse_alpha_input import CreateProfilesWarehouseAlphaInput
 from segment_public_api.models.list_profiles_warehouse_in_space200_response import ListProfilesWarehouseInSpace200Response
 from segment_public_api.models.list_selective_syncs_from_warehouse_and_space200_response import ListSelectiveSyncsFromWarehouseAndSpace200Response
@@ -56,7 +56,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def create_profiles_warehouse(self, space_id : constr(strict=True), create_profiles_warehouse_alpha_input : CreateProfilesWarehouseAlphaInput, **kwargs) -> CreateProfilesWarehouse200Response:  # noqa: E501
+    def create_profiles_warehouse(self, space_id : constr(strict=True), create_profiles_warehouse_alpha_input : CreateProfilesWarehouseAlphaInput, **kwargs) -> CreateProfilesWarehouse201Response:  # noqa: E501
         """Create Profiles Warehouse  # noqa: E501
 
         Creates a new Profiles Warehouse.    • When called, this endpoint may generate the `Profiles Sync Warehouse Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
@@ -79,7 +79,7 @@ def create_profiles_warehouse(self, space_id : constr(strict=True), create_profi
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateProfilesWarehouse200Response
+        :rtype: CreateProfilesWarehouse201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -124,7 +124,7 @@ def create_profiles_warehouse_with_http_info(self, space_id : constr(strict=True
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateProfilesWarehouse200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateProfilesWarehouse201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -190,7 +190,7 @@ def create_profiles_warehouse_with_http_info(self, space_id : constr(strict=True
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateProfilesWarehouse200Response",
+            '201': "CreateProfilesWarehouse201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
@@ -365,7 +365,7 @@ def list_profiles_warehouse_in_space_with_http_info(self, space_id : constr(stri
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_selective_syncs_from_warehouse_and_space(self, space_id : constr(strict=True), warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ListSelectiveSyncsFromWarehouseAndSpace200Response:  # noqa: E501
+    def list_selective_syncs_from_warehouse_and_space(self, space_id : constr(strict=True), warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ListSelectiveSyncsFromWarehouseAndSpace200Response:  # noqa: E501
         """List Selective Syncs from Warehouse And Space  # noqa: E501
 
         Returns the schema for a Space Warehouse connection, including Collections and Properties.  # noqa: E501
@@ -379,7 +379,7 @@ def list_selective_syncs_from_warehouse_and_space(self, space_id : constr(strict
         :type space_id: str
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -399,7 +399,7 @@ def list_selective_syncs_from_warehouse_and_space(self, space_id : constr(strict
         return self.list_selective_syncs_from_warehouse_and_space_with_http_info(space_id, warehouse_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_selective_syncs_from_warehouse_and_space_with_http_info(self, space_id : constr(strict=True), warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_selective_syncs_from_warehouse_and_space_with_http_info(self, space_id : constr(strict=True), warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Selective Syncs from Warehouse And Space  # noqa: E501
 
         Returns the schema for a Space Warehouse connection, including Collections and Properties.  # noqa: E501
@@ -413,7 +413,7 @@ def list_selective_syncs_from_warehouse_and_space_with_http_info(self, space_id
         :type space_id: str
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
diff --git a/segment_public_api/api/reverse_etl_api.py b/segment_public_api/api/reverse_etl_api.py
index c95d1c6cc..ea1c085f9 100644
--- a/segment_public_api/api/reverse_etl_api.py
+++ b/segment_public_api/api/reverse_etl_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -20,12 +20,20 @@
 from pydantic import validate_arguments, ValidationError
 
 from typing_extensions import Annotated
-from pydantic import Field, constr
+from pydantic import Field, StrictFloat, StrictInt, StrictStr, constr
 
-from segment_public_api.models.create_reverse_etl_model200_response import CreateReverseEtlModel200Response
+from typing import Optional, Union
+
+from segment_public_api.models.cancel_reverse_etl_sync_for_model200_response import CancelReverseETLSyncForModel200Response
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_input import CancelReverseETLSyncForModelInput
+from segment_public_api.models.create_reverse_etl_manual_sync200_response import CreateReverseETLManualSync200Response
+from segment_public_api.models.create_reverse_etl_manual_sync_input import CreateReverseETLManualSyncInput
+from segment_public_api.models.create_reverse_etl_model201_response import CreateReverseEtlModel201Response
 from segment_public_api.models.create_reverse_etl_model_input import CreateReverseEtlModelInput
 from segment_public_api.models.delete_reverse_etl_model200_response import DeleteReverseEtlModel200Response
+from segment_public_api.models.get_reverse_etl_sync_status200_response import GetReverseETLSyncStatus200Response
 from segment_public_api.models.get_reverse_etl_model200_response import GetReverseEtlModel200Response
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response import ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
 from segment_public_api.models.list_reverse_etl_models200_response import ListReverseEtlModels200Response
 from segment_public_api.models.pagination_input import PaginationInput
 from segment_public_api.models.update_reverse_etl_model200_response import UpdateReverseEtlModel200Response
@@ -43,27 +51,493 @@ class ReverseETLApi:
     """NOTE: This class is auto generated by OpenAPI Generator
     Ref: https://openapi-generator.tech
 
-    Do not edit the class manually.
-    """
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def cancel_reverse_etl_sync_for_model(self, model_id : constr(strict=True), sync_id : constr(strict=True), cancel_reverse_etl_sync_for_model_input : CancelReverseETLSyncForModelInput, **kwargs) -> CancelReverseETLSyncForModel200Response:  # noqa: E501
+        """Cancel Reverse ETL Sync for Model  # noqa: E501
+
+        Cancels a sync for a Reverse ETL Connection. It might take a few seconds to completely cancel the sync.   Will return an error if the sync is already completed or cancelled.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.cancel_reverse_etl_sync_for_model(model_id, sync_id, cancel_reverse_etl_sync_for_model_input, async_req=True)
+        >>> result = thread.get()
+
+        :param model_id: (required)
+        :type model_id: str
+        :param sync_id: (required)
+        :type sync_id: str
+        :param cancel_reverse_etl_sync_for_model_input: (required)
+        :type cancel_reverse_etl_sync_for_model_input: CancelReverseETLSyncForModelInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CancelReverseETLSyncForModel200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the cancel_reverse_etl_sync_for_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.cancel_reverse_etl_sync_for_model_with_http_info(model_id, sync_id, cancel_reverse_etl_sync_for_model_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def cancel_reverse_etl_sync_for_model_with_http_info(self, model_id : constr(strict=True), sync_id : constr(strict=True), cancel_reverse_etl_sync_for_model_input : CancelReverseETLSyncForModelInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Cancel Reverse ETL Sync for Model  # noqa: E501
+
+        Cancels a sync for a Reverse ETL Connection. It might take a few seconds to completely cancel the sync.   Will return an error if the sync is already completed or cancelled.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.cancel_reverse_etl_sync_for_model_with_http_info(model_id, sync_id, cancel_reverse_etl_sync_for_model_input, async_req=True)
+        >>> result = thread.get()
+
+        :param model_id: (required)
+        :type model_id: str
+        :param sync_id: (required)
+        :type sync_id: str
+        :param cancel_reverse_etl_sync_for_model_input: (required)
+        :type cancel_reverse_etl_sync_for_model_input: CancelReverseETLSyncForModelInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CancelReverseETLSyncForModel200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'model_id',
+            'sync_id',
+            'cancel_reverse_etl_sync_for_model_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method cancel_reverse_etl_sync_for_model" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['model_id']:
+            _path_params['modelId'] = _params['model_id']
+
+        if _params['sync_id']:
+            _path_params['syncId'] = _params['sync_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['cancel_reverse_etl_sync_for_model_input'] is not None:
+            _body_params = _params['cancel_reverse_etl_sync_for_model_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CancelReverseETLSyncForModel200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/reverse-etl-models/{modelId}/syncs/{syncId}/cancel', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def create_reverse_etl_manual_sync(self, create_reverse_etl_manual_sync_input : CreateReverseETLManualSyncInput, **kwargs) -> CreateReverseETLManualSync200Response:  # noqa: E501
+        """Create Reverse ETL Manual Sync  # noqa: E501
+
+        Triggers a manual sync for a Reverse ETL Connection.   In the request body, the `subscription id` is the id that follows after `/mappings/` portion in the URL of the sync.   For example, the `subscription id` would be `2` for this sync: https://app.Segment.com/example-workspace/reverse-etl/destinations/example-destination/sources/example-source/instances/1/mappings/2/source-id/3/model-id/4/sync-details   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_reverse_etl_manual_sync(create_reverse_etl_manual_sync_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_reverse_etl_manual_sync_input: (required)
+        :type create_reverse_etl_manual_sync_input: CreateReverseETLManualSyncInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateReverseETLManualSync200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_reverse_etl_manual_sync_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_reverse_etl_manual_sync_with_http_info(create_reverse_etl_manual_sync_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_reverse_etl_manual_sync_with_http_info(self, create_reverse_etl_manual_sync_input : CreateReverseETLManualSyncInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Reverse ETL Manual Sync  # noqa: E501
+
+        Triggers a manual sync for a Reverse ETL Connection.   In the request body, the `subscription id` is the id that follows after `/mappings/` portion in the URL of the sync.   For example, the `subscription id` would be `2` for this sync: https://app.Segment.com/example-workspace/reverse-etl/destinations/example-destination/sources/example-source/instances/1/mappings/2/source-id/3/model-id/4/sync-details   The rate limit for this endpoint is 20 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_reverse_etl_manual_sync_with_http_info(create_reverse_etl_manual_sync_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_reverse_etl_manual_sync_input: (required)
+        :type create_reverse_etl_manual_sync_input: CreateReverseETLManualSyncInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateReverseETLManualSync200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'create_reverse_etl_manual_sync_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_reverse_etl_manual_sync" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_reverse_etl_manual_sync_input'] is not None:
+            _body_params = _params['create_reverse_etl_manual_sync_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateReverseETLManualSync200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/reverse-etl-syncs', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def create_reverse_etl_model(self, create_reverse_etl_model_input : CreateReverseEtlModelInput, **kwargs) -> CreateReverseEtlModel201Response:  # noqa: E501
+        """Create Reverse Etl Model  # noqa: E501
+
+        Creates a new Reverse ETL Model.          • When called, this endpoint may generate the `Model Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_reverse_etl_model(create_reverse_etl_model_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_reverse_etl_model_input: (required)
+        :type create_reverse_etl_model_input: CreateReverseEtlModelInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateReverseEtlModel201Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_reverse_etl_model_with_http_info(create_reverse_etl_model_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input : CreateReverseEtlModelInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Reverse Etl Model  # noqa: E501
+
+        Creates a new Reverse ETL Model.          • When called, this endpoint may generate the `Model Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_reverse_etl_model_with_http_info(create_reverse_etl_model_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_reverse_etl_model_input: (required)
+        :type create_reverse_etl_model_input: CreateReverseEtlModelInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateReverseEtlModel201Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'create_reverse_etl_model_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_reverse_etl_model" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_reverse_etl_model_input'] is not None:
+            _body_params = _params['create_reverse_etl_model_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '201': "CreateReverseEtlModel201Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
 
-    def __init__(self, api_client=None) -> None:
-        if api_client is None:
-            api_client = ApiClient.get_default()
-        self.api_client = api_client
+        return self.api_client.call_api(
+            '/reverse-etl-models', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def create_reverse_etl_model(self, create_reverse_etl_model_input : CreateReverseEtlModelInput, **kwargs) -> CreateReverseEtlModel200Response:  # noqa: E501
-        """Create Reverse Etl Model  # noqa: E501
+    def delete_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) -> DeleteReverseEtlModel200Response:  # noqa: E501
+        """Delete Reverse Etl Model  # noqa: E501
 
-        Creates a new Reverse ETL Model.          • When called, this endpoint may generate the `Model Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Deletes an existing Model.          • When called, this endpoint may generate the `Model Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.create_reverse_etl_model(create_reverse_etl_model_input, async_req=True)
+        >>> thread = api.delete_reverse_etl_model(model_id, async_req=True)
         >>> result = thread.get()
 
-        :param create_reverse_etl_model_input: (required)
-        :type create_reverse_etl_model_input: CreateReverseEtlModelInput
+        :param model_id: (required)
+        :type model_id: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -73,27 +547,27 @@ def create_reverse_etl_model(self, create_reverse_etl_model_input : CreateRevers
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateReverseEtlModel200Response
+        :rtype: DeleteReverseEtlModel200Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
-            message = "Error! Please call the create_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            message = "Error! Please call the delete_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.create_reverse_etl_model_with_http_info(create_reverse_etl_model_input, **kwargs)  # noqa: E501
+        return self.delete_reverse_etl_model_with_http_info(model_id, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input : CreateReverseEtlModelInput, **kwargs) -> ApiResponse:  # noqa: E501
-        """Create Reverse Etl Model  # noqa: E501
+    def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Delete Reverse Etl Model  # noqa: E501
 
-        Creates a new Reverse ETL Model.          • When called, this endpoint may generate the `Model Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Deletes an existing Model.          • When called, this endpoint may generate the `Model Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.create_reverse_etl_model_with_http_info(create_reverse_etl_model_input, async_req=True)
+        >>> thread = api.delete_reverse_etl_model_with_http_info(model_id, async_req=True)
         >>> result = thread.get()
 
-        :param create_reverse_etl_model_input: (required)
-        :type create_reverse_etl_model_input: CreateReverseEtlModelInput
+        :param model_id: (required)
+        :type model_id: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -116,13 +590,13 @@ def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateReverseEtlModel200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(DeleteReverseEtlModel200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
 
         _all_params = [
-            'create_reverse_etl_model_input'
+            'model_id'
         ]
         _all_params.extend(
             [
@@ -141,7 +615,7 @@ def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input
             if _key not in _all_params:
                 raise ApiTypeError(
                     "Got an unexpected keyword argument '%s'"
-                    " to method create_reverse_etl_model" % _key
+                    " to method delete_reverse_etl_model" % _key
                 )
             _params[_key] = _val
         del _params['kwargs']
@@ -150,6 +624,9 @@ def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input
 
         # process the path parameters
         _path_params = {}
+        if _params['model_id']:
+            _path_params['modelId'] = _params['model_id']
+
 
         # process the query parameters
         _query_params = []
@@ -160,32 +637,22 @@ def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input
         _files = {}
         # process the body parameter
         _body_params = None
-        if _params['create_reverse_etl_model_input'] is not None:
-            _body_params = _params['create_reverse_etl_model_input']
-
         # set the HTTP header `Accept`
         _header_params['Accept'] = self.api_client.select_header_accept(
             ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
 
-        # set the HTTP header `Content-Type`
-        _content_types_list = _params.get('_content_type',
-            self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1alpha+json']))
-        if _content_types_list:
-                _header_params['Content-Type'] = _content_types_list
-
         # authentication setting
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateReverseEtlModel200Response",
+            '200': "DeleteReverseEtlModel200Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
         }
 
         return self.api_client.call_api(
-            '/reverse-etl-models', 'POST',
+            '/reverse-etl-models/{modelId}', 'DELETE',
             _path_params,
             _query_params,
             _header_params,
@@ -202,14 +669,14 @@ def create_reverse_etl_model_with_http_info(self, create_reverse_etl_model_input
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def delete_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) -> DeleteReverseEtlModel200Response:  # noqa: E501
-        """Delete Reverse Etl Model  # noqa: E501
+    def get_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) -> GetReverseEtlModel200Response:  # noqa: E501
+        """Get Reverse Etl Model  # noqa: E501
 
-        Deletes an existing Model.          • When called, this endpoint may generate the `Model Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Returns a Reverse ETL Model by its id.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.delete_reverse_etl_model(model_id, async_req=True)
+        >>> thread = api.get_reverse_etl_model(model_id, async_req=True)
         >>> result = thread.get()
 
         :param model_id: (required)
@@ -223,23 +690,23 @@ def delete_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) ->
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: DeleteReverseEtlModel200Response
+        :rtype: GetReverseEtlModel200Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
-            message = "Error! Please call the delete_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            message = "Error! Please call the get_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.delete_reverse_etl_model_with_http_info(model_id, **kwargs)  # noqa: E501
+        return self.get_reverse_etl_model_with_http_info(model_id, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
-        """Delete Reverse Etl Model  # noqa: E501
+    def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Reverse Etl Model  # noqa: E501
 
-        Deletes an existing Model.          • When called, this endpoint may generate the `Model Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        Returns a Reverse ETL Model by its id.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.delete_reverse_etl_model_with_http_info(model_id, async_req=True)
+        >>> thread = api.get_reverse_etl_model_with_http_info(model_id, async_req=True)
         >>> result = thread.get()
 
         :param model_id: (required)
@@ -266,7 +733,7 @@ def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True)
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(DeleteReverseEtlModel200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(GetReverseEtlModel200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -291,7 +758,7 @@ def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True)
             if _key not in _all_params:
                 raise ApiTypeError(
                     "Got an unexpected keyword argument '%s'"
-                    " to method delete_reverse_etl_model" % _key
+                    " to method get_reverse_etl_model" % _key
                 )
             _params[_key] = _val
         del _params['kwargs']
@@ -321,14 +788,14 @@ def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True)
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "DeleteReverseEtlModel200Response",
+            '200': "GetReverseEtlModel200Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
         }
 
         return self.api_client.call_api(
-            '/reverse-etl-models/{modelId}', 'DELETE',
+            '/reverse-etl-models/{modelId}', 'GET',
             _path_params,
             _query_params,
             _header_params,
@@ -345,18 +812,20 @@ def delete_reverse_etl_model_with_http_info(self, model_id : constr(strict=True)
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def get_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) -> GetReverseEtlModel200Response:  # noqa: E501
-        """Get Reverse Etl Model  # noqa: E501
+    def get_reverse_etl_sync_status(self, model_id : constr(strict=True), sync_id : constr(strict=True), **kwargs) -> GetReverseETLSyncStatus200Response:  # noqa: E501
+        """Get Reverse ETL Sync Status  # noqa: E501
 
-        Returns a Reverse ETL Model by its id.  # noqa: E501
+        Get the sync status for a Reverse ETL sync.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.   The rate limit for this endpoint is 250 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.get_reverse_etl_model(model_id, async_req=True)
+        >>> thread = api.get_reverse_etl_sync_status(model_id, sync_id, async_req=True)
         >>> result = thread.get()
 
         :param model_id: (required)
         :type model_id: str
+        :param sync_id: (required)
+        :type sync_id: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -366,27 +835,29 @@ def get_reverse_etl_model(self, model_id : constr(strict=True), **kwargs) -> Get
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: GetReverseEtlModel200Response
+        :rtype: GetReverseETLSyncStatus200Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
-            message = "Error! Please call the get_reverse_etl_model_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            message = "Error! Please call the get_reverse_etl_sync_status_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.get_reverse_etl_model_with_http_info(model_id, **kwargs)  # noqa: E501
+        return self.get_reverse_etl_sync_status_with_http_info(model_id, sync_id, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
-        """Get Reverse Etl Model  # noqa: E501
+    def get_reverse_etl_sync_status_with_http_info(self, model_id : constr(strict=True), sync_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Reverse ETL Sync Status  # noqa: E501
 
-        Returns a Reverse ETL Model by its id.  # noqa: E501
+        Get the sync status for a Reverse ETL sync.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.   The rate limit for this endpoint is 250 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.get_reverse_etl_model_with_http_info(model_id, async_req=True)
+        >>> thread = api.get_reverse_etl_sync_status_with_http_info(model_id, sync_id, async_req=True)
         >>> result = thread.get()
 
         :param model_id: (required)
         :type model_id: str
+        :param sync_id: (required)
+        :type sync_id: str
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -409,13 +880,14 @@ def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), *
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(GetReverseEtlModel200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(GetReverseETLSyncStatus200Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
 
         _all_params = [
-            'model_id'
+            'model_id',
+            'sync_id'
         ]
         _all_params.extend(
             [
@@ -434,7 +906,7 @@ def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), *
             if _key not in _all_params:
                 raise ApiTypeError(
                     "Got an unexpected keyword argument '%s'"
-                    " to method get_reverse_etl_model" % _key
+                    " to method get_reverse_etl_sync_status" % _key
                 )
             _params[_key] = _val
         del _params['kwargs']
@@ -446,6 +918,9 @@ def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), *
         if _params['model_id']:
             _path_params['modelId'] = _params['model_id']
 
+        if _params['sync_id']:
+            _path_params['syncId'] = _params['sync_id']
+
 
         # process the query parameters
         _query_params = []
@@ -464,14 +939,14 @@ def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), *
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "GetReverseEtlModel200Response",
+            '200': "GetReverseETLSyncStatus200Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
         }
 
         return self.api_client.call_api(
-            '/reverse-etl-models/{modelId}', 'GET',
+            '/reverse-etl-models/{modelId}/syncs/{syncId}', 'GET',
             _path_params,
             _query_params,
             _header_params,
@@ -488,7 +963,7 @@ def get_reverse_etl_model_with_http_info(self, model_id : constr(strict=True), *
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_reverse_etl_models(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ListReverseEtlModels200Response:  # noqa: E501
+    def list_reverse_etl_models(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ListReverseEtlModels200Response:  # noqa: E501
         """List Reverse Etl Models  # noqa: E501
 
         Returns a list of Reverse ETL Models.  # noqa: E501
@@ -498,7 +973,7 @@ def list_reverse_etl_models(self, pagination : Annotated[PaginationInput, Field(
         >>> thread = api.list_reverse_etl_models(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -518,7 +993,7 @@ def list_reverse_etl_models(self, pagination : Annotated[PaginationInput, Field(
         return self.list_reverse_etl_models_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_reverse_etl_models_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_reverse_etl_models_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Reverse Etl Models  # noqa: E501
 
         Returns a list of Reverse ETL Models.  # noqa: E501
@@ -528,7 +1003,7 @@ def list_reverse_etl_models_with_http_info(self, pagination : Annotated[Paginati
         >>> thread = api.list_reverse_etl_models_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -630,6 +1105,173 @@ def list_reverse_etl_models_with_http_info(self, pagination : Annotated[Paginati
             collection_formats=_collection_formats,
             _request_auth=_params.get('_request_auth'))
 
+    @validate_arguments
+    def list_reverse_etl_sync_statuses_from_model_and_subscription_id(self, model_id : constr(strict=True), subscription_id : constr(strict=True), count : Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha.")] = None, cursor : Annotated[Optional[StrictStr], Field(description="The page to request. Acceptable values to use are from the `current`, `next`, and `previous` keys.  This parameter exists in alpha.")] = None, **kwargs) -> ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response:  # noqa: E501
+        """List Reverse ETL Sync Statuses from Model And Subscription Id  # noqa: E501
+
+        Get the sync statuses for a Reverse ETL mapping subscription.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.  The default page count is 10, and then the next page can be fetched by passing the `cursor` query parameter.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_reverse_etl_sync_statuses_from_model_and_subscription_id(model_id, subscription_id, count, cursor, async_req=True)
+        >>> result = thread.get()
+
+        :param model_id: (required)
+        :type model_id: str
+        :param subscription_id: (required)
+        :type subscription_id: str
+        :param count: The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha.
+        :type count: float
+        :param cursor: The page to request. Acceptable values to use are from the `current`, `next`, and `previous` keys.  This parameter exists in alpha.
+        :type cursor: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_reverse_etl_sync_statuses_from_model_and_subscription_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_reverse_etl_sync_statuses_from_model_and_subscription_id_with_http_info(model_id, subscription_id, count, cursor, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_reverse_etl_sync_statuses_from_model_and_subscription_id_with_http_info(self, model_id : constr(strict=True), subscription_id : constr(strict=True), count : Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha.")] = None, cursor : Annotated[Optional[StrictStr], Field(description="The page to request. Acceptable values to use are from the `current`, `next`, and `previous` keys.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Reverse ETL Sync Statuses from Model And Subscription Id  # noqa: E501
+
+        Get the sync statuses for a Reverse ETL mapping subscription.  The sync status includes all detailed information about the sync - sync status, duration, details about the extract and load phase if applicable, etc.  The default page count is 10, and then the next page can be fetched by passing the `cursor` query parameter.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_reverse_etl_sync_statuses_from_model_and_subscription_id_with_http_info(model_id, subscription_id, count, cursor, async_req=True)
+        >>> result = thread.get()
+
+        :param model_id: (required)
+        :type model_id: str
+        :param subscription_id: (required)
+        :type subscription_id: str
+        :param count: The number of items to retrieve in a page, between 1 and 100. Default is 10  This parameter exists in alpha.
+        :type count: float
+        :param cursor: The page to request. Acceptable values to use are from the `current`, `next`, and `previous` keys.  This parameter exists in alpha.
+        :type cursor: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'model_id',
+            'subscription_id',
+            'count',
+            'cursor'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_reverse_etl_sync_statuses_from_model_and_subscription_id" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['model_id']:
+            _path_params['modelId'] = _params['model_id']
+
+        if _params['subscription_id']:
+            _path_params['subscriptionId'] = _params['subscription_id']
+
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('count') is not None:  # noqa: E501
+            _query_params.append(('count', _params['count']))
+
+        if _params.get('cursor') is not None:  # noqa: E501
+            _query_params.append(('cursor', _params['cursor']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/reverse-etl-models/{modelId}/subscriptionId/{subscriptionId}/syncs', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
     @validate_arguments
     def update_reverse_etl_model(self, model_id : constr(strict=True), update_reverse_etl_model_input : UpdateReverseEtlModelInput, **kwargs) -> UpdateReverseEtlModel200Response:  # noqa: E501
         """Update Reverse Etl Model  # noqa: E501
diff --git a/segment_public_api/api/selective_sync_api.py b/segment_public_api/api/selective_sync_api.py
index 72a5feaef..f42103526 100644
--- a/segment_public_api/api/selective_sync_api.py
+++ b/segment_public_api/api/selective_sync_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
 from segment_public_api.models.get_advanced_sync_schedule_from_warehouse200_response import GetAdvancedSyncScheduleFromWarehouse200Response
 from segment_public_api.models.list_selective_syncs_from_warehouse_and_source200_response import ListSelectiveSyncsFromWarehouseAndSource200Response
 from segment_public_api.models.list_syncs_from_warehouse200_response import ListSyncsFromWarehouse200Response
@@ -196,7 +198,7 @@ def get_advanced_sync_schedule_from_warehouse_with_http_info(self, warehouse_id
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_selective_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListSelectiveSyncsFromWarehouseAndSource200Response:  # noqa: E501
+    def list_selective_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListSelectiveSyncsFromWarehouseAndSource200Response:  # noqa: E501
         """List Selective Syncs from Warehouse And Source  # noqa: E501
 
         Returns the schema for a Warehouse, including Sources, Collections, and Properties.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -210,7 +212,7 @@ def list_selective_syncs_from_warehouse_and_source(self, warehouse_id : constr(s
         :type warehouse_id: str
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -230,7 +232,7 @@ def list_selective_syncs_from_warehouse_and_source(self, warehouse_id : constr(s
         return self.list_selective_syncs_from_warehouse_and_source_with_http_info(warehouse_id, source_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_selective_syncs_from_warehouse_and_source_with_http_info(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_selective_syncs_from_warehouse_and_source_with_http_info(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Selective Syncs from Warehouse And Source  # noqa: E501
 
         Returns the schema for a Warehouse, including Sources, Collections, and Properties.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -244,7 +246,7 @@ def list_selective_syncs_from_warehouse_and_source_with_http_info(self, warehous
         :type warehouse_id: str
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -355,7 +357,7 @@ def list_selective_syncs_from_warehouse_and_source_with_http_info(self, warehous
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_syncs_from_warehouse(self, warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListSyncsFromWarehouse200Response:  # noqa: E501
+    def list_syncs_from_warehouse(self, warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListSyncsFromWarehouse200Response:  # noqa: E501
         """List Syncs from Warehouse  # noqa: E501
 
         Returns the overview of syncs for every Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -367,7 +369,7 @@ def list_syncs_from_warehouse(self, warehouse_id : constr(strict=True), paginati
 
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -387,7 +389,7 @@ def list_syncs_from_warehouse(self, warehouse_id : constr(strict=True), paginati
         return self.list_syncs_from_warehouse_with_http_info(warehouse_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_syncs_from_warehouse_with_http_info(self, warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_syncs_from_warehouse_with_http_info(self, warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Syncs from Warehouse  # noqa: E501
 
         Returns the overview of syncs for every Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -399,7 +401,7 @@ def list_syncs_from_warehouse_with_http_info(self, warehouse_id : constr(strict=
 
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -506,7 +508,7 @@ def list_syncs_from_warehouse_with_http_info(self, warehouse_id : constr(strict=
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListSyncsFromWarehouseAndSource200Response:  # noqa: E501
+    def list_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListSyncsFromWarehouseAndSource200Response:  # noqa: E501
         """List Syncs from Warehouse And Source  # noqa: E501
 
         Returns the overview of syncs for a Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -520,7 +522,7 @@ def list_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True
         :type warehouse_id: str
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -540,7 +542,7 @@ def list_syncs_from_warehouse_and_source(self, warehouse_id : constr(strict=True
         return self.list_syncs_from_warehouse_and_source_with_http_info(warehouse_id, source_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_syncs_from_warehouse_and_source_with_http_info(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_syncs_from_warehouse_and_source_with_http_info(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Syncs from Warehouse And Source  # noqa: E501
 
         Returns the overview of syncs for a Source connected to a Warehouse.   The rate limit for this endpoint is 2 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -554,7 +556,7 @@ def list_syncs_from_warehouse_and_source_with_http_info(self, warehouse_id : con
         :type warehouse_id: str
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -791,7 +793,7 @@ def replace_advanced_sync_schedule_for_warehouse_with_http_info(self, warehouse_
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -949,7 +951,7 @@ def update_selective_sync_for_warehouse_with_http_info(self, warehouse_id : cons
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/sources_api.py b/segment_public_api/api/sources_api.py
index 3a6d636fa..5e568b7cd 100644
--- a/segment_public_api/api/sources_api.py
+++ b/segment_public_api/api/sources_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,10 +22,13 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
 from segment_public_api.models.add_labels_to_source200_response import AddLabelsToSource200Response
 from segment_public_api.models.add_labels_to_source_v1_input import AddLabelsToSourceV1Input
-from segment_public_api.models.create_source200_response import CreateSource200Response
+from segment_public_api.models.create_source201_response import CreateSource201Response
 from segment_public_api.models.create_source_v1_input import CreateSourceV1Input
+from segment_public_api.models.create_write_key_for_source200_response import CreateWriteKeyForSource200Response
 from segment_public_api.models.delete_source200_response import DeleteSource200Response
 from segment_public_api.models.get_source200_response import GetSource200Response
 from segment_public_api.models.list_connected_destinations_from_source200_response import ListConnectedDestinationsFromSource200Response
@@ -33,6 +36,7 @@
 from segment_public_api.models.list_schema_settings_in_source200_response import ListSchemaSettingsInSource200Response
 from segment_public_api.models.list_sources200_response import ListSources200Response
 from segment_public_api.models.pagination_input import PaginationInput
+from segment_public_api.models.remove_write_key_from_source200_response import RemoveWriteKeyFromSource200Response
 from segment_public_api.models.replace_labels_in_source200_response import ReplaceLabelsInSource200Response
 from segment_public_api.models.replace_labels_in_source_v1_input import ReplaceLabelsInSourceV1Input
 from segment_public_api.models.update_schema_settings_in_source200_response import UpdateSchemaSettingsInSource200Response
@@ -187,7 +191,7 @@ def add_labels_to_source_with_http_info(self, source_id : constr(strict=True), a
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -219,7 +223,7 @@ def add_labels_to_source_with_http_info(self, source_id : constr(strict=True), a
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def create_source(self, create_source_v1_input : CreateSourceV1Input, **kwargs) -> CreateSource200Response:  # noqa: E501
+    def create_source(self, create_source_v1_input : CreateSourceV1Input, **kwargs) -> CreateSource201Response:  # noqa: E501
         """Create Source  # noqa: E501
 
         Creates a new Source.    • When called, this endpoint may generate the `Source Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
@@ -240,7 +244,7 @@ def create_source(self, create_source_v1_input : CreateSourceV1Input, **kwargs)
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateSource200Response
+        :rtype: CreateSource201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -283,7 +287,7 @@ def create_source_with_http_info(self, create_source_v1_input : CreateSourceV1In
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateSource200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateSource201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -337,7 +341,7 @@ def create_source_with_http_info(self, create_source_v1_input : CreateSourceV1In
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -345,7 +349,7 @@ def create_source_with_http_info(self, create_source_v1_input : CreateSourceV1In
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateSource200Response",
+            '201': "CreateSource201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
@@ -368,6 +372,149 @@ def create_source_with_http_info(self, create_source_v1_input : CreateSourceV1In
             collection_formats=_collection_formats,
             _request_auth=_params.get('_request_auth'))
 
+    @validate_arguments
+    def create_write_key_for_source(self, source_id : constr(strict=True), **kwargs) -> CreateWriteKeyForSource200Response:  # noqa: E501
+        """Create Write Key for Source  # noqa: E501
+
+        Creates a new Write Key for the Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_write_key_for_source(source_id, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: (required)
+        :type source_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateWriteKeyForSource200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_write_key_for_source_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_write_key_for_source_with_http_info(source_id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_write_key_for_source_with_http_info(self, source_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Write Key for Source  # noqa: E501
+
+        Creates a new Write Key for the Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_write_key_for_source_with_http_info(source_id, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: (required)
+        :type source_id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateWriteKeyForSource200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_write_key_for_source" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['source_id']:
+            _path_params['sourceId'] = _params['source_id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateWriteKeyForSource200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/sources/{sourceId}/writekey', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
     @validate_arguments
     def delete_source(self, source_id : constr(strict=True), **kwargs) -> DeleteSource200Response:  # noqa: E501
         """Delete Source  # noqa: E501
@@ -655,7 +802,7 @@ def get_source_with_http_info(self, source_id : constr(strict=True), **kwargs) -
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_connected_destinations_from_source(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in alpha.")], **kwargs) -> ListConnectedDestinationsFromSource200Response:  # noqa: E501
+    def list_connected_destinations_from_source(self, source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in alpha.")] = None, **kwargs) -> ListConnectedDestinationsFromSource200Response:  # noqa: E501
         """List Connected Destinations from Source  # noqa: E501
 
         Returns a list of Destinations connected to a Source.  # noqa: E501
@@ -667,7 +814,7 @@ def list_connected_destinations_from_source(self, source_id : constr(strict=True
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Required pagination params for the request.  This parameter exists in alpha. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -687,7 +834,7 @@ def list_connected_destinations_from_source(self, source_id : constr(strict=True
         return self.list_connected_destinations_from_source_with_http_info(source_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_connected_destinations_from_source_with_http_info(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_connected_destinations_from_source_with_http_info(self, source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Connected Destinations from Source  # noqa: E501
 
         Returns a list of Destinations connected to a Source.  # noqa: E501
@@ -699,7 +846,7 @@ def list_connected_destinations_from_source_with_http_info(self, source_id : con
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Required pagination params for the request.  This parameter exists in alpha. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -806,7 +953,7 @@ def list_connected_destinations_from_source_with_http_info(self, source_id : con
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_connected_warehouses_from_source(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in alpha.")], **kwargs) -> ListConnectedWarehousesFromSource200Response:  # noqa: E501
+    def list_connected_warehouses_from_source(self, source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in alpha.")] = None, **kwargs) -> ListConnectedWarehousesFromSource200Response:  # noqa: E501
         """List Connected Warehouses from Source  # noqa: E501
 
         Returns a list of Warehouses connected to a Source.  # noqa: E501
@@ -818,7 +965,7 @@ def list_connected_warehouses_from_source(self, source_id : constr(strict=True),
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Required pagination params for the request.  This parameter exists in alpha. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -838,7 +985,7 @@ def list_connected_warehouses_from_source(self, source_id : constr(strict=True),
         return self.list_connected_warehouses_from_source_with_http_info(source_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_connected_warehouses_from_source_with_http_info(self, source_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Required pagination params for the request.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_connected_warehouses_from_source_with_http_info(self, source_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Required pagination params for the request.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Connected Warehouses from Source  # noqa: E501
 
         Returns a list of Warehouses connected to a Source.  # noqa: E501
@@ -850,7 +997,7 @@ def list_connected_warehouses_from_source_with_http_info(self, source_id : const
 
         :param source_id: (required)
         :type source_id: str
-        :param pagination: Required pagination params for the request.  This parameter exists in alpha. (required)
+        :param pagination: Required pagination params for the request.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1100,7 +1247,7 @@ def list_schema_settings_in_source_with_http_info(self, source_id : constr(stric
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_sources(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ListSources200Response:  # noqa: E501
+    def list_sources(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ListSources200Response:  # noqa: E501
         """List Sources  # noqa: E501
 
         Returns a list of Sources.  # noqa: E501
@@ -1110,7 +1257,7 @@ def list_sources(self, pagination : Annotated[PaginationInput, Field(..., descri
         >>> thread = api.list_sources(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1130,7 +1277,7 @@ def list_sources(self, pagination : Annotated[PaginationInput, Field(..., descri
         return self.list_sources_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_sources_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in alpha.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_sources_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Sources  # noqa: E501
 
         Returns a list of Sources.  # noqa: E501
@@ -1140,7 +1287,7 @@ def list_sources_with_http_info(self, pagination : Annotated[PaginationInput, Fi
         >>> thread = api.list_sources_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in alpha. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in alpha.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1242,6 +1389,157 @@ def list_sources_with_http_info(self, pagination : Annotated[PaginationInput, Fi
             collection_formats=_collection_formats,
             _request_auth=_params.get('_request_auth'))
 
+    @validate_arguments
+    def remove_write_key_from_source(self, source_id : constr(strict=True), write_key : constr(strict=True), **kwargs) -> RemoveWriteKeyFromSource200Response:  # noqa: E501
+        """Remove Write Key from Source  # noqa: E501
+
+        Removes a Write Key from a Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.remove_write_key_from_source(source_id, write_key, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: (required)
+        :type source_id: str
+        :param write_key: (required)
+        :type write_key: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: RemoveWriteKeyFromSource200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the remove_write_key_from_source_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.remove_write_key_from_source_with_http_info(source_id, write_key, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def remove_write_key_from_source_with_http_info(self, source_id : constr(strict=True), write_key : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Remove Write Key from Source  # noqa: E501
+
+        Removes a Write Key from a Source.    • When called, this endpoint may generate the `Source Modified` event in the [audit trail](/tag/Audit-Trail).   # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.remove_write_key_from_source_with_http_info(source_id, write_key, async_req=True)
+        >>> result = thread.get()
+
+        :param source_id: (required)
+        :type source_id: str
+        :param write_key: (required)
+        :type write_key: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(RemoveWriteKeyFromSource200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'source_id',
+            'write_key'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method remove_write_key_from_source" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['source_id']:
+            _path_params['sourceId'] = _params['source_id']
+
+        if _params['write_key']:
+            _path_params['writeKey'] = _params['write_key']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "RemoveWriteKeyFromSource200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/sources/{sourceId}/writekey/{writeKey}', 'DELETE',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
     @validate_arguments
     def replace_labels_in_source(self, source_id : constr(strict=True), replace_labels_in_source_v1_input : ReplaceLabelsInSourceV1Input, **kwargs) -> ReplaceLabelsInSource200Response:  # noqa: E501
         """Replace Labels in Source  # noqa: E501
@@ -1369,7 +1667,7 @@ def replace_labels_in_source_with_http_info(self, source_id : constr(strict=True
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1527,7 +1825,7 @@ def update_schema_settings_in_source_with_http_info(self, source_id : constr(str
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1685,7 +1983,7 @@ def update_source_with_http_info(self, source_id : constr(strict=True), update_s
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/space_filters_api.py b/segment_public_api/api/space_filters_api.py
new file mode 100644
index 000000000..b1ce9ea78
--- /dev/null
+++ b/segment_public_api/api/space_filters_api.py
@@ -0,0 +1,799 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+import re  # noqa: F401
+import io
+import warnings
+
+from pydantic import validate_arguments, ValidationError
+
+from typing_extensions import Annotated
+from pydantic import Field, StrictStr, constr
+
+from typing import Optional
+
+from segment_public_api.models.create_filter_for_space200_response import CreateFilterForSpace200Response
+from segment_public_api.models.create_filter_for_space_input import CreateFilterForSpaceInput
+from segment_public_api.models.delete_filter_by_id200_response import DeleteFilterById200Response
+from segment_public_api.models.get_filter_by_id200_response import GetFilterById200Response
+from segment_public_api.models.list_filters_for_space200_response import ListFiltersForSpace200Response
+from segment_public_api.models.list_filters_pagination_input import ListFiltersPaginationInput
+from segment_public_api.models.update_filter_by_id200_response import UpdateFilterById200Response
+from segment_public_api.models.update_filter_by_id_input import UpdateFilterByIdInput
+
+from segment_public_api.api_client import ApiClient
+from segment_public_api.api_response import ApiResponse
+from segment_public_api.exceptions import (  # noqa: F401
+    ApiTypeError,
+    ApiValueError
+)
+
+
+class SpaceFiltersApi:
+    """NOTE: This class is auto generated by OpenAPI Generator
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self, api_client=None) -> None:
+        if api_client is None:
+            api_client = ApiClient.get_default()
+        self.api_client = api_client
+
+    @validate_arguments
+    def create_filter_for_space(self, create_filter_for_space_input : CreateFilterForSpaceInput, **kwargs) -> CreateFilterForSpace200Response:  # noqa: E501
+        """Create Filter for Space  # noqa: E501
+
+        Creates a filter for a space. A space filter applies to events coming from all Sources connected to a space.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_filter_for_space(create_filter_for_space_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_filter_for_space_input: (required)
+        :type create_filter_for_space_input: CreateFilterForSpaceInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: CreateFilterForSpace200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the create_filter_for_space_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.create_filter_for_space_with_http_info(create_filter_for_space_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def create_filter_for_space_with_http_info(self, create_filter_for_space_input : CreateFilterForSpaceInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Create Filter for Space  # noqa: E501
+
+        Creates a filter for a space. A space filter applies to events coming from all Sources connected to a space.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.create_filter_for_space_with_http_info(create_filter_for_space_input, async_req=True)
+        >>> result = thread.get()
+
+        :param create_filter_for_space_input: (required)
+        :type create_filter_for_space_input: CreateFilterForSpaceInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(CreateFilterForSpace200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'create_filter_for_space_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_filter_for_space" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['create_filter_for_space_input'] is not None:
+            _body_params = _params['create_filter_for_space_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "CreateFilterForSpace200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/filters', 'POST',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def delete_filter_by_id(self, id : constr(strict=True), **kwargs) -> DeleteFilterById200Response:  # noqa: E501
+        """Delete Filter By Id  # noqa: E501
+
+        Deletes a filter by id.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.delete_filter_by_id(id, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: DeleteFilterById200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the delete_filter_by_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.delete_filter_by_id_with_http_info(id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def delete_filter_by_id_with_http_info(self, id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Delete Filter By Id  # noqa: E501
+
+        Deletes a filter by id.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Deleted` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.delete_filter_by_id_with_http_info(id, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(DeleteFilterById200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method delete_filter_by_id" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "DeleteFilterById200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/filters/{id}', 'DELETE',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def get_filter_by_id(self, id : constr(strict=True), **kwargs) -> GetFilterById200Response:  # noqa: E501
+        """Get Filter By Id  # noqa: E501
+
+        Gets a filter by id.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filter_by_id(id, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: GetFilterById200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the get_filter_by_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.get_filter_by_id_with_http_info(id, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def get_filter_by_id_with_http_info(self, id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
+        """Get Filter By Id  # noqa: E501
+
+        Gets a filter by id.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.get_filter_by_id_with_http_info(id, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(GetFilterById200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'id'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method get_filter_by_id" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "GetFilterById200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/filters/{id}', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def list_filters_for_space(self, integration_id : Annotated[StrictStr, Field(..., description="The Space Id for which to fetch filters  This parameter exists in beta.")], pagination : Annotated[Optional[ListFiltersPaginationInput], Field(description="Pagination parameters.  This parameter exists in beta.")] = None, **kwargs) -> ListFiltersForSpace200Response:  # noqa: E501
+        """List Filters for Space  # noqa: E501
+
+        Lists filters for a space.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_filters_for_space(integration_id, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param integration_id: The Space Id for which to fetch filters  This parameter exists in beta. (required)
+        :type integration_id: str
+        :param pagination: Pagination parameters.  This parameter exists in beta.
+        :type pagination: ListFiltersPaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListFiltersForSpace200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_filters_for_space_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_filters_for_space_with_http_info(integration_id, pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_filters_for_space_with_http_info(self, integration_id : Annotated[StrictStr, Field(..., description="The Space Id for which to fetch filters  This parameter exists in beta.")], pagination : Annotated[Optional[ListFiltersPaginationInput], Field(description="Pagination parameters.  This parameter exists in beta.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Filters for Space  # noqa: E501
+
+        Lists filters for a space.  • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_filters_for_space_with_http_info(integration_id, pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param integration_id: The Space Id for which to fetch filters  This parameter exists in beta. (required)
+        :type integration_id: str
+        :param pagination: Pagination parameters.  This parameter exists in beta.
+        :type pagination: ListFiltersPaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListFiltersForSpace200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'integration_id',
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_filters_for_space" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('integration_id') is not None:  # noqa: E501
+            _query_params.append(('integrationId', _params['integration_id']))
+
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListFiltersForSpace200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/filters', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
+    @validate_arguments
+    def update_filter_by_id(self, id : constr(strict=True), update_filter_by_id_input : UpdateFilterByIdInput, **kwargs) -> UpdateFilterById200Response:  # noqa: E501
+        """Update Filter By Id  # noqa: E501
+
+        Updates a filter by id and replaces the existing filter.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Updated` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.update_filter_by_id(id, update_filter_by_id_input, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param update_filter_by_id_input: (required)
+        :type update_filter_by_id_input: UpdateFilterByIdInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: UpdateFilterById200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the update_filter_by_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.update_filter_by_id_with_http_info(id, update_filter_by_id_input, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def update_filter_by_id_with_http_info(self, id : constr(strict=True), update_filter_by_id_input : UpdateFilterByIdInput, **kwargs) -> ApiResponse:  # noqa: E501
+        """Update Filter By Id  # noqa: E501
+
+        Updates a filter by id and replaces the existing filter.    • This endpoint is in **Beta** testing.  Please submit any feedback by sending an email to friends@segment.com.    • In order to successfully call this endpoint, the specified Workspace needs to have the Space Filters feature enabled. Please reach out to your customer success manager for more information.   • When called, this endpoint may generate the `Filter Updated` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.update_filter_by_id_with_http_info(id, update_filter_by_id_input, async_req=True)
+        >>> result = thread.get()
+
+        :param id: (required)
+        :type id: str
+        :param update_filter_by_id_input: (required)
+        :type update_filter_by_id_input: UpdateFilterByIdInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(UpdateFilterById200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'id',
+            'update_filter_by_id_input'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method update_filter_by_id" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+        if _params['id']:
+            _path_params['id'] = _params['id']
+
+
+        # process the query parameters
+        _query_params = []
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        if _params['update_filter_by_id_input'] is not None:
+            _body_params = _params['update_filter_by_id_input']
+
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # set the HTTP header `Content-Type`
+        _content_types_list = _params.get('_content_type',
+            self.api_client.select_header_content_type(
+                ['application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+        if _content_types_list:
+                _header_params['Content-Type'] = _content_types_list
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "UpdateFilterById200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/filters/{id}', 'PATCH',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
diff --git a/segment_public_api/api/spaces_api.py b/segment_public_api/api/spaces_api.py
index 242be7600..370eb5656 100644
--- a/segment_public_api/api/spaces_api.py
+++ b/segment_public_api/api/spaces_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,11 +19,16 @@
 
 from pydantic import validate_arguments, ValidationError
 
-from pydantic import constr
+from typing_extensions import Annotated
+from pydantic import Field, constr
+
+from typing import Optional
 
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space200_response import BatchQueryMessagingSubscriptionsForSpace200Response
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_input import BatchQueryMessagingSubscriptionsForSpaceAlphaInput
 from segment_public_api.models.get_space200_response import GetSpace200Response
+from segment_public_api.models.list_spaces200_response import ListSpaces200Response
+from segment_public_api.models.pagination_input import PaginationInput
 from segment_public_api.models.replace_messaging_subscriptions_in_spaces200_response import ReplaceMessagingSubscriptionsInSpaces200Response
 from segment_public_api.models.replace_messaging_subscriptions_in_spaces_alpha_input import ReplaceMessagingSubscriptionsInSpacesAlphaInput
 
@@ -51,7 +56,7 @@ def __init__(self, api_client=None) -> None:
     def batch_query_messaging_subscriptions_for_space(self, space_id : constr(strict=True), batch_query_messaging_subscriptions_for_space_alpha_input : BatchQueryMessagingSubscriptionsForSpaceAlphaInput, **kwargs) -> BatchQueryMessagingSubscriptionsForSpace200Response:  # noqa: E501
         """Batch Query Messaging Subscriptions for Space  # noqa: E501
 
-        Get Messaging Subscriptions for space.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+         <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Get Messaging Subscriptions for space.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -83,7 +88,7 @@ def batch_query_messaging_subscriptions_for_space(self, space_id : constr(strict
     def batch_query_messaging_subscriptions_for_space_with_http_info(self, space_id : constr(strict=True), batch_query_messaging_subscriptions_for_space_alpha_input : BatchQueryMessagingSubscriptionsForSpaceAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Batch Query Messaging Subscriptions for Space  # noqa: E501
 
-        Get Messaging Subscriptions for space.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+         <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Get Messaging Subscriptions for space.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -209,7 +214,7 @@ def batch_query_messaging_subscriptions_for_space_with_http_info(self, space_id
     def get_space(self, space_id : constr(strict=True), **kwargs) -> GetSpace200Response:  # noqa: E501
         """Get Space  # noqa: E501
 
-        Returns the Space by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Returns the Space by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -239,7 +244,7 @@ def get_space(self, space_id : constr(strict=True), **kwargs) -> GetSpace200Resp
     def get_space_with_http_info(self, space_id : constr(strict=True), **kwargs) -> ApiResponse:  # noqa: E501
         """Get Space  # noqa: E501
 
-        Returns the Space by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        Returns the Space by id.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -348,11 +353,154 @@ def get_space_with_http_info(self, space_id : constr(strict=True), **kwargs) ->
             collection_formats=_collection_formats,
             _request_auth=_params.get('_request_auth'))
 
+    @validate_arguments
+    def list_spaces(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination params  This parameter exists in alpha.")] = None, **kwargs) -> ListSpaces200Response:  # noqa: E501
+        """List Spaces  # noqa: E501
+
+        List Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_spaces(pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param pagination: Pagination params  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _request_timeout: timeout setting for this request.
+               If one number provided, it will be total request
+               timeout. It can also be a pair (tuple) of
+               (connection, read) timeouts.
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: ListSpaces200Response
+        """
+        kwargs['_return_http_data_only'] = True
+        if '_preload_content' in kwargs:
+            message = "Error! Please call the list_spaces_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
+            raise ValueError(message)
+        return self.list_spaces_with_http_info(pagination, **kwargs)  # noqa: E501
+
+    @validate_arguments
+    def list_spaces_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination params  This parameter exists in alpha.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+        """List Spaces  # noqa: E501
+
+        List Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+
+        >>> thread = api.list_spaces_with_http_info(pagination, async_req=True)
+        >>> result = thread.get()
+
+        :param pagination: Pagination params  This parameter exists in alpha.
+        :type pagination: PaginationInput
+        :param async_req: Whether to execute the request asynchronously.
+        :type async_req: bool, optional
+        :param _preload_content: if False, the ApiResponse.data will
+                                 be set to none and raw_data will store the
+                                 HTTP response body without reading/decoding.
+                                 Default is True.
+        :type _preload_content: bool, optional
+        :param _return_http_data_only: response data instead of ApiResponse
+                                       object with status code, headers, etc
+        :type _return_http_data_only: bool, optional
+        :param _request_timeout: timeout setting for this request. If one
+                                 number provided, it will be total request
+                                 timeout. It can also be a pair (tuple) of
+                                 (connection, read) timeouts.
+        :param _request_auth: set to override the auth_settings for an a single
+                              request; this effectively ignores the authentication
+                              in the spec for a single request.
+        :type _request_auth: dict, optional
+        :type _content_type: string, optional: force content-type for the request
+        :return: Returns the result object.
+                 If the method is called asynchronously,
+                 returns the request thread.
+        :rtype: tuple(ListSpaces200Response, status_code(int), headers(HTTPHeaderDict))
+        """
+
+        _params = locals()
+
+        _all_params = [
+            'pagination'
+        ]
+        _all_params.extend(
+            [
+                'async_req',
+                '_return_http_data_only',
+                '_preload_content',
+                '_request_timeout',
+                '_request_auth',
+                '_content_type',
+                '_headers'
+            ]
+        )
+
+        # validate the arguments
+        for _key, _val in _params['kwargs'].items():
+            if _key not in _all_params:
+                raise ApiTypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method list_spaces" % _key
+                )
+            _params[_key] = _val
+        del _params['kwargs']
+
+        _collection_formats = {}
+
+        # process the path parameters
+        _path_params = {}
+
+        # process the query parameters
+        _query_params = []
+        if _params.get('pagination') is not None:  # noqa: E501
+            _query_params.append(('pagination', _params['pagination']))
+
+        # process the header parameters
+        _header_params = dict(_params.get('_headers', {}))
+        # process the form parameters
+        _form_params = []
+        _files = {}
+        # process the body parameter
+        _body_params = None
+        # set the HTTP header `Accept`
+        _header_params['Accept'] = self.api_client.select_header_accept(
+            ['application/vnd.segment.v1alpha+json', 'application/json'])  # noqa: E501
+
+        # authentication setting
+        _auth_settings = ['token']  # noqa: E501
+
+        _response_types_map = {
+            '200': "ListSpaces200Response",
+            '404': "RequestErrorEnvelope",
+            '422': "RequestErrorEnvelope",
+            '429': "RequestErrorEnvelope",
+        }
+
+        return self.api_client.call_api(
+            '/spaces', 'GET',
+            _path_params,
+            _query_params,
+            _header_params,
+            body=_body_params,
+            post_params=_form_params,
+            files=_files,
+            response_types_map=_response_types_map,
+            auth_settings=_auth_settings,
+            async_req=_params.get('async_req'),
+            _return_http_data_only=_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=_params.get('_preload_content', True),
+            _request_timeout=_params.get('_request_timeout'),
+            collection_formats=_collection_formats,
+            _request_auth=_params.get('_request_auth'))
+
     @validate_arguments
     def replace_messaging_subscriptions_in_spaces(self, space_id : constr(strict=True), replace_messaging_subscriptions_in_spaces_alpha_input : ReplaceMessagingSubscriptionsInSpacesAlphaInput, **kwargs) -> ReplaceMessagingSubscriptionsInSpaces200Response:  # noqa: E501
         """Replace Messaging Subscriptions in Spaces  # noqa: E501
 
-        Replace Messaging Subscriptions in Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+         <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Replace Messaging Subscriptions in Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
@@ -384,7 +532,7 @@ def replace_messaging_subscriptions_in_spaces(self, space_id : constr(strict=Tru
     def replace_messaging_subscriptions_in_spaces_with_http_info(self, space_id : constr(strict=True), replace_messaging_subscriptions_in_spaces_alpha_input : ReplaceMessagingSubscriptionsInSpacesAlphaInput, **kwargs) -> ApiResponse:  # noqa: E501
         """Replace Messaging Subscriptions in Spaces  # noqa: E501
 
-        Replace Messaging Subscriptions in Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
+         <div style=\"background-color: #fff3cd; border: 1px solid #ffc107; border-radius: 6px; padding: 16px; margin: 16px 0; color: #856404; display: flex; align-items: center; gap: 12px; line-height: 1.5;\">   <span style=\"color: #ff9800; font-size: 16px; flex-shrink: 0;\">⚠️</span>   <div style=\"line-height: 1.5;\">     <div style=\"font-weight: 600; font-size: 14px; margin-bottom: 6px;\">       Engage Premier features will no longer be available after December 15, 2025.     </div>     <div style=\"font-size: 13px;\">       This API will be deactivated after this date.     </div>   </div> </div> Replace Messaging Subscriptions in Spaces.  • This endpoint is in **Alpha** testing.  Please submit any feedback by sending an email to friends@segment.com.   • In order to successfully call this endpoint, the specified Workspace needs to have the Spaces feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
diff --git a/segment_public_api/api/testing_api.py b/segment_public_api/api/testing_api.py
index e3b6f9685..640629e46 100644
--- a/segment_public_api/api/testing_api.py
+++ b/segment_public_api/api/testing_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/api/tracking_plans_api.py b/segment_public_api/api/tracking_plans_api.py
index d10ea9c02..29efab8d6 100644
--- a/segment_public_api/api/tracking_plans_api.py
+++ b/segment_public_api/api/tracking_plans_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,7 +22,7 @@
 from typing_extensions import Annotated
 from pydantic import Field, StrictStr, conlist, constr
 
-from typing import List, Optional
+from typing import Optional
 
 from segment_public_api.models.add_source_to_tracking_plan200_response import AddSourceToTrackingPlan200Response
 from segment_public_api.models.add_source_to_tracking_plan_v1_input import AddSourceToTrackingPlanV1Input
@@ -191,7 +191,7 @@ def add_source_to_tracking_plan_with_http_info(self, tracking_plan_id : constr(s
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -341,7 +341,7 @@ def create_tracking_plan_with_http_info(self, create_tracking_plan_v1_input : Cr
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -659,7 +659,7 @@ def get_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ListRulesFromTrackingPlan200Response:  # noqa: E501
+    def list_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ListRulesFromTrackingPlan200Response:  # noqa: E501
         """List Rules from Tracking Plan  # noqa: E501
 
         Lists Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 200 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -671,7 +671,7 @@ def list_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True),
 
         :param tracking_plan_id: (required)
         :type tracking_plan_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -691,7 +691,7 @@ def list_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True),
         return self.list_rules_from_tracking_plan_with_http_info(tracking_plan_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Rules from Tracking Plan  # noqa: E501
 
         Lists Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   The rate limit for this endpoint is 200 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See [Rate Limiting](/#tag/Rate-Limits) for more information.  # noqa: E501
@@ -703,7 +703,7 @@ def list_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr
 
         :param tracking_plan_id: (required)
         :type tracking_plan_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -810,7 +810,7 @@ def list_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_sources_from_tracking_plan(self, tracking_plan_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ListSourcesFromTrackingPlan200Response:  # noqa: E501
+    def list_sources_from_tracking_plan(self, tracking_plan_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ListSourcesFromTrackingPlan200Response:  # noqa: E501
         """List Sources from Tracking Plan  # noqa: E501
 
         Lists Sources connected to a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   This endpoint requires the user to have at least the following permission(s):   * Source Read-only  * Tracking Plan Read-only  # noqa: E501
@@ -822,7 +822,7 @@ def list_sources_from_tracking_plan(self, tracking_plan_id : constr(strict=True)
 
         :param tracking_plan_id: (required)
         :type tracking_plan_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -842,7 +842,7 @@ def list_sources_from_tracking_plan(self, tracking_plan_id : constr(strict=True)
         return self.list_sources_from_tracking_plan_with_http_info(tracking_plan_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_sources_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_sources_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Sources from Tracking Plan  # noqa: E501
 
         Lists Sources connected to a Tracking Plan.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.   This endpoint requires the user to have at least the following permission(s):   * Source Read-only  * Tracking Plan Read-only  # noqa: E501
@@ -854,7 +854,7 @@ def list_sources_from_tracking_plan_with_http_info(self, tracking_plan_id : cons
 
         :param tracking_plan_id: (required)
         :type tracking_plan_id: str
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -961,20 +961,20 @@ def list_sources_from_tracking_plan_with_http_info(self, tracking_plan_id : cons
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_tracking_plans(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], type : Annotated[Optional[StrictStr], Field(description="Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.")] = None, **kwargs) -> ListTrackingPlans200Response:  # noqa: E501
+    def list_tracking_plans(self, type : Annotated[Optional[StrictStr], Field(description="Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ListTrackingPlans200Response:  # noqa: E501
         """List Tracking Plans  # noqa: E501
 
         Returns a list of Tracking Plans.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_tracking_plans(pagination, type, async_req=True)
+        >>> thread = api.list_tracking_plans(type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param type: Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.
         :type type: str
+        :param pagination: Pagination options.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _request_timeout: timeout setting for this request.
@@ -990,23 +990,23 @@ def list_tracking_plans(self, pagination : Annotated[PaginationInput, Field(...,
         if '_preload_content' in kwargs:
             message = "Error! Please call the list_tracking_plans_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data"  # noqa: E501
             raise ValueError(message)
-        return self.list_tracking_plans_with_http_info(pagination, type, **kwargs)  # noqa: E501
+        return self.list_tracking_plans_with_http_info(type, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_tracking_plans_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], type : Annotated[Optional[StrictStr], Field(description="Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
+    def list_tracking_plans_with_http_info(self, type : Annotated[Optional[StrictStr], Field(description="Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.")] = None, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Tracking Plans  # noqa: E501
 
         Returns a list of Tracking Plans.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
 
-        >>> thread = api.list_tracking_plans_with_http_info(pagination, type, async_req=True)
+        >>> thread = api.list_tracking_plans_with_http_info(type, pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
-        :type pagination: PaginationInput
         :param type: Requests Tracking Plans of a certain type. If omitted, lists all types.  This parameter exists in v1.
         :type type: str
+        :param pagination: Pagination options.  This parameter exists in v1.
+        :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
         :param _preload_content: if False, the ApiResponse.data will
@@ -1035,8 +1035,8 @@ def list_tracking_plans_with_http_info(self, pagination : Annotated[PaginationIn
         _params = locals()
 
         _all_params = [
-            'pagination',
-            'type'
+            'type',
+            'pagination'
         ]
         _all_params.extend(
             [
@@ -1112,7 +1112,7 @@ def list_tracking_plans_with_http_info(self, pagination : Annotated[PaginationIn
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def remove_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True), rules : Annotated[conlist(conlist(RemoveRuleV1)), Field(..., description="Rules to delete.  This parameter exists in v1.")], **kwargs) -> RemoveRulesFromTrackingPlan200Response:  # noqa: E501
+    def remove_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True), rules : Annotated[conlist(RemoveRuleV1), Field(..., description="Rules to delete.  This parameter exists in v1.")], **kwargs) -> RemoveRulesFromTrackingPlan200Response:  # noqa: E501
         """Remove Rules from Tracking Plan  # noqa: E501
 
         Deletes Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -1144,7 +1144,7 @@ def remove_rules_from_tracking_plan(self, tracking_plan_id : constr(strict=True)
         return self.remove_rules_from_tracking_plan_with_http_info(tracking_plan_id, rules, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def remove_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), rules : Annotated[conlist(conlist(RemoveRuleV1)), Field(..., description="Rules to delete.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def remove_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=True), rules : Annotated[conlist(RemoveRuleV1), Field(..., description="Rules to delete.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
         """Remove Rules from Tracking Plan  # noqa: E501
 
         Deletes Tracking Plan rules.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -1223,7 +1223,7 @@ def remove_rules_from_tracking_plan_with_http_info(self, tracking_plan_id : cons
         _query_params = []
         if _params.get('rules') is not None:  # noqa: E501
             _query_params.append(('rules', _params['rules']))
-            _collection_formats['rules'] = 'csv'
+            _collection_formats['rules'] = 'multi'
 
         # process the header parameters
         _header_params = dict(_params.get('_headers', {}))
@@ -1541,7 +1541,7 @@ def replace_rules_in_tracking_plan_with_http_info(self, tracking_plan_id : const
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1699,7 +1699,7 @@ def update_rules_in_tracking_plan_with_http_info(self, tracking_plan_id : constr
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -1857,7 +1857,7 @@ def update_tracking_plan_with_http_info(self, tracking_plan_id : constr(strict=T
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/transformations_api.py b/segment_public_api/api/transformations_api.py
index 628f41ea4..68e156209 100644
--- a/segment_public_api/api/transformations_api.py
+++ b/segment_public_api/api/transformations_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,8 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
+from typing import Optional
+
 from segment_public_api.models.create_transformation200_response import CreateTransformation200Response
 from segment_public_api.models.create_transformation_v1_input import CreateTransformationV1Input
 from segment_public_api.models.delete_transformation200_response import DeleteTransformation200Response
@@ -170,7 +172,7 @@ def create_transformation_with_http_info(self, create_transformation_v1_input :
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -488,7 +490,7 @@ def get_transformation_with_http_info(self, transformation_id : constr(strict=Tr
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_transformations(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ListTransformations200Response:  # noqa: E501
+    def list_transformations(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ListTransformations200Response:  # noqa: E501
         """List Transformations  # noqa: E501
 
         Lists all Transformations in the Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -498,7 +500,7 @@ def list_transformations(self, pagination : Annotated[PaginationInput, Field(...
         >>> thread = api.list_transformations(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -518,7 +520,7 @@ def list_transformations(self, pagination : Annotated[PaginationInput, Field(...
         return self.list_transformations_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_transformations_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Pagination options.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_transformations_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Pagination options.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Transformations  # noqa: E501
 
         Lists all Transformations in the Workspace.    • In order to successfully call this endpoint, the specified Workspace needs to have the Protocols feature enabled. Please reach out to your customer success manager for more information.  # noqa: E501
@@ -528,7 +530,7 @@ def list_transformations_with_http_info(self, pagination : Annotated[PaginationI
         >>> thread = api.list_transformations_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Pagination options.  This parameter exists in v1. (required)
+        :param pagination: Pagination options.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -757,7 +759,7 @@ def update_transformation_with_http_info(self, transformation_id : constr(strict
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/warehouses_api.py b/segment_public_api/api/warehouses_api.py
index c67a17365..7585ee2ed 100644
--- a/segment_public_api/api/warehouses_api.py
+++ b/segment_public_api/api/warehouses_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,10 +22,12 @@
 from typing_extensions import Annotated
 from pydantic import Field, constr
 
-from segment_public_api.models.add_connection_from_source_to_warehouse200_response import AddConnectionFromSourceToWarehouse200Response
+from typing import Optional
+
+from segment_public_api.models.add_connection_from_source_to_warehouse201_response import AddConnectionFromSourceToWarehouse201Response
 from segment_public_api.models.create_validation_in_warehouse200_response import CreateValidationInWarehouse200Response
 from segment_public_api.models.create_validation_in_warehouse_v1_input import CreateValidationInWarehouseV1Input
-from segment_public_api.models.create_warehouse200_response import CreateWarehouse200Response
+from segment_public_api.models.create_warehouse201_response import CreateWarehouse201Response
 from segment_public_api.models.create_warehouse_v1_input import CreateWarehouseV1Input
 from segment_public_api.models.delete_warehouse200_response import DeleteWarehouse200Response
 from segment_public_api.models.get_connection_state_from_warehouse200_response import GetConnectionStateFromWarehouse200Response
@@ -58,7 +60,7 @@ def __init__(self, api_client=None) -> None:
         self.api_client = api_client
 
     @validate_arguments
-    def add_connection_from_source_to_warehouse(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), **kwargs) -> AddConnectionFromSourceToWarehouse200Response:  # noqa: E501
+    def add_connection_from_source_to_warehouse(self, warehouse_id : constr(strict=True), source_id : constr(strict=True), **kwargs) -> AddConnectionFromSourceToWarehouse201Response:  # noqa: E501
         """Add Connection from Source to Warehouse  # noqa: E501
 
         Connects a Source to a Warehouse.    • When called, this endpoint may generate the `Storage Destination Modified` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
@@ -81,7 +83,7 @@ def add_connection_from_source_to_warehouse(self, warehouse_id : constr(strict=T
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: AddConnectionFromSourceToWarehouse200Response
+        :rtype: AddConnectionFromSourceToWarehouse201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -126,7 +128,7 @@ def add_connection_from_source_to_warehouse_with_http_info(self, warehouse_id :
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(AddConnectionFromSourceToWarehouse200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(AddConnectionFromSourceToWarehouse201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -185,7 +187,7 @@ def add_connection_from_source_to_warehouse_with_http_info(self, warehouse_id :
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "AddConnectionFromSourceToWarehouse200Response",
+            '201': "AddConnectionFromSourceToWarehouse201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
@@ -327,7 +329,7 @@ def create_validation_in_warehouse_with_http_info(self, create_validation_in_war
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -359,7 +361,7 @@ def create_validation_in_warehouse_with_http_info(self, create_validation_in_war
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def create_warehouse(self, create_warehouse_v1_input : CreateWarehouseV1Input, **kwargs) -> CreateWarehouse200Response:  # noqa: E501
+    def create_warehouse(self, create_warehouse_v1_input : CreateWarehouseV1Input, **kwargs) -> CreateWarehouse201Response:  # noqa: E501
         """Create Warehouse  # noqa: E501
 
         Creates a new Warehouse.    • When called, this endpoint may generate the `Storage Destination Created` event in the [audit trail](/tag/Audit-Trail).         # noqa: E501
@@ -380,7 +382,7 @@ def create_warehouse(self, create_warehouse_v1_input : CreateWarehouseV1Input, *
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: CreateWarehouse200Response
+        :rtype: CreateWarehouse201Response
         """
         kwargs['_return_http_data_only'] = True
         if '_preload_content' in kwargs:
@@ -423,7 +425,7 @@ def create_warehouse_with_http_info(self, create_warehouse_v1_input : CreateWare
         :return: Returns the result object.
                  If the method is called asynchronously,
                  returns the request thread.
-        :rtype: tuple(CreateWarehouse200Response, status_code(int), headers(HTTPHeaderDict))
+        :rtype: tuple(CreateWarehouse201Response, status_code(int), headers(HTTPHeaderDict))
         """
 
         _params = locals()
@@ -477,7 +479,7 @@ def create_warehouse_with_http_info(self, create_warehouse_v1_input : CreateWare
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
@@ -485,7 +487,7 @@ def create_warehouse_with_http_info(self, create_warehouse_v1_input : CreateWare
         _auth_settings = ['token']  # noqa: E501
 
         _response_types_map = {
-            '200': "CreateWarehouse200Response",
+            '201': "CreateWarehouse201Response",
             '404': "RequestErrorEnvelope",
             '422': "RequestErrorEnvelope",
             '429': "RequestErrorEnvelope",
@@ -938,7 +940,7 @@ def get_warehouse_with_http_info(self, warehouse_id : constr(strict=True), **kwa
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_connected_sources_from_warehouse(self, warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListConnectedSourcesFromWarehouse200Response:  # noqa: E501
+    def list_connected_sources_from_warehouse(self, warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListConnectedSourcesFromWarehouse200Response:  # noqa: E501
         """List Connected Sources from Warehouse  # noqa: E501
 
         Returns the list of Sources that are connected to a Warehouse.  # noqa: E501
@@ -950,7 +952,7 @@ def list_connected_sources_from_warehouse(self, warehouse_id : constr(strict=Tru
 
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -970,7 +972,7 @@ def list_connected_sources_from_warehouse(self, warehouse_id : constr(strict=Tru
         return self.list_connected_sources_from_warehouse_with_http_info(warehouse_id, pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_connected_sources_from_warehouse_with_http_info(self, warehouse_id : constr(strict=True), pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_connected_sources_from_warehouse_with_http_info(self, warehouse_id : constr(strict=True), pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Connected Sources from Warehouse  # noqa: E501
 
         Returns the list of Sources that are connected to a Warehouse.  # noqa: E501
@@ -982,7 +984,7 @@ def list_connected_sources_from_warehouse_with_http_info(self, warehouse_id : co
 
         :param warehouse_id: (required)
         :type warehouse_id: str
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1089,7 +1091,7 @@ def list_connected_sources_from_warehouse_with_http_info(self, warehouse_id : co
             _request_auth=_params.get('_request_auth'))
 
     @validate_arguments
-    def list_warehouses(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ListWarehouses200Response:  # noqa: E501
+    def list_warehouses(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ListWarehouses200Response:  # noqa: E501
         """List Warehouses  # noqa: E501
 
         Returns a list of Warehouses.  # noqa: E501
@@ -1099,7 +1101,7 @@ def list_warehouses(self, pagination : Annotated[PaginationInput, Field(..., des
         >>> thread = api.list_warehouses(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1119,7 +1121,7 @@ def list_warehouses(self, pagination : Annotated[PaginationInput, Field(..., des
         return self.list_warehouses_with_http_info(pagination, **kwargs)  # noqa: E501
 
     @validate_arguments
-    def list_warehouses_with_http_info(self, pagination : Annotated[PaginationInput, Field(..., description="Defines the pagination parameters.  This parameter exists in v1.")], **kwargs) -> ApiResponse:  # noqa: E501
+    def list_warehouses_with_http_info(self, pagination : Annotated[Optional[PaginationInput], Field(description="Defines the pagination parameters.  This parameter exists in v1.")] = None, **kwargs) -> ApiResponse:  # noqa: E501
         """List Warehouses  # noqa: E501
 
         Returns a list of Warehouses.  # noqa: E501
@@ -1129,7 +1131,7 @@ def list_warehouses_with_http_info(self, pagination : Annotated[PaginationInput,
         >>> thread = api.list_warehouses_with_http_info(pagination, async_req=True)
         >>> result = thread.get()
 
-        :param pagination: Defines the pagination parameters.  This parameter exists in v1. (required)
+        :param pagination: Defines the pagination parameters.  This parameter exists in v1.
         :type pagination: PaginationInput
         :param async_req: Whether to execute the request asynchronously.
         :type async_req: bool, optional
@@ -1509,7 +1511,7 @@ def update_warehouse_with_http_info(self, warehouse_id : constr(strict=True), up
         # set the HTTP header `Content-Type`
         _content_types_list = _params.get('_content_type',
             self.api_client.select_header_content_type(
-                ['application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
+                ['application/json', 'application/vnd.segment.v1+json', 'application/vnd.segment.v1beta+json', 'application/vnd.segment.v1alpha+json']))
         if _content_types_list:
                 _header_params['Content-Type'] = _content_types_list
 
diff --git a/segment_public_api/api/workspaces_api.py b/segment_public_api/api/workspaces_api.py
index 886d7f235..3fbe2ef71 100644
--- a/segment_public_api/api/workspaces_api.py
+++ b/segment_public_api/api/workspaces_api.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/api_client.py b/segment_public_api/api_client.py
index 41e7498a9..073900af8 100644
--- a/segment_public_api/api_client.py
+++ b/segment_public_api/api_client.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -77,7 +77,7 @@ def __init__(self, configuration=None, header_name=None, header_value=None,
             self.default_headers[header_name] = header_value
         self.cookie = cookie
         # Set default User-Agent.
-        self.user_agent = 'Public API SDK 37.2.0 (Python)'
+        self.user_agent = 'Public API SDK 58.13.0 (Python)'
         self.client_side_validation = configuration.client_side_validation
 
     def __enter__(self):
@@ -538,7 +538,10 @@ def parameters_to_url_query(self, params, collection_formats):
             if k in collection_formats:
                 collection_format = collection_formats[k]
                 if collection_format == 'multi':
-                    new_params.extend((k, value) for value in v)
+                    if isinstance(k, str):
+                        new_params.extend((f'{k}.{i}', value) for i, value in enumerate(v))
+                    else:
+                        new_params.extend((k, value) for value in v)
                 else:
                     if collection_format == 'ssv':
                         delimiter = ' '
@@ -756,4 +759,4 @@ def __deserialize_model(self, data, klass):
         :return: model object.
         """
 
-        return klass.from_dict(data)
+        return klass.from_dict(data)
\ No newline at end of file
diff --git a/segment_public_api/configuration.py b/segment_public_api/configuration.py
index bda078fee..54b0cb66e 100644
--- a/segment_public_api/configuration.py
+++ b/segment_public_api/configuration.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -376,8 +376,8 @@ def to_debug_report(self):
         return "Python SDK Debug Report:\n"\
                "OS: {env}\n"\
                "Python Version: {pyversion}\n"\
-               "Version of the API: 37.2.0\n"\
-               "SDK Package Version: 37.2.0".\
+               "Version of the API: 58.13.0\n"\
+               "SDK Package Version: 58.13.0".\
                format(env=sys.platform, pyversion=sys.version)
 
     def get_host_settings(self):
diff --git a/segment_public_api/exceptions.py b/segment_public_api/exceptions.py
index f6ca89113..aa5b35142 100644
--- a/segment_public_api/exceptions.py
+++ b/segment_public_api/exceptions.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/__init__.py b/segment_public_api/models/__init__.py
index b6f383df8..a2dd29885 100644
--- a/segment_public_api/models/__init__.py
+++ b/segment_public_api/models/__init__.py
@@ -6,7 +6,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -17,8 +17,15 @@
 # import models into model package
 from segment_public_api.models.api_call_snapshot_v1 import APICallSnapshotV1
 from segment_public_api.models.access_permission_v1 import AccessPermissionV1
-from segment_public_api.models.add_connection_from_source_to_warehouse200_response import AddConnectionFromSourceToWarehouse200Response
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+from segment_public_api.models.add_activation_to_audience200_response import AddActivationToAudience200Response
+from segment_public_api.models.add_activation_to_audience_alpha_input import AddActivationToAudienceAlphaInput
+from segment_public_api.models.add_activation_to_audience_alpha_output import AddActivationToAudienceAlphaOutput
+from segment_public_api.models.add_connection_from_source_to_warehouse201_response import AddConnectionFromSourceToWarehouse201Response
 from segment_public_api.models.add_connection_from_source_to_warehouse_v1_output import AddConnectionFromSourceToWarehouseV1Output
+from segment_public_api.models.add_destination_to_audience200_response import AddDestinationToAudience200Response
+from segment_public_api.models.add_destination_to_audience_alpha_input import AddDestinationToAudienceAlphaInput
+from segment_public_api.models.add_destination_to_audience_alpha_output import AddDestinationToAudienceAlphaOutput
 from segment_public_api.models.add_labels_to_source200_response import AddLabelsToSource200Response
 from segment_public_api.models.add_labels_to_source200_response1 import AddLabelsToSource200Response1
 from segment_public_api.models.add_labels_to_source_alpha_input import AddLabelsToSourceAlphaInput
@@ -40,30 +47,70 @@
 from segment_public_api.models.advanced_warehouse_sync_schedule_v1_input import AdvancedWarehouseSyncScheduleV1Input
 from segment_public_api.models.advanced_warehouse_sync_schedule_v1_output import AdvancedWarehouseSyncScheduleV1Output
 from segment_public_api.models.allowed_label_beta import AllowedLabelBeta
+from segment_public_api.models.audience_compute_cadence import AudienceComputeCadence
+from segment_public_api.models.audience_definition import AudienceDefinition
+from segment_public_api.models.audience_definition_without_type import AudienceDefinitionWithoutType
+from segment_public_api.models.audience_options import AudienceOptions
+from segment_public_api.models.audience_options_with_lookback import AudienceOptionsWithLookback
+from segment_public_api.models.audience_preview import AudiencePreview
+from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
+from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
+from segment_public_api.models.audience_preview_identifier import AudiencePreviewIdentifier
+from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
+from segment_public_api.models.audience_preview_result import AudiencePreviewResult
+from segment_public_api.models.audience_schedule import AudienceSchedule
+from segment_public_api.models.audience_size import AudienceSize
 from segment_public_api.models.audience_summary import AudienceSummary
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
 from segment_public_api.models.audit_event_v1 import AuditEventV1
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space200_response import BatchQueryMessagingSubscriptionsForSpace200Response
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_input import BatchQueryMessagingSubscriptionsForSpaceAlphaInput
 from segment_public_api.models.batch_query_messaging_subscriptions_for_space_alpha_output import BatchQueryMessagingSubscriptionsForSpaceAlphaOutput
 from segment_public_api.models.breakdown_beta import BreakdownBeta
+from segment_public_api.models.cancel_reverse_etl_sync_for_model200_response import CancelReverseETLSyncForModel200Response
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_input import CancelReverseETLSyncForModelInput
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_output import CancelReverseETLSyncForModelOutput
 from segment_public_api.models.common_source_settings_v1 import CommonSourceSettingsV1
 from segment_public_api.models.computed_trait_summary import ComputedTraitSummary
+from segment_public_api.models.computed_traits_definition import ComputedTraitsDefinition
+from segment_public_api.models.config import Config
+from segment_public_api.models.config1 import Config1
+from segment_public_api.models.connection import Connection
 from segment_public_api.models.contact import Contact
+from segment_public_api.models.create_audience200_response import CreateAudience200Response
+from segment_public_api.models.create_audience_alpha_input import CreateAudienceAlphaInput
+from segment_public_api.models.create_audience_alpha_output import CreateAudienceAlphaOutput
+from segment_public_api.models.create_audience_preview200_response import CreateAudiencePreview200Response
+from segment_public_api.models.create_audience_preview_alpha_input import CreateAudiencePreviewAlphaInput
+from segment_public_api.models.create_audience_preview_alpha_output import CreateAudiencePreviewAlphaOutput
+from segment_public_api.models.create_audience_preview_options import CreateAudiencePreviewOptions
 from segment_public_api.models.create_cloud_source_regulation200_response import CreateCloudSourceRegulation200Response
 from segment_public_api.models.create_cloud_source_regulation_v1_input import CreateCloudSourceRegulationV1Input
 from segment_public_api.models.create_cloud_source_regulation_v1_output import CreateCloudSourceRegulationV1Output
+from segment_public_api.models.create_computed_trait200_response import CreateComputedTrait200Response
+from segment_public_api.models.create_computed_trait_alpha_input import CreateComputedTraitAlphaInput
+from segment_public_api.models.create_computed_trait_alpha_output import CreateComputedTraitAlphaOutput
+from segment_public_api.models.create_dbt_model_sync_trigger200_response import CreateDbtModelSyncTrigger200Response
+from segment_public_api.models.create_dbt_model_sync_trigger_input import CreateDbtModelSyncTriggerInput
+from segment_public_api.models.create_dbt_model_sync_trigger_output import CreateDbtModelSyncTriggerOutput
 from segment_public_api.models.create_destination200_response import CreateDestination200Response
 from segment_public_api.models.create_destination_subscription200_response import CreateDestinationSubscription200Response
 from segment_public_api.models.create_destination_subscription_alpha_input import CreateDestinationSubscriptionAlphaInput
 from segment_public_api.models.create_destination_subscription_alpha_output import CreateDestinationSubscriptionAlphaOutput
 from segment_public_api.models.create_destination_v1_input import CreateDestinationV1Input
 from segment_public_api.models.create_destination_v1_output import CreateDestinationV1Output
+from segment_public_api.models.create_download200_response import CreateDownload200Response
+from segment_public_api.models.create_download_alpha_input import CreateDownloadAlphaInput
+from segment_public_api.models.create_download_alpha_output import CreateDownloadAlphaOutput
 from segment_public_api.models.create_edge_functions200_response import CreateEdgeFunctions200Response
 from segment_public_api.models.create_edge_functions_alpha_input import CreateEdgeFunctionsAlphaInput
 from segment_public_api.models.create_edge_functions_alpha_output import CreateEdgeFunctionsAlphaOutput
 from segment_public_api.models.create_filter_for_destination200_response import CreateFilterForDestination200Response
 from segment_public_api.models.create_filter_for_destination_v1_input import CreateFilterForDestinationV1Input
 from segment_public_api.models.create_filter_for_destination_v1_output import CreateFilterForDestinationV1Output
+from segment_public_api.models.create_filter_for_space200_response import CreateFilterForSpace200Response
+from segment_public_api.models.create_filter_for_space_input import CreateFilterForSpaceInput
+from segment_public_api.models.create_filter_for_space_output import CreateFilterForSpaceOutput
 from segment_public_api.models.create_function200_response import CreateFunction200Response
 from segment_public_api.models.create_function_deployment200_response import CreateFunctionDeployment200Response
 from segment_public_api.models.create_function_deployment_v1_output import CreateFunctionDeploymentV1Output
@@ -72,20 +119,23 @@
 from segment_public_api.models.create_insert_function_instance200_response import CreateInsertFunctionInstance200Response
 from segment_public_api.models.create_insert_function_instance_alpha_input import CreateInsertFunctionInstanceAlphaInput
 from segment_public_api.models.create_insert_function_instance_alpha_output import CreateInsertFunctionInstanceAlphaOutput
-from segment_public_api.models.create_invites200_response import CreateInvites200Response
+from segment_public_api.models.create_invites201_response import CreateInvites201Response
 from segment_public_api.models.create_invites_v1_input import CreateInvitesV1Input
 from segment_public_api.models.create_invites_v1_output import CreateInvitesV1Output
-from segment_public_api.models.create_label200_response import CreateLabel200Response
+from segment_public_api.models.create_label201_response import CreateLabel201Response
 from segment_public_api.models.create_label_v1_input import CreateLabelV1Input
 from segment_public_api.models.create_label_v1_output import CreateLabelV1Output
-from segment_public_api.models.create_profiles_warehouse200_response import CreateProfilesWarehouse200Response
+from segment_public_api.models.create_profiles_warehouse201_response import CreateProfilesWarehouse201Response
 from segment_public_api.models.create_profiles_warehouse_alpha_input import CreateProfilesWarehouseAlphaInput
 from segment_public_api.models.create_profiles_warehouse_alpha_output import CreateProfilesWarehouseAlphaOutput
-from segment_public_api.models.create_reverse_etl_model200_response import CreateReverseEtlModel200Response
+from segment_public_api.models.create_reverse_etl_manual_sync200_response import CreateReverseETLManualSync200Response
+from segment_public_api.models.create_reverse_etl_manual_sync_input import CreateReverseETLManualSyncInput
+from segment_public_api.models.create_reverse_etl_manual_sync_output import CreateReverseETLManualSyncOutput
+from segment_public_api.models.create_reverse_etl_model201_response import CreateReverseEtlModel201Response
 from segment_public_api.models.create_reverse_etl_model_input import CreateReverseEtlModelInput
 from segment_public_api.models.create_reverse_etl_model_output import CreateReverseEtlModelOutput
-from segment_public_api.models.create_source200_response import CreateSource200Response
-from segment_public_api.models.create_source200_response1 import CreateSource200Response1
+from segment_public_api.models.create_source201_response import CreateSource201Response
+from segment_public_api.models.create_source201_response1 import CreateSource201Response1
 from segment_public_api.models.create_source_alpha_input import CreateSourceAlphaInput
 from segment_public_api.models.create_source_alpha_output import CreateSourceAlphaOutput
 from segment_public_api.models.create_source_regulation200_response import CreateSourceRegulation200Response
@@ -107,14 +157,20 @@
 from segment_public_api.models.create_validation_in_warehouse200_response import CreateValidationInWarehouse200Response
 from segment_public_api.models.create_validation_in_warehouse_v1_input import CreateValidationInWarehouseV1Input
 from segment_public_api.models.create_validation_in_warehouse_v1_output import CreateValidationInWarehouseV1Output
-from segment_public_api.models.create_warehouse200_response import CreateWarehouse200Response
+from segment_public_api.models.create_warehouse201_response import CreateWarehouse201Response
 from segment_public_api.models.create_warehouse_v1_input import CreateWarehouseV1Input
 from segment_public_api.models.create_warehouse_v1_output import CreateWarehouseV1Output
 from segment_public_api.models.create_workspace_regulation200_response import CreateWorkspaceRegulation200Response
 from segment_public_api.models.create_workspace_regulation_v1_input import CreateWorkspaceRegulationV1Input
 from segment_public_api.models.create_workspace_regulation_v1_output import CreateWorkspaceRegulationV1Output
+from segment_public_api.models.create_write_key_for_source200_response import CreateWriteKeyForSource200Response
+from segment_public_api.models.create_write_key_for_source_alpha_output import CreateWriteKeyForSourceAlphaOutput
+from segment_public_api.models.dbt_model_sync_trigger import DbtModelSyncTrigger
+from segment_public_api.models.delete_activation_alpha_output import DeleteActivationAlphaOutput
 from segment_public_api.models.delete_destination200_response import DeleteDestination200Response
 from segment_public_api.models.delete_destination_v1_output import DeleteDestinationV1Output
+from segment_public_api.models.delete_filter_by_id200_response import DeleteFilterById200Response
+from segment_public_api.models.delete_filter_by_id_output import DeleteFilterByIdOutput
 from segment_public_api.models.delete_function200_response import DeleteFunction200Response
 from segment_public_api.models.delete_function_v1_output import DeleteFunctionV1Output
 from segment_public_api.models.delete_insert_function_instance200_response import DeleteInsertFunctionInstance200Response
@@ -146,8 +202,14 @@
 from segment_public_api.models.delete_warehouse200_response import DeleteWarehouse200Response
 from segment_public_api.models.delete_warehouse_v1_output import DeleteWarehouseV1Output
 from segment_public_api.models.delivery_metrics_summary_beta import DeliveryMetricsSummaryBeta
+from segment_public_api.models.delivery_overview_destination_filter_by import DeliveryOverviewDestinationFilterBy
+from segment_public_api.models.delivery_overview_metrics_datapoint import DeliveryOverviewMetricsDatapoint
+from segment_public_api.models.delivery_overview_metrics_dataset import DeliveryOverviewMetricsDataset
+from segment_public_api.models.delivery_overview_source_filter_by import DeliveryOverviewSourceFilterBy
+from segment_public_api.models.delivery_overview_successfully_received_filter_by import DeliveryOverviewSuccessfullyReceivedFilterBy
 from segment_public_api.models.destination_filter_action_v1 import DestinationFilterActionV1
 from segment_public_api.models.destination_filter_v1 import DestinationFilterV1
+from segment_public_api.models.destination_input import DestinationInput
 from segment_public_api.models.destination_metadata_action_field_v1 import DestinationMetadataActionFieldV1
 from segment_public_api.models.destination_metadata_action_v1 import DestinationMetadataActionV1
 from segment_public_api.models.destination_metadata_component_v1 import DestinationMetadataComponentV1
@@ -162,23 +224,33 @@
 from segment_public_api.models.destination_v1 import DestinationV1
 from segment_public_api.models.disable_edge_functions200_response import DisableEdgeFunctions200Response
 from segment_public_api.models.disable_edge_functions_alpha_output import DisableEdgeFunctionsAlphaOutput
+from segment_public_api.models.download import Download
 from segment_public_api.models.echo200_response import Echo200Response
 from segment_public_api.models.echo200_response1 import Echo200Response1
 from segment_public_api.models.echo_alpha_output import EchoAlphaOutput
 from segment_public_api.models.echo_v1_output import EchoV1Output
 from segment_public_api.models.edge_functions_alpha import EdgeFunctionsAlpha
+from segment_public_api.models.entity_details import EntityDetails
 from segment_public_api.models.event_source_v1 import EventSourceV1
 from segment_public_api.models.fql_defined_property_v1 import FQLDefinedPropertyV1
-from segment_public_api.models.function import Function
+from segment_public_api.models.filter import Filter
 from segment_public_api.models.function_deployment import FunctionDeployment
 from segment_public_api.models.function_setting_v1 import FunctionSettingV1
 from segment_public_api.models.function_v1 import FunctionV1
 from segment_public_api.models.generate_upload_url_for_edge_functions200_response import GenerateUploadURLForEdgeFunctions200Response
 from segment_public_api.models.generate_upload_url_for_edge_functions_alpha_output import GenerateUploadURLForEdgeFunctionsAlphaOutput
+from segment_public_api.models.get_activation_from_audience200_response import GetActivationFromAudience200Response
+from segment_public_api.models.get_activation_from_audience_output import GetActivationFromAudienceOutput
 from segment_public_api.models.get_advanced_sync_schedule_from_warehouse200_response import GetAdvancedSyncScheduleFromWarehouse200Response
 from segment_public_api.models.get_advanced_sync_schedule_from_warehouse_v1_output import GetAdvancedSyncScheduleFromWarehouseV1Output
 from segment_public_api.models.get_audience200_response import GetAudience200Response
+from segment_public_api.models.get_audience200_response1 import GetAudience200Response1
 from segment_public_api.models.get_audience_alpha_output import GetAudienceAlphaOutput
+from segment_public_api.models.get_audience_beta_output import GetAudienceBetaOutput
+from segment_public_api.models.get_audience_preview200_response import GetAudiencePreview200Response
+from segment_public_api.models.get_audience_preview_alpha_output import GetAudiencePreviewAlphaOutput
+from segment_public_api.models.get_audience_schedule_from_space_and_audience200_response import GetAudienceScheduleFromSpaceAndAudience200Response
+from segment_public_api.models.get_audience_schedule_from_space_and_audience_alpha_output import GetAudienceScheduleFromSpaceAndAudienceAlphaOutput
 from segment_public_api.models.get_computed_trait200_response import GetComputedTrait200Response
 from segment_public_api.models.get_computed_trait_alpha_output import GetComputedTraitAlphaOutput
 from segment_public_api.models.get_connection_state_from_warehouse200_response import GetConnectionStateFromWarehouse200Response
@@ -191,15 +263,19 @@
 from segment_public_api.models.get_daily_workspace_api_calls_usage_v1_output import GetDailyWorkspaceAPICallsUsageV1Output
 from segment_public_api.models.get_daily_workspace_mtu_usage200_response import GetDailyWorkspaceMTUUsage200Response
 from segment_public_api.models.get_daily_workspace_mtu_usage_v1_output import GetDailyWorkspaceMTUUsageV1Output
+from segment_public_api.models.get_delivery_overview_metrics_beta_output import GetDeliveryOverviewMetricsBetaOutput
 from segment_public_api.models.get_destination200_response import GetDestination200Response
 from segment_public_api.models.get_destination_metadata200_response import GetDestinationMetadata200Response
 from segment_public_api.models.get_destination_metadata_v1_output import GetDestinationMetadataV1Output
 from segment_public_api.models.get_destination_v1_output import GetDestinationV1Output
 from segment_public_api.models.get_destinations_catalog200_response import GetDestinationsCatalog200Response
 from segment_public_api.models.get_destinations_catalog_v1_output import GetDestinationsCatalogV1Output
+from segment_public_api.models.get_egress_failed_metrics_from_delivery_overview200_response import GetEgressFailedMetricsFromDeliveryOverview200Response
 from segment_public_api.models.get_events_volume_from_workspace200_response import GetEventsVolumeFromWorkspace200Response
 from segment_public_api.models.get_events_volume_from_workspace_v1_output import GetEventsVolumeFromWorkspaceV1Output
 from segment_public_api.models.get_events_volume_from_workspace_v1_query import GetEventsVolumeFromWorkspaceV1Query
+from segment_public_api.models.get_filter_by_id200_response import GetFilterById200Response
+from segment_public_api.models.get_filter_by_id_output import GetFilterByIdOutput
 from segment_public_api.models.get_filter_in_destination200_response import GetFilterInDestination200Response
 from segment_public_api.models.get_filter_in_destination_v1_output import GetFilterInDestinationV1Output
 from segment_public_api.models.get_function200_response import GetFunction200Response
@@ -214,6 +290,8 @@
 from segment_public_api.models.get_messaging_subscription_success_response import GetMessagingSubscriptionSuccessResponse
 from segment_public_api.models.get_regulation200_response import GetRegulation200Response
 from segment_public_api.models.get_regulation_v1_output import GetRegulationV1Output
+from segment_public_api.models.get_reverse_etl_sync_status200_response import GetReverseETLSyncStatus200Response
+from segment_public_api.models.get_reverse_etl_sync_status_output import GetReverseETLSyncStatusOutput
 from segment_public_api.models.get_reverse_etl_model200_response import GetReverseEtlModel200Response
 from segment_public_api.models.get_reverse_etl_model_output import GetReverseEtlModelOutput
 from segment_public_api.models.get_source200_response import GetSource200Response
@@ -252,6 +330,7 @@
 from segment_public_api.models.group_subscription_status_response import GroupSubscriptionStatusResponse
 from segment_public_api.models.handle_webhook_input import HandleWebhookInput
 from segment_public_api.models.handle_webhook_output import HandleWebhookOutput
+from segment_public_api.models.hash_properties_configuration import HashPropertiesConfiguration
 from segment_public_api.models.identify_source_settings_v1 import IdentifySourceSettingsV1
 from segment_public_api.models.insert_function_instance_alpha import InsertFunctionInstanceAlpha
 from segment_public_api.models.integration_option_beta import IntegrationOptionBeta
@@ -259,8 +338,20 @@
 from segment_public_api.models.invite_v1 import InviteV1
 from segment_public_api.models.label_alpha import LabelAlpha
 from segment_public_api.models.label_v1 import LabelV1
+from segment_public_api.models.list_activations_alpha_output import ListActivationsAlphaOutput
+from segment_public_api.models.list_activations_from_audience200_response import ListActivationsFromAudience200Response
+from segment_public_api.models.list_activations_from_audience_output import ListActivationsFromAudienceOutput
+from segment_public_api.models.list_audience_consumers_from_space_and_audience200_response import ListAudienceConsumersFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_consumers_from_space_and_audience_alpha_output import ListAudienceConsumersFromSpaceAndAudienceAlphaOutput
+from segment_public_api.models.list_audience_consumers_sort_input import ListAudienceConsumersSortInput
+from segment_public_api.models.list_audience_schedules_from_space_and_audience200_response import ListAudienceSchedulesFromSpaceAndAudience200Response
+from segment_public_api.models.list_audience_schedules_from_space_and_audience_alpha_output import ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput
+from segment_public_api.models.list_audience_search_input import ListAudienceSearchInput
 from segment_public_api.models.list_audiences200_response import ListAudiences200Response
+from segment_public_api.models.list_audiences200_response1 import ListAudiences200Response1
 from segment_public_api.models.list_audiences_alpha_output import ListAudiencesAlphaOutput
+from segment_public_api.models.list_audiences_beta_output import ListAudiencesBetaOutput
+from segment_public_api.models.list_audiences_pagination_input import ListAudiencesPaginationInput
 from segment_public_api.models.list_audit_events200_response import ListAuditEvents200Response
 from segment_public_api.models.list_audit_events_v1_output import ListAuditEventsV1Output
 from segment_public_api.models.list_computed_traits200_response import ListComputedTraits200Response
@@ -279,8 +370,12 @@
 from segment_public_api.models.list_delivery_metrics_summary_from_destination_beta_output import ListDeliveryMetricsSummaryFromDestinationBetaOutput
 from segment_public_api.models.list_destinations200_response import ListDestinations200Response
 from segment_public_api.models.list_destinations_v1_output import ListDestinationsV1Output
+from segment_public_api.models.list_filters_for_space200_response import ListFiltersForSpace200Response
+from segment_public_api.models.list_filters_for_space_output import ListFiltersForSpaceOutput
 from segment_public_api.models.list_filters_from_destination200_response import ListFiltersFromDestination200Response
 from segment_public_api.models.list_filters_from_destination_v1_output import ListFiltersFromDestinationV1Output
+from segment_public_api.models.list_filters_pagination_input import ListFiltersPaginationInput
+from segment_public_api.models.list_filters_pagination_output import ListFiltersPaginationOutput
 from segment_public_api.models.list_function_item_v1 import ListFunctionItemV1
 from segment_public_api.models.list_function_versions200_response import ListFunctionVersions200Response
 from segment_public_api.models.list_function_versions_alpha_output import ListFunctionVersionsAlphaOutput
@@ -300,6 +395,8 @@
 from segment_public_api.models.list_profiles_warehouse_in_space_alpha_output import ListProfilesWarehouseInSpaceAlphaOutput
 from segment_public_api.models.list_regulations_from_source200_response import ListRegulationsFromSource200Response
 from segment_public_api.models.list_regulations_from_source_v1_output import ListRegulationsFromSourceV1Output
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response import ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id_output import ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput
 from segment_public_api.models.list_reverse_etl_models200_response import ListReverseEtlModels200Response
 from segment_public_api.models.list_reverse_etl_models_output import ListReverseEtlModelsOutput
 from segment_public_api.models.list_roles200_response import ListRoles200Response
@@ -318,6 +415,8 @@
 from segment_public_api.models.list_sources_from_tracking_plan200_response import ListSourcesFromTrackingPlan200Response
 from segment_public_api.models.list_sources_from_tracking_plan_v1_output import ListSourcesFromTrackingPlanV1Output
 from segment_public_api.models.list_sources_v1_output import ListSourcesV1Output
+from segment_public_api.models.list_spaces200_response import ListSpaces200Response
+from segment_public_api.models.list_spaces_alpha_output import ListSpacesAlphaOutput
 from segment_public_api.models.list_subscriptions_from_destination200_response import ListSubscriptionsFromDestination200Response
 from segment_public_api.models.list_subscriptions_from_destination_alpha_output import ListSubscriptionsFromDestinationAlphaOutput
 from segment_public_api.models.list_suppressions200_response import ListSuppressions200Response
@@ -354,6 +453,7 @@
 from segment_public_api.models.mtu_snapshot_v1 import MtuSnapshotV1
 from segment_public_api.models.pagination_input import PaginationInput
 from segment_public_api.models.pagination_output import PaginationOutput
+from segment_public_api.models.periodic_config import PeriodicConfig
 from segment_public_api.models.permission_input_v1 import PermissionInputV1
 from segment_public_api.models.permission_resource_v1 import PermissionResourceV1
 from segment_public_api.models.permission_v1 import PermissionV1
@@ -361,13 +461,17 @@
 from segment_public_api.models.preview_destination_filter_v1 import PreviewDestinationFilterV1
 from segment_public_api.models.preview_destination_filter_v1_input import PreviewDestinationFilterV1Input
 from segment_public_api.models.preview_destination_filter_v1_output import PreviewDestinationFilterV1Output
+from segment_public_api.models.profile import Profile
 from segment_public_api.models.profiles_warehouse_alpha import ProfilesWarehouseAlpha
 from segment_public_api.models.property_rename_beta import PropertyRenameBeta
 from segment_public_api.models.property_rename_v1 import PropertyRenameV1
 from segment_public_api.models.property_value_transformation_beta import PropertyValueTransformationBeta
 from segment_public_api.models.property_value_transformation_v1 import PropertyValueTransformationV1
+from segment_public_api.models.read_audience_preview_options import ReadAudiencePreviewOptions
 from segment_public_api.models.regulation import Regulation
 from segment_public_api.models.regulation_list_entry_v1 import RegulationListEntryV1
+from segment_public_api.models.remove_activation_from_audience200_response import RemoveActivationFromAudience200Response
+from segment_public_api.models.remove_activation_from_audience_output import RemoveActivationFromAudienceOutput
 from segment_public_api.models.remove_audience_from_space200_response import RemoveAudienceFromSpace200Response
 from segment_public_api.models.remove_audience_from_space_alpha_output import RemoveAudienceFromSpaceAlphaOutput
 from segment_public_api.models.remove_computed_trait_from_space200_response import RemoveComputedTraitFromSpace200Response
@@ -387,6 +491,8 @@
 from segment_public_api.models.remove_subscription_from_destination_alpha_output import RemoveSubscriptionFromDestinationAlphaOutput
 from segment_public_api.models.remove_users_from_user_group200_response import RemoveUsersFromUserGroup200Response
 from segment_public_api.models.remove_users_from_user_group_v1_output import RemoveUsersFromUserGroupV1Output
+from segment_public_api.models.remove_write_key_from_source200_response import RemoveWriteKeyFromSource200Response
+from segment_public_api.models.remove_write_key_from_source_alpha_output import RemoveWriteKeyFromSourceAlphaOutput
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse200_response import ReplaceAdvancedSyncScheduleForWarehouse200Response
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse_v1_input import ReplaceAdvancedSyncScheduleForWarehouseV1Input
 from segment_public_api.models.replace_advanced_sync_schedule_for_warehouse_v1_output import ReplaceAdvancedSyncScheduleForWarehouseV1Output
@@ -417,7 +523,15 @@
 from segment_public_api.models.restore_function_version200_response import RestoreFunctionVersion200Response
 from segment_public_api.models.restore_function_version_alpha_input import RestoreFunctionVersionAlphaInput
 from segment_public_api.models.restore_function_version_alpha_output import RestoreFunctionVersionAlphaOutput
+from segment_public_api.models.reverse_etl_manual_sync_job_output import ReverseETLManualSyncJobOutput
+from segment_public_api.models.reverse_etl_sync_status import ReverseETLSyncStatus
+from segment_public_api.models.reverse_etl_cron_schedule_config import ReverseEtlCronScheduleConfig
+from segment_public_api.models.reverse_etl_dbt_cloud_schedule_config import ReverseEtlDbtCloudScheduleConfig
 from segment_public_api.models.reverse_etl_model import ReverseEtlModel
+from segment_public_api.models.reverse_etl_periodic_schedule_config import ReverseEtlPeriodicScheduleConfig
+from segment_public_api.models.reverse_etl_schedule_config import ReverseEtlScheduleConfig
+from segment_public_api.models.reverse_etl_schedule_definition import ReverseEtlScheduleDefinition
+from segment_public_api.models.reverse_etl_specific_time_schedule_config import ReverseEtlSpecificTimeScheduleConfig
 from segment_public_api.models.role_v1 import RoleV1
 from segment_public_api.models.rule_input_v1 import RuleInputV1
 from segment_public_api.models.rule_v1 import RuleV1
@@ -431,23 +545,34 @@
 from segment_public_api.models.space import Space
 from segment_public_api.models.space_warehouse_schema_override import SpaceWarehouseSchemaOverride
 from segment_public_api.models.space_warehouse_selective_sync_item_alpha import SpaceWarehouseSelectiveSyncItemAlpha
+from segment_public_api.models.specific_days_config import SpecificDaysConfig
 from segment_public_api.models.stream_status_v1 import StreamStatusV1
 from segment_public_api.models.suppressed_inner import SuppressedInner
+from segment_public_api.models.sync_extract_phase import SyncExtractPhase
+from segment_public_api.models.sync_load_phase import SyncLoadPhase
 from segment_public_api.models.sync_notice_v1 import SyncNoticeV1
 from segment_public_api.models.sync_v1 import SyncV1
 from segment_public_api.models.track_source_settings_v1 import TrackSourceSettingsV1
 from segment_public_api.models.tracking_plan_v1 import TrackingPlanV1
+from segment_public_api.models.trait_definition import TraitDefinition
+from segment_public_api.models.trait_options import TraitOptions
 from segment_public_api.models.transformation_beta import TransformationBeta
 from segment_public_api.models.transformation_v1 import TransformationV1
+from segment_public_api.models.update_activation_for_audience200_response import UpdateActivationForAudience200Response
+from segment_public_api.models.update_activation_for_audience_alpha_input import UpdateActivationForAudienceAlphaInput
+from segment_public_api.models.update_activation_for_audience_output import UpdateActivationForAudienceOutput
 from segment_public_api.models.update_audience_for_space200_response import UpdateAudienceForSpace200Response
+from segment_public_api.models.update_audience_for_space_alpha_input import UpdateAudienceForSpaceAlphaInput
 from segment_public_api.models.update_audience_for_space_alpha_output import UpdateAudienceForSpaceAlphaOutput
-from segment_public_api.models.update_audience_for_space_input import UpdateAudienceForSpaceInput
 from segment_public_api.models.update_computed_trait_for_space200_response import UpdateComputedTraitForSpace200Response
 from segment_public_api.models.update_computed_trait_for_space_alpha_input import UpdateComputedTraitForSpaceAlphaInput
 from segment_public_api.models.update_computed_trait_for_space_alpha_output import UpdateComputedTraitForSpaceAlphaOutput
 from segment_public_api.models.update_destination200_response import UpdateDestination200Response
 from segment_public_api.models.update_destination_v1_input import UpdateDestinationV1Input
 from segment_public_api.models.update_destination_v1_output import UpdateDestinationV1Output
+from segment_public_api.models.update_filter_by_id200_response import UpdateFilterById200Response
+from segment_public_api.models.update_filter_by_id_input import UpdateFilterByIdInput
+from segment_public_api.models.update_filter_by_id_output import UpdateFilterByIdOutput
 from segment_public_api.models.update_filter_for_destination200_response import UpdateFilterForDestination200Response
 from segment_public_api.models.update_filter_for_destination_v1_input import UpdateFilterForDestinationV1Input
 from segment_public_api.models.update_filter_for_destination_v1_output import UpdateFilterForDestinationV1Output
diff --git a/segment_public_api/models/access_permission_v1.py b/segment_public_api/models/access_permission_v1.py
index d094c00b8..94b51c430 100644
--- a/segment_public_api/models/access_permission_v1.py
+++ b/segment_public_api/models/access_permission_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/activation_summary_output.py b/segment_public_api/models/activation_summary_output.py
new file mode 100644
index 000000000..7849b7616
--- /dev/null
+++ b/segment_public_api/models/activation_summary_output.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class ActivationSummaryOutput(BaseModel):
+    """
+    A class that encapsulates the output shared across endpoints for a given activation.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The activation id.")
+    enabled: StrictBool = Field(..., description="Activation Enabled Status.")
+    __properties = ["id", "enabled"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ActivationSummaryOutput:
+        """Create an instance of ActivationSummaryOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ActivationSummaryOutput:
+        """Create an instance of ActivationSummaryOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ActivationSummaryOutput.parse_obj(obj)
+
+        _obj = ActivationSummaryOutput.parse_obj({
+            "id": obj.get("id"),
+            "enabled": obj.get("enabled")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_activation_to_audience200_response.py b/segment_public_api/models/add_activation_to_audience200_response.py
new file mode 100644
index 000000000..bcb81f993
--- /dev/null
+++ b/segment_public_api/models/add_activation_to_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.add_activation_to_audience_alpha_output import AddActivationToAudienceAlphaOutput
+
+class AddActivationToAudience200Response(BaseModel):
+    """
+    AddActivationToAudience200Response
+    """
+    data: Optional[AddActivationToAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddActivationToAudience200Response:
+        """Create an instance of AddActivationToAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddActivationToAudience200Response:
+        """Create an instance of AddActivationToAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddActivationToAudience200Response.parse_obj(obj)
+
+        _obj = AddActivationToAudience200Response.parse_obj({
+            "data": AddActivationToAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_activation_to_audience_alpha_input.py b/segment_public_api/models/add_activation_to_audience_alpha_input.py
new file mode 100644
index 000000000..c79dc0d31
--- /dev/null
+++ b/segment_public_api/models/add_activation_to_audience_alpha_input.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Any, Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class AddActivationToAudienceAlphaInput(BaseModel):
+    """
+    Input to create an activation.  # noqa: E501
+    """
+    version_schema: StrictStr = Field(..., alias="versionSchema", description="Version Schema.")
+    workspace_id: StrictStr = Field(..., alias="workspaceId", description="The id of the Workspace the audience exists within.")
+    destination_id: StrictStr = Field(..., alias="destinationId", description="The Destination id.")
+    enabled: Optional[StrictBool] = Field(None, description="Whether the event emitter should be created in an enabled state.")
+    has_enabled_resync: Optional[StrictBool] = Field(None, alias="hasEnabledResync", description="Whether the event emitter should be created with the resync option.")
+    emit_entity_context: Optional[StrictStr] = Field(None, alias="emitEntityContext", description="Whether the event emitter should emit events when the profile changes or when any enriched entity values changes. Only valid for identify events.")
+    event_emitter: Optional[Any] = Field(..., alias="eventEmitter", description="Configuration settings for the event emitter to be created.")
+    subscription: Optional[Any] = Field(..., description="Subscription info to connect the event emitter to a Destination attached to the audience.")
+    __properties = ["versionSchema", "workspaceId", "destinationId", "enabled", "hasEnabledResync", "emitEntityContext", "eventEmitter", "subscription"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddActivationToAudienceAlphaInput:
+        """Create an instance of AddActivationToAudienceAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # set to None if event_emitter (nullable) is None
+        # and __fields_set__ contains the field
+        if self.event_emitter is None and "event_emitter" in self.__fields_set__:
+            _dict['eventEmitter'] = None
+
+        # set to None if subscription (nullable) is None
+        # and __fields_set__ contains the field
+        if self.subscription is None and "subscription" in self.__fields_set__:
+            _dict['subscription'] = None
+
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddActivationToAudienceAlphaInput:
+        """Create an instance of AddActivationToAudienceAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddActivationToAudienceAlphaInput.parse_obj(obj)
+
+        _obj = AddActivationToAudienceAlphaInput.parse_obj({
+            "version_schema": obj.get("versionSchema"),
+            "workspace_id": obj.get("workspaceId"),
+            "destination_id": obj.get("destinationId"),
+            "enabled": obj.get("enabled"),
+            "has_enabled_resync": obj.get("hasEnabledResync"),
+            "emit_entity_context": obj.get("emitEntityContext"),
+            "event_emitter": obj.get("eventEmitter"),
+            "subscription": obj.get("subscription")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_activation_to_audience_alpha_output.py b/segment_public_api/models/add_activation_to_audience_alpha_output.py
new file mode 100644
index 000000000..3b853f5a1
--- /dev/null
+++ b/segment_public_api/models/add_activation_to_audience_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+
+class AddActivationToAudienceAlphaOutput(BaseModel):
+    """
+    Activation output for create.  # noqa: E501
+    """
+    activation: ActivationSummaryOutput = Field(...)
+    __properties = ["activation"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddActivationToAudienceAlphaOutput:
+        """Create an instance of AddActivationToAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of activation
+        if self.activation:
+            _dict['activation'] = self.activation.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddActivationToAudienceAlphaOutput:
+        """Create an instance of AddActivationToAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddActivationToAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = AddActivationToAudienceAlphaOutput.parse_obj({
+            "activation": ActivationSummaryOutput.from_dict(obj.get("activation")) if obj.get("activation") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_connection_from_source_to_warehouse200_response.py b/segment_public_api/models/add_connection_from_source_to_warehouse201_response.py
similarity index 86%
rename from segment_public_api/models/add_connection_from_source_to_warehouse200_response.py
rename to segment_public_api/models/add_connection_from_source_to_warehouse201_response.py
index 6d39e2055..8b008b665 100644
--- a/segment_public_api/models/add_connection_from_source_to_warehouse200_response.py
+++ b/segment_public_api/models/add_connection_from_source_to_warehouse201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.add_connection_from_source_to_warehouse_v1_output import AddConnectionFromSourceToWarehouseV1Output
 
-class AddConnectionFromSourceToWarehouse200Response(BaseModel):
+class AddConnectionFromSourceToWarehouse201Response(BaseModel):
     """
-    AddConnectionFromSourceToWarehouse200Response
+    AddConnectionFromSourceToWarehouse201Response
     """
     data: Optional[AddConnectionFromSourceToWarehouseV1Output] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> AddConnectionFromSourceToWarehouse200Response:
-        """Create an instance of AddConnectionFromSourceToWarehouse200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> AddConnectionFromSourceToWarehouse201Response:
+        """Create an instance of AddConnectionFromSourceToWarehouse201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> AddConnectionFromSourceToWarehouse200Response:
-        """Create an instance of AddConnectionFromSourceToWarehouse200Response from a dict"""
+    def from_dict(cls, obj: dict) -> AddConnectionFromSourceToWarehouse201Response:
+        """Create an instance of AddConnectionFromSourceToWarehouse201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return AddConnectionFromSourceToWarehouse200Response.parse_obj(obj)
+            return AddConnectionFromSourceToWarehouse201Response.parse_obj(obj)
 
-        _obj = AddConnectionFromSourceToWarehouse200Response.parse_obj({
+        _obj = AddConnectionFromSourceToWarehouse201Response.parse_obj({
             "data": AddConnectionFromSourceToWarehouseV1Output.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/add_connection_from_source_to_warehouse_v1_output.py b/segment_public_api/models/add_connection_from_source_to_warehouse_v1_output.py
index 6fbd085f1..9ccb6a432 100644
--- a/segment_public_api/models/add_connection_from_source_to_warehouse_v1_output.py
+++ b/segment_public_api/models/add_connection_from_source_to_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_destination_to_audience200_response.py b/segment_public_api/models/add_destination_to_audience200_response.py
new file mode 100644
index 000000000..b0d5ec038
--- /dev/null
+++ b/segment_public_api/models/add_destination_to_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.add_destination_to_audience_alpha_output import AddDestinationToAudienceAlphaOutput
+
+class AddDestinationToAudience200Response(BaseModel):
+    """
+    AddDestinationToAudience200Response
+    """
+    data: Optional[AddDestinationToAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddDestinationToAudience200Response:
+        """Create an instance of AddDestinationToAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddDestinationToAudience200Response:
+        """Create an instance of AddDestinationToAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddDestinationToAudience200Response.parse_obj(obj)
+
+        _obj = AddDestinationToAudience200Response.parse_obj({
+            "data": AddDestinationToAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_destination_to_audience_alpha_input.py b/segment_public_api/models/add_destination_to_audience_alpha_input.py
new file mode 100644
index 000000000..28f187428
--- /dev/null
+++ b/segment_public_api/models/add_destination_to_audience_alpha_input.py
@@ -0,0 +1,80 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+from segment_public_api.models.destination_input import DestinationInput
+
+class AddDestinationToAudienceAlphaInput(BaseModel):
+    """
+    Input to Add a Destination into an Audience.  # noqa: E501
+    """
+    version_schema: StrictStr = Field(..., alias="versionSchema", description="Version Schema.")
+    workspace_id: StrictStr = Field(..., alias="workspaceId", description="The id of the Workspace the audience exists within.")
+    destination: DestinationInput = Field(...)
+    __properties = ["versionSchema", "workspaceId", "destination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddDestinationToAudienceAlphaInput:
+        """Create an instance of AddDestinationToAudienceAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of destination
+        if self.destination:
+            _dict['destination'] = self.destination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddDestinationToAudienceAlphaInput:
+        """Create an instance of AddDestinationToAudienceAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddDestinationToAudienceAlphaInput.parse_obj(obj)
+
+        _obj = AddDestinationToAudienceAlphaInput.parse_obj({
+            "version_schema": obj.get("versionSchema"),
+            "workspace_id": obj.get("workspaceId"),
+            "destination": DestinationInput.from_dict(obj.get("destination")) if obj.get("destination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_destination_to_audience_alpha_output.py b/segment_public_api/models/add_destination_to_audience_alpha_output.py
new file mode 100644
index 000000000..425be3297
--- /dev/null
+++ b/segment_public_api/models/add_destination_to_audience_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.connection import Connection
+
+class AddDestinationToAudienceAlphaOutput(BaseModel):
+    """
+    AddDestinationToAudienceAlphaOutput
+    """
+    connection: Connection = Field(...)
+    __properties = ["connection"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AddDestinationToAudienceAlphaOutput:
+        """Create an instance of AddDestinationToAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of connection
+        if self.connection:
+            _dict['connection'] = self.connection.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AddDestinationToAudienceAlphaOutput:
+        """Create an instance of AddDestinationToAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AddDestinationToAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = AddDestinationToAudienceAlphaOutput.parse_obj({
+            "connection": Connection.from_dict(obj.get("connection")) if obj.get("connection") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/add_labels_to_source200_response.py b/segment_public_api/models/add_labels_to_source200_response.py
index 04125be81..81633e604 100644
--- a/segment_public_api/models/add_labels_to_source200_response.py
+++ b/segment_public_api/models/add_labels_to_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_labels_to_source200_response1.py b/segment_public_api/models/add_labels_to_source200_response1.py
index 0d61bdd79..c8bafaf47 100644
--- a/segment_public_api/models/add_labels_to_source200_response1.py
+++ b/segment_public_api/models/add_labels_to_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_labels_to_source_alpha_input.py b/segment_public_api/models/add_labels_to_source_alpha_input.py
index 320dd7dac..b6eb3de1d 100644
--- a/segment_public_api/models/add_labels_to_source_alpha_input.py
+++ b/segment_public_api/models/add_labels_to_source_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_labels_to_source_alpha_output.py b/segment_public_api/models/add_labels_to_source_alpha_output.py
index e23e4bdfc..9c050309f 100644
--- a/segment_public_api/models/add_labels_to_source_alpha_output.py
+++ b/segment_public_api/models/add_labels_to_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_labels_to_source_v1_input.py b/segment_public_api/models/add_labels_to_source_v1_input.py
index 41853bb34..dbc942964 100644
--- a/segment_public_api/models/add_labels_to_source_v1_input.py
+++ b/segment_public_api/models/add_labels_to_source_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_labels_to_source_v1_output.py b/segment_public_api/models/add_labels_to_source_v1_output.py
index b1c15ba18..94ae9a8d3 100644
--- a/segment_public_api/models/add_labels_to_source_v1_output.py
+++ b/segment_public_api/models/add_labels_to_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user200_response.py b/segment_public_api/models/add_permissions_to_user200_response.py
index 70197b368..f4c767c6f 100644
--- a/segment_public_api/models/add_permissions_to_user200_response.py
+++ b/segment_public_api/models/add_permissions_to_user200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user_group200_response.py b/segment_public_api/models/add_permissions_to_user_group200_response.py
index 9ff993352..ba7da030e 100644
--- a/segment_public_api/models/add_permissions_to_user_group200_response.py
+++ b/segment_public_api/models/add_permissions_to_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user_group_v1_input.py b/segment_public_api/models/add_permissions_to_user_group_v1_input.py
index b84699dd9..5205a3d36 100644
--- a/segment_public_api/models/add_permissions_to_user_group_v1_input.py
+++ b/segment_public_api/models/add_permissions_to_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user_group_v1_output.py b/segment_public_api/models/add_permissions_to_user_group_v1_output.py
index da62e1b6e..cccda464e 100644
--- a/segment_public_api/models/add_permissions_to_user_group_v1_output.py
+++ b/segment_public_api/models/add_permissions_to_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user_v1_input.py b/segment_public_api/models/add_permissions_to_user_v1_input.py
index 1d0f8cb1f..1fe0c56d6 100644
--- a/segment_public_api/models/add_permissions_to_user_v1_input.py
+++ b/segment_public_api/models/add_permissions_to_user_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_permissions_to_user_v1_output.py b/segment_public_api/models/add_permissions_to_user_v1_output.py
index 0581e1074..12b376cc2 100644
--- a/segment_public_api/models/add_permissions_to_user_v1_output.py
+++ b/segment_public_api/models/add_permissions_to_user_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_source_to_tracking_plan200_response.py b/segment_public_api/models/add_source_to_tracking_plan200_response.py
index 52f591a3d..10202517e 100644
--- a/segment_public_api/models/add_source_to_tracking_plan200_response.py
+++ b/segment_public_api/models/add_source_to_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_source_to_tracking_plan_v1_input.py b/segment_public_api/models/add_source_to_tracking_plan_v1_input.py
index 693a9bcbb..4f059b0e5 100644
--- a/segment_public_api/models/add_source_to_tracking_plan_v1_input.py
+++ b/segment_public_api/models/add_source_to_tracking_plan_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_source_to_tracking_plan_v1_output.py b/segment_public_api/models/add_source_to_tracking_plan_v1_output.py
index e57ca880b..ca89b2b49 100644
--- a/segment_public_api/models/add_source_to_tracking_plan_v1_output.py
+++ b/segment_public_api/models/add_source_to_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_users_to_user_group200_response.py b/segment_public_api/models/add_users_to_user_group200_response.py
index 12786cb0f..838ec77fa 100644
--- a/segment_public_api/models/add_users_to_user_group200_response.py
+++ b/segment_public_api/models/add_users_to_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_users_to_user_group_v1_input.py b/segment_public_api/models/add_users_to_user_group_v1_input.py
index 6a565b584..3f09aa1fb 100644
--- a/segment_public_api/models/add_users_to_user_group_v1_input.py
+++ b/segment_public_api/models/add_users_to_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/add_users_to_user_group_v1_output.py b/segment_public_api/models/add_users_to_user_group_v1_output.py
index cad34dfdc..df69d216c 100644
--- a/segment_public_api/models/add_users_to_user_group_v1_output.py
+++ b/segment_public_api/models/add_users_to_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/advanced_warehouse_sync_schedule_v1_input.py b/segment_public_api/models/advanced_warehouse_sync_schedule_v1_input.py
index d5eb7f8ef..2a039572e 100644
--- a/segment_public_api/models/advanced_warehouse_sync_schedule_v1_input.py
+++ b/segment_public_api/models/advanced_warehouse_sync_schedule_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/advanced_warehouse_sync_schedule_v1_output.py b/segment_public_api/models/advanced_warehouse_sync_schedule_v1_output.py
index 46d73a0f3..16c1a86f9 100644
--- a/segment_public_api/models/advanced_warehouse_sync_schedule_v1_output.py
+++ b/segment_public_api/models/advanced_warehouse_sync_schedule_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/allowed_label_beta.py b/segment_public_api/models/allowed_label_beta.py
index 76b64cf5b..df433da6d 100644
--- a/segment_public_api/models/allowed_label_beta.py
+++ b/segment_public_api/models/allowed_label_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/api_call_snapshot_v1.py b/segment_public_api/models/api_call_snapshot_v1.py
index 32445e6e0..2b4453cc7 100644
--- a/segment_public_api/models/api_call_snapshot_v1.py
+++ b/segment_public_api/models/api_call_snapshot_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/audience_compute_cadence.py b/segment_public_api/models/audience_compute_cadence.py
new file mode 100644
index 000000000..a44333d30
--- /dev/null
+++ b/segment_public_api/models/audience_compute_cadence.py
@@ -0,0 +1,79 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class AudienceComputeCadence(BaseModel):
+    """
+    AudienceComputeCadence
+    """
+    type: StrictStr = Field(..., description="The cadence type on which the audience's membership is computed. If 'BATCH', the audience is computed on a periodic basis. If 'REALTIME', the audience is continously computed.")
+    __properties = ["type"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('BATCH', 'REALTIME'):
+            raise ValueError("must be one of enum values ('BATCH', 'REALTIME')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceComputeCadence:
+        """Create an instance of AudienceComputeCadence from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceComputeCadence:
+        """Create an instance of AudienceComputeCadence from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceComputeCadence.parse_obj(obj)
+
+        _obj = AudienceComputeCadence.parse_obj({
+            "type": obj.get("type")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_definition.py b/segment_public_api/models/audience_definition.py
new file mode 100644
index 000000000..a911f03b5
--- /dev/null
+++ b/segment_public_api/models/audience_definition.py
@@ -0,0 +1,83 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class AudienceDefinition(BaseModel):
+    """
+    AudienceDefinition
+    """
+    type: StrictStr = Field(..., description="The underlying data type being segmented for this audience.  Possible values: users, accounts.")
+    query: StrictStr = Field(..., description="The query language string defining the audience segmentation criteria.  For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
+    target_entity: Optional[StrictStr] = Field(None, alias="targetEntity", description="The target entity slug.")
+    __properties = ["type", "query", "targetEntity"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceDefinition:
+        """Create an instance of AudienceDefinition from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceDefinition:
+        """Create an instance of AudienceDefinition from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceDefinition.parse_obj(obj)
+
+        _obj = AudienceDefinition.parse_obj({
+            "type": obj.get("type"),
+            "query": obj.get("query"),
+            "target_entity": obj.get("targetEntity")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_definition_without_type.py b/segment_public_api/models/audience_definition_without_type.py
new file mode 100644
index 000000000..bc3f4c451
--- /dev/null
+++ b/segment_public_api/models/audience_definition_without_type.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr
+
+class AudienceDefinitionWithoutType(BaseModel):
+    """
+    AudienceDefinitionWithoutType
+    """
+    query: StrictStr = Field(..., description="The query language string defining the audience segmentation criteria.  For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
+    target_entity: Optional[StrictStr] = Field(None, alias="targetEntity", description="The target entity slug.")
+    __properties = ["query", "targetEntity"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceDefinitionWithoutType:
+        """Create an instance of AudienceDefinitionWithoutType from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceDefinitionWithoutType:
+        """Create an instance of AudienceDefinitionWithoutType from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceDefinitionWithoutType.parse_obj(obj)
+
+        _obj = AudienceDefinitionWithoutType.parse_obj({
+            "query": obj.get("query"),
+            "target_entity": obj.get("targetEntity")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_options.py b/segment_public_api/models/audience_options.py
new file mode 100644
index 000000000..caa2ceed2
--- /dev/null
+++ b/segment_public_api/models/audience_options.py
@@ -0,0 +1,78 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional, Union
+from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist
+
+class AudienceOptions(BaseModel):
+    """
+    AudienceOptions
+    """
+    include_historical_data: Optional[StrictBool] = Field(None, alias="includeHistoricalData", description="Determines whether data prior to the audience being created is included when determining audience membership. Note that including historical data may be needed in order to properly handle the definition specified. In these cases, Segment will automatically handle including historical data and the response will return the includeHistoricalData parameter as true.")
+    include_anonymous_users: Optional[StrictBool] = Field(None, alias="includeAnonymousUsers", description="Determines whether anonymous users should be included when determining audience membership.")
+    filter_by_external_ids: Optional[conlist(StrictStr)] = Field(None, alias="filterByExternalIds", description="The set of profile external identifiers being used to determine audience membership. Profiles will only be considered for audience membership if the profile has at least one external id whose key matches a value in this set.")
+    backfill_event_data_days: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="backfillEventDataDays", description="If specified, the value of this field indicates the number of days, specified from the date the audience was created, that event data will be included from when determining audience membership. If unspecified, defer to the value of `includeHistoricalData` to determine whether historical data is either entirely included or entirely excluded when determining audience membership.")
+    __properties = ["includeHistoricalData", "includeAnonymousUsers", "filterByExternalIds", "backfillEventDataDays"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceOptions:
+        """Create an instance of AudienceOptions from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceOptions:
+        """Create an instance of AudienceOptions from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceOptions.parse_obj(obj)
+
+        _obj = AudienceOptions.parse_obj({
+            "include_historical_data": obj.get("includeHistoricalData"),
+            "include_anonymous_users": obj.get("includeAnonymousUsers"),
+            "filter_by_external_ids": obj.get("filterByExternalIds"),
+            "backfill_event_data_days": obj.get("backfillEventDataDays")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_options_with_lookback.py b/segment_public_api/models/audience_options_with_lookback.py
new file mode 100644
index 000000000..1b844ccbe
--- /dev/null
+++ b/segment_public_api/models/audience_options_with_lookback.py
@@ -0,0 +1,78 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional, Union
+from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist
+
+class AudienceOptionsWithLookback(BaseModel):
+    """
+    AudienceOptionsWithLookback
+    """
+    filter_by_external_ids: conlist(StrictStr) = Field(..., alias="filterByExternalIds", description="The set of profile external identifiers being used to determine audience membership. Profiles will only be considered for audience membership if the profile has at least one external id whose key matches a value in this set.")
+    include_historical_data: Optional[StrictBool] = Field(None, alias="includeHistoricalData", description="Determines whether data prior to the audience being created is included when determining audience membership. Note that including historical data may be needed in order to properly handle the definition specified. In these cases, Segment will automatically handle including historical data and the response will return the includeHistoricalData parameter as true.")
+    include_anonymous_users: Optional[StrictBool] = Field(None, alias="includeAnonymousUsers", description="Determines whether anonymous users should be included when determining audience membership.")
+    backfill_event_data_days: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="backfillEventDataDays", description="If specified, the value of this field indicates the number of days, specified from the date the audience was created, that event data will be included from when determining audience membership. If unspecified, defer to the value of `includeHistoricalData` to determine whether historical data is either entirely included or entirely excluded when determining audience membership.")
+    __properties = ["filterByExternalIds", "includeHistoricalData", "includeAnonymousUsers", "backfillEventDataDays"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceOptionsWithLookback:
+        """Create an instance of AudienceOptionsWithLookback from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceOptionsWithLookback:
+        """Create an instance of AudienceOptionsWithLookback from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceOptionsWithLookback.parse_obj(obj)
+
+        _obj = AudienceOptionsWithLookback.parse_obj({
+            "filter_by_external_ids": obj.get("filterByExternalIds"),
+            "include_historical_data": obj.get("includeHistoricalData"),
+            "include_anonymous_users": obj.get("includeAnonymousUsers"),
+            "backfill_event_data_days": obj.get("backfillEventDataDays")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview.py b/segment_public_api/models/audience_preview.py
new file mode 100644
index 000000000..012f6f083
--- /dev/null
+++ b/segment_public_api/models/audience_preview.py
@@ -0,0 +1,120 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist, validator
+from segment_public_api.models.audience_definition_without_type import AudienceDefinitionWithoutType
+from segment_public_api.models.audience_preview_result import AudiencePreviewResult
+from segment_public_api.models.audience_size import AudienceSize
+from segment_public_api.models.read_audience_preview_options import ReadAudiencePreviewOptions
+
+class AudiencePreview(BaseModel):
+    """
+    An audience preview.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="Unique identifier for tracking and retrieving results of an audience preview.")
+    audience_type: StrictStr = Field(..., alias="audienceType", description="The audience type of the preview.")
+    definition: AudienceDefinitionWithoutType = Field(...)
+    options: ReadAudiencePreviewOptions = Field(...)
+    status: StrictStr = Field(..., description="Status for the audience preview.")
+    results: Optional[conlist(AudiencePreviewResult)] = Field(None, description="Sampled result membership for the audience preview. Only has a value if the status is 'COMPLETED'.")
+    size: Optional[AudienceSize] = None
+    failure_reason: Optional[StrictStr] = Field(None, alias="failureReason", description="Explanation of why the audience preview failed. Only has a value if status is 'FAILED'.")
+    __properties = ["id", "audienceType", "definition", "options", "status", "results", "size", "failureReason"]
+
+    @validator('audience_type')
+    def audience_type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'LINKED', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'LINKED', 'USERS')")
+        return value
+
+    @validator('status')
+    def status_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('COMPLETED', 'FAILED', 'RUNNING'):
+            raise ValueError("must be one of enum values ('COMPLETED', 'FAILED', 'RUNNING')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreview:
+        """Create an instance of AudiencePreview from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of each item in results (list)
+        _items = []
+        if self.results:
+            for _item in self.results:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['results'] = _items
+        # override the default output from pydantic by calling `to_dict()` of size
+        if self.size:
+            _dict['size'] = self.size.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreview:
+        """Create an instance of AudiencePreview from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudiencePreview.parse_obj(obj)
+
+        _obj = AudiencePreview.parse_obj({
+            "id": obj.get("id"),
+            "audience_type": obj.get("audienceType"),
+            "definition": AudienceDefinitionWithoutType.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "options": ReadAudiencePreviewOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None,
+            "status": obj.get("status"),
+            "results": [AudiencePreviewResult.from_dict(_item) for _item in obj.get("results")] if obj.get("results") is not None else None,
+            "size": AudienceSize.from_dict(obj.get("size")) if obj.get("size") is not None else None,
+            "failure_reason": obj.get("failureReason")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview_account_result.py b/segment_public_api/models/audience_preview_account_result.py
new file mode 100644
index 000000000..2b30a09dd
--- /dev/null
+++ b/segment_public_api/models/audience_preview_account_result.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class AudiencePreviewAccountResult(BaseModel):
+    """
+    Result membership object for an audience preview with `audienceType: ACCOUNTS`.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="Account id.")
+    __properties = ["id"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreviewAccountResult:
+        """Create an instance of AudiencePreviewAccountResult from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreviewAccountResult:
+        """Create an instance of AudiencePreviewAccountResult from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudiencePreviewAccountResult.parse_obj(obj)
+
+        _obj = AudiencePreviewAccountResult.parse_obj({
+            "id": obj.get("id")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview_entities_result.py b/segment_public_api/models/audience_preview_entities_result.py
new file mode 100644
index 000000000..a7b039fd6
--- /dev/null
+++ b/segment_public_api/models/audience_preview_entities_result.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Any, Dict, List, Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
+from segment_public_api.models.profile import Profile
+
+class AudiencePreviewEntitiesResult(BaseModel):
+    """
+    Result membership object for an audience preview with `audienceType: USERS` or `audienceType: LINKED`.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The entities associated with the profile. Will only have a value if the audience preview has `audienceType: LINKED` and entities are referenced in the audience preview's definition.")
+    id_property: StrictStr = Field(..., alias="idProperty", description="The entity primary key column name.")
+    relationship_slug: StrictStr = Field(..., alias="relationshipSlug", description="The entity relationship slug.")
+    properties: Optional[Dict[str, Any]] = Field(None, description="Entity properties.")
+    entities: Optional[Dict[str, Any]] = Field(None, description="Related entities that are one level deeper will only be returned if those entities are referenced in the audience definition.")
+    profiles: Optional[conlist(Profile)] = Field(None, description="Related list of profiles.")
+    profiles_truncated: StrictBool = Field(..., alias="profilesTruncated", description="Indicates if only a subset of the profiles associated with the entity were returned.")
+    __properties = ["id", "idProperty", "relationshipSlug", "properties", "entities", "profiles", "profilesTruncated"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreviewEntitiesResult:
+        """Create an instance of AudiencePreviewEntitiesResult from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in profiles (list)
+        _items = []
+        if self.profiles:
+            for _item in self.profiles:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['profiles'] = _items
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreviewEntitiesResult:
+        """Create an instance of AudiencePreviewEntitiesResult from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudiencePreviewEntitiesResult.parse_obj(obj)
+
+        _obj = AudiencePreviewEntitiesResult.parse_obj({
+            "id": obj.get("id"),
+            "id_property": obj.get("idProperty"),
+            "relationship_slug": obj.get("relationshipSlug"),
+            "properties": obj.get("properties"),
+            "entities": obj.get("entities"),
+            "profiles": [Profile.from_dict(_item) for _item in obj.get("profiles")] if obj.get("profiles") is not None else None,
+            "profiles_truncated": obj.get("profilesTruncated")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview_identifier.py b/segment_public_api/models/audience_preview_identifier.py
new file mode 100644
index 000000000..145420006
--- /dev/null
+++ b/segment_public_api/models/audience_preview_identifier.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class AudiencePreviewIdentifier(BaseModel):
+    """
+    Identifier for an audience preview.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="Unique identifier for tracking and retrieving results of an audience preview.")
+    __properties = ["id"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreviewIdentifier:
+        """Create an instance of AudiencePreviewIdentifier from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreviewIdentifier:
+        """Create an instance of AudiencePreviewIdentifier from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudiencePreviewIdentifier.parse_obj(obj)
+
+        _obj = AudiencePreviewIdentifier.parse_obj({
+            "id": obj.get("id")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview_profile_result.py b/segment_public_api/models/audience_preview_profile_result.py
new file mode 100644
index 000000000..c081e75db
--- /dev/null
+++ b/segment_public_api/models/audience_preview_profile_result.py
@@ -0,0 +1,91 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Dict, List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist
+from segment_public_api.models.entity_details import EntityDetails
+
+class AudiencePreviewProfileResult(BaseModel):
+    """
+    Result membership object for an audience preview with `audienceType: USERS` or `audienceType: LINKED`.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="Segment id.")
+    entities: Optional[Dict[str, conlist(EntityDetails)]] = Field(None, description="Associated entities.")
+    __properties = ["id", "entities"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreviewProfileResult:
+        """Create an instance of AudiencePreviewProfileResult from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each value in entities (dict of array)
+        _field_dict_of_array = {}
+        if self.entities:
+            for _key in self.entities:
+                if self.entities[_key]:
+                    _field_dict_of_array[_key] = [
+                        _item.to_dict() for _item in self.entities[_key]
+                    ]
+            _dict['entities'] = _field_dict_of_array
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreviewProfileResult:
+        """Create an instance of AudiencePreviewProfileResult from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudiencePreviewProfileResult.parse_obj(obj)
+
+        _obj = AudiencePreviewProfileResult.parse_obj({
+            "id": obj.get("id"),
+            "entities": dict(
+                (_k,
+                        [EntityDetails.from_dict(_item) for _item in _v]
+                        if _v is not None
+                        else None
+                )
+                for _k, _v in obj.get("entities").items()
+            )
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_preview_result.py b/segment_public_api/models/audience_preview_result.py
new file mode 100644
index 000000000..2c46a1e6c
--- /dev/null
+++ b/segment_public_api/models/audience_preview_result.py
@@ -0,0 +1,150 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re  # noqa: F401
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
+from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
+from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
+from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
+from typing import Union, Any, List, TYPE_CHECKING
+from pydantic import StrictStr, Field
+
+AUDIENCEPREVIEWRESULT_ANY_OF_SCHEMAS = ["AudiencePreviewAccountResult", "AudiencePreviewEntitiesResult", "AudiencePreviewProfileResult"]
+
+class AudiencePreviewResult(BaseModel):
+    """
+    AudiencePreviewResult
+    """
+
+    # data type: AudiencePreviewAccountResult
+    anyof_schema_1_validator: Optional[AudiencePreviewAccountResult] = None
+    # data type: AudiencePreviewProfileResult
+    anyof_schema_2_validator: Optional[AudiencePreviewProfileResult] = None
+    # data type: AudiencePreviewEntitiesResult
+    anyof_schema_3_validator: Optional[AudiencePreviewEntitiesResult] = None
+    if TYPE_CHECKING:
+        actual_instance: Union[AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult]
+    else:
+        actual_instance: Any
+    any_of_schemas: List[str] = Field(AUDIENCEPREVIEWRESULT_ANY_OF_SCHEMAS, const=True)
+
+    class Config:
+        validate_assignment = True
+
+    def __init__(self, *args, **kwargs) -> None:
+        if args:
+            if len(args) > 1:
+                raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+            if kwargs:
+                raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+            super().__init__(actual_instance=args[0])
+        else:
+            super().__init__(**kwargs)
+
+    @validator('actual_instance')
+    def actual_instance_must_validate_anyof(cls, v):
+        instance = AudiencePreviewResult.construct()
+        error_messages = []
+        # validate data type: AudiencePreviewAccountResult
+        if not isinstance(v, AudiencePreviewAccountResult):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `AudiencePreviewAccountResult`")
+        else:
+            return v
+
+        # validate data type: AudiencePreviewProfileResult
+        if not isinstance(v, AudiencePreviewProfileResult):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `AudiencePreviewProfileResult`")
+        else:
+            return v
+
+        # validate data type: AudiencePreviewEntitiesResult
+        if not isinstance(v, AudiencePreviewEntitiesResult):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `AudiencePreviewEntitiesResult`")
+        else:
+            return v
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when setting the actual_instance in AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
+        else:
+            return v
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudiencePreviewResult:
+        return cls.from_json(json.dumps(obj))
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudiencePreviewResult:
+        """Returns the object represented by the json string"""
+        instance = AudiencePreviewResult.construct()
+        error_messages = []
+        # anyof_schema_1_validator: Optional[AudiencePreviewAccountResult] = None
+        try:
+            instance.actual_instance = AudiencePreviewAccountResult.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_2_validator: Optional[AudiencePreviewProfileResult] = None
+        try:
+            instance.actual_instance = AudiencePreviewProfileResult.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_3_validator: Optional[AudiencePreviewEntitiesResult] = None
+        try:
+            instance.actual_instance = AudiencePreviewEntitiesResult.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when deserializing the JSON string into AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
+        else:
+            return instance
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_json()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_dict(self) -> dict:
+        """Returns the dict representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_dict()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_str(self) -> str:
+        """Returns the string representation of the actual instance"""
+        return pprint.pformat(self.dict())
+
+
diff --git a/segment_public_api/models/audience_schedule.py b/segment_public_api/models/audience_schedule.py
new file mode 100644
index 000000000..ac5407a3e
--- /dev/null
+++ b/segment_public_api/models/audience_schedule.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, validator
+from segment_public_api.models.config import Config
+
+class AudienceSchedule(BaseModel):
+    """
+    Defines an Audience Schedule.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="Distinct identifier for the schedule.")
+    strategy: StrictStr = Field(..., description="Strategy of the audience schedule (manual, periodic, or specific days).")
+    config: Optional[Config] = None
+    next_execution: Optional[StrictStr] = Field(None, alias="nextExecution", description="The next scheduled execution time (RFC3339).")
+    __properties = ["id", "strategy", "config", "nextExecution"]
+
+    @validator('strategy')
+    def strategy_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS'):
+            raise ValueError("must be one of enum values ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceSchedule:
+        """Create an instance of AudienceSchedule from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of config
+        if self.config:
+            _dict['config'] = self.config.to_dict()
+        # set to None if config (nullable) is None
+        # and __fields_set__ contains the field
+        if self.config is None and "config" in self.__fields_set__:
+            _dict['config'] = None
+
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceSchedule:
+        """Create an instance of AudienceSchedule from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceSchedule.parse_obj(obj)
+
+        _obj = AudienceSchedule.parse_obj({
+            "id": obj.get("id"),
+            "strategy": obj.get("strategy"),
+            "config": Config.from_dict(obj.get("config")) if obj.get("config") is not None else None,
+            "next_execution": obj.get("nextExecution")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_size.py b/segment_public_api/models/audience_size.py
new file mode 100644
index 000000000..de70e874b
--- /dev/null
+++ b/segment_public_api/models/audience_size.py
@@ -0,0 +1,83 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, validator
+
+class AudienceSize(BaseModel):
+    """
+    AudienceSize
+    """
+    count: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The total audience membership count. Refer to the type field to determine the unit for this field (profiles, accounts, etc).")
+    type: StrictStr = Field(..., description="The unit type for the count(s) being returned.")
+    unique_count: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="uniqueCount", description="The unique audience membership count.")
+    __properties = ["count", "type", "uniqueCount"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'ENTITIES', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'ENTITIES', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceSize:
+        """Create an instance of AudienceSize from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceSize:
+        """Create an instance of AudienceSize from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceSize.parse_obj(obj)
+
+        _obj = AudienceSize.parse_obj({
+            "count": obj.get("count"),
+            "type": obj.get("type"),
+            "unique_count": obj.get("uniqueCount")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audience_summary.py b/segment_public_api/models/audience_summary.py
index cd12303b1..61adb98e6 100644
--- a/segment_public_api/models/audience_summary.py
+++ b/segment_public_api/models/audience_summary.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,8 +19,10 @@
 import json
 
 
-
-from pydantic import BaseModel, Field, StrictBool, StrictStr
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr, validator
+from segment_public_api.models.audience_definition import AudienceDefinition
+from segment_public_api.models.audience_options import AudienceOptions
 
 class AudienceSummary(BaseModel):
     """
@@ -29,14 +31,25 @@ class AudienceSummary(BaseModel):
     id: StrictStr = Field(..., description="Audience id.")
     space_id: StrictStr = Field(..., alias="spaceId", description="Space id for the audience.")
     name: StrictStr = Field(..., description="Name of the audience.")
-    description: StrictStr = Field(..., description="Description of the audience.")
+    description: Optional[StrictStr] = Field(None, description="Description of the audience.")
     key: StrictStr = Field(..., description="Key for the audience.")
     enabled: StrictBool = Field(..., description="Enabled/disabled status for the audience.")
+    definition: Optional[AudienceDefinition] = Field(...)
+    status: Optional[StrictStr] = Field(None, description="Status for the audience.  Possible values: Backfilling, Computing, Failed, Live, Awaiting Destinations, Disabled.")
     created_by: StrictStr = Field(..., alias="createdBy", description="User id who created the audience.")
     updated_by: StrictStr = Field(..., alias="updatedBy", description="User id who last updated the audience.")
     created_at: StrictStr = Field(..., alias="createdAt", description="Date the audience was created.")
     updated_at: StrictStr = Field(..., alias="updatedAt", description="Date the audience was last updated.")
-    __properties = ["id", "spaceId", "name", "description", "key", "enabled", "createdBy", "updatedBy", "createdAt", "updatedAt"]
+    audience_type: StrictStr = Field(..., alias="audienceType", description="Discriminator denoting the audience's product type.")
+    options: Optional[AudienceOptions] = None
+    __properties = ["id", "spaceId", "name", "description", "key", "enabled", "definition", "status", "createdBy", "updatedBy", "createdAt", "updatedAt", "audienceType", "options"]
+
+    @validator('audience_type')
+    def audience_type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'LINKED', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'LINKED', 'USERS')")
+        return value
 
     class Config:
         """Pydantic configuration"""
@@ -62,6 +75,17 @@ def to_dict(self):
                           exclude={
                           },
                           exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        # set to None if definition (nullable) is None
+        # and __fields_set__ contains the field
+        if self.definition is None and "definition" in self.__fields_set__:
+            _dict['definition'] = None
+
         return _dict
 
     @classmethod
@@ -80,10 +104,14 @@ def from_dict(cls, obj: dict) -> AudienceSummary:
             "description": obj.get("description"),
             "key": obj.get("key"),
             "enabled": obj.get("enabled"),
+            "definition": AudienceDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "status": obj.get("status"),
             "created_by": obj.get("createdBy"),
             "updated_by": obj.get("updatedBy"),
             "created_at": obj.get("createdAt"),
-            "updated_at": obj.get("updatedAt")
+            "updated_at": obj.get("updatedAt"),
+            "audience_type": obj.get("audienceType"),
+            "options": AudienceOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/audience_summary_with_audience_type_and_lookback.py b/segment_public_api/models/audience_summary_with_audience_type_and_lookback.py
new file mode 100644
index 000000000..a62387f06
--- /dev/null
+++ b/segment_public_api/models/audience_summary_with_audience_type_and_lookback.py
@@ -0,0 +1,140 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist, validator
+from segment_public_api.models.audience_compute_cadence import AudienceComputeCadence
+from segment_public_api.models.audience_definition import AudienceDefinition
+from segment_public_api.models.audience_options_with_lookback import AudienceOptionsWithLookback
+from segment_public_api.models.audience_schedule import AudienceSchedule
+from segment_public_api.models.audience_size import AudienceSize
+
+class AudienceSummaryWithAudienceTypeAndLookback(BaseModel):
+    """
+    AudienceSummaryWithAudienceTypeAndLookback
+    """
+    compute_cadence: AudienceComputeCadence = Field(..., alias="computeCadence")
+    size: Optional[AudienceSize] = None
+    options: Optional[AudienceOptionsWithLookback] = None
+    schedules: Optional[conlist(AudienceSchedule)] = Field(None, description="List of schedules for the audience.")
+    id: StrictStr = Field(..., description="Audience id.")
+    space_id: StrictStr = Field(..., alias="spaceId", description="Space id for the audience.")
+    name: StrictStr = Field(..., description="Name of the audience.")
+    description: Optional[StrictStr] = Field(None, description="Description of the audience.")
+    key: StrictStr = Field(..., description="Key for the audience.")
+    enabled: StrictBool = Field(..., description="Enabled/disabled status for the audience.")
+    definition: Optional[AudienceDefinition] = Field(...)
+    status: Optional[StrictStr] = Field(None, description="Status for the audience.  Possible values: Backfilling, Computing, Failed, Live, Awaiting Destinations, Disabled.")
+    created_by: StrictStr = Field(..., alias="createdBy", description="User id who created the audience.")
+    updated_by: StrictStr = Field(..., alias="updatedBy", description="User id who last updated the audience.")
+    created_at: StrictStr = Field(..., alias="createdAt", description="Date the audience was created.")
+    updated_at: StrictStr = Field(..., alias="updatedAt", description="Date the audience was last updated.")
+    audience_type: StrictStr = Field(..., alias="audienceType", description="Discriminator denoting the audience's product type.")
+    __properties = ["computeCadence", "size", "options", "schedules", "id", "spaceId", "name", "description", "key", "enabled", "definition", "status", "createdBy", "updatedBy", "createdAt", "updatedAt", "audienceType"]
+
+    @validator('audience_type')
+    def audience_type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'LINKED', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'LINKED', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> AudienceSummaryWithAudienceTypeAndLookback:
+        """Create an instance of AudienceSummaryWithAudienceTypeAndLookback from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of compute_cadence
+        if self.compute_cadence:
+            _dict['computeCadence'] = self.compute_cadence.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of size
+        if self.size:
+            _dict['size'] = self.size.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of each item in schedules (list)
+        _items = []
+        if self.schedules:
+            for _item in self.schedules:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['schedules'] = _items
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # set to None if definition (nullable) is None
+        # and __fields_set__ contains the field
+        if self.definition is None and "definition" in self.__fields_set__:
+            _dict['definition'] = None
+
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> AudienceSummaryWithAudienceTypeAndLookback:
+        """Create an instance of AudienceSummaryWithAudienceTypeAndLookback from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return AudienceSummaryWithAudienceTypeAndLookback.parse_obj(obj)
+
+        _obj = AudienceSummaryWithAudienceTypeAndLookback.parse_obj({
+            "compute_cadence": AudienceComputeCadence.from_dict(obj.get("computeCadence")) if obj.get("computeCadence") is not None else None,
+            "size": AudienceSize.from_dict(obj.get("size")) if obj.get("size") is not None else None,
+            "options": AudienceOptionsWithLookback.from_dict(obj.get("options")) if obj.get("options") is not None else None,
+            "schedules": [AudienceSchedule.from_dict(_item) for _item in obj.get("schedules")] if obj.get("schedules") is not None else None,
+            "id": obj.get("id"),
+            "space_id": obj.get("spaceId"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "key": obj.get("key"),
+            "enabled": obj.get("enabled"),
+            "definition": AudienceDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "status": obj.get("status"),
+            "created_by": obj.get("createdBy"),
+            "updated_by": obj.get("updatedBy"),
+            "created_at": obj.get("createdAt"),
+            "updated_at": obj.get("updatedAt"),
+            "audience_type": obj.get("audienceType")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/audit_event_v1.py b/segment_public_api/models/audit_event_v1.py
index efd69d630..488cb2756 100644
--- a/segment_public_api/models/audit_event_v1.py
+++ b/segment_public_api/models/audit_event_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,7 +19,7 @@
 import json
 
 
-
+from typing import Optional
 from pydantic import BaseModel, Field, StrictStr
 
 class AuditEventV1(BaseModel):
@@ -30,10 +30,11 @@ class AuditEventV1(BaseModel):
     timestamp: StrictStr = Field(..., description="The timestamp of this event in ISO-8601 format.")
     type: StrictStr = Field(..., description="The type of this event.")
     actor: StrictStr = Field(..., description="The user or API token that triggered this event.")
+    actor_email: Optional[StrictStr] = Field(None, alias="actorEmail", description="The email of the user that triggered this event.")
     resource_id: StrictStr = Field(..., alias="resourceId", description="The identifier of the resource affected by this event.")
     resource_type: StrictStr = Field(..., alias="resourceType", description="The kind of resource affected by this event.")
     resource_name: StrictStr = Field(..., alias="resourceName", description="The name of the resource affected by this event.")
-    __properties = ["id", "timestamp", "type", "actor", "resourceId", "resourceType", "resourceName"]
+    __properties = ["id", "timestamp", "type", "actor", "actorEmail", "resourceId", "resourceType", "resourceName"]
 
     class Config:
         """Pydantic configuration"""
@@ -75,6 +76,7 @@ def from_dict(cls, obj: dict) -> AuditEventV1:
             "timestamp": obj.get("timestamp"),
             "type": obj.get("type"),
             "actor": obj.get("actor"),
+            "actor_email": obj.get("actorEmail"),
             "resource_id": obj.get("resourceId"),
             "resource_type": obj.get("resourceType"),
             "resource_name": obj.get("resourceName")
diff --git a/segment_public_api/models/batch_query_messaging_subscriptions_for_space200_response.py b/segment_public_api/models/batch_query_messaging_subscriptions_for_space200_response.py
index 5a7dd271b..bfeb5b113 100644
--- a/segment_public_api/models/batch_query_messaging_subscriptions_for_space200_response.py
+++ b/segment_public_api/models/batch_query_messaging_subscriptions_for_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_input.py b/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_input.py
index 422f564de..ba34c9e92 100644
--- a/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_input.py
+++ b/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_output.py b/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_output.py
index 50fa0a981..c75344673 100644
--- a/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_output.py
+++ b/segment_public_api/models/batch_query_messaging_subscriptions_for_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/breakdown_beta.py b/segment_public_api/models/breakdown_beta.py
index 726053f2e..9cd725255 100644
--- a/segment_public_api/models/breakdown_beta.py
+++ b/segment_public_api/models/breakdown_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/cancel_reverse_etl_sync_for_model200_response.py b/segment_public_api/models/cancel_reverse_etl_sync_for_model200_response.py
new file mode 100644
index 000000000..1fba0d5ea
--- /dev/null
+++ b/segment_public_api/models/cancel_reverse_etl_sync_for_model200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.cancel_reverse_etl_sync_for_model_output import CancelReverseETLSyncForModelOutput
+
+class CancelReverseETLSyncForModel200Response(BaseModel):
+    """
+    CancelReverseETLSyncForModel200Response
+    """
+    data: Optional[CancelReverseETLSyncForModelOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CancelReverseETLSyncForModel200Response:
+        """Create an instance of CancelReverseETLSyncForModel200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CancelReverseETLSyncForModel200Response:
+        """Create an instance of CancelReverseETLSyncForModel200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CancelReverseETLSyncForModel200Response.parse_obj(obj)
+
+        _obj = CancelReverseETLSyncForModel200Response.parse_obj({
+            "data": CancelReverseETLSyncForModelOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/cancel_reverse_etl_sync_for_model_input.py b/segment_public_api/models/cancel_reverse_etl_sync_for_model_input.py
new file mode 100644
index 000000000..b6fe2120d
--- /dev/null
+++ b/segment_public_api/models/cancel_reverse_etl_sync_for_model_input.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt
+
+class CancelReverseETLSyncForModelInput(BaseModel):
+    """
+    Defines the parameters needed to cancel a sync for a RETL connection.  # noqa: E501
+    """
+    reason_for_canceling: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="reasonForCanceling", description="The reason for canceling the sync. - IncorrectModel = 0 - IncorrectDest = 1 - IncorrectKeys = 2 - IncorrectMapping = 3 - Other = 4")
+    __properties = ["reasonForCanceling"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CancelReverseETLSyncForModelInput:
+        """Create an instance of CancelReverseETLSyncForModelInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CancelReverseETLSyncForModelInput:
+        """Create an instance of CancelReverseETLSyncForModelInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CancelReverseETLSyncForModelInput.parse_obj(obj)
+
+        _obj = CancelReverseETLSyncForModelInput.parse_obj({
+            "reason_for_canceling": obj.get("reasonForCanceling")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/cancel_reverse_etl_sync_for_model_output.py b/segment_public_api/models/cancel_reverse_etl_sync_for_model_output.py
new file mode 100644
index 000000000..e3860e0ac
--- /dev/null
+++ b/segment_public_api/models/cancel_reverse_etl_sync_for_model_output.py
@@ -0,0 +1,80 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr
+
+class CancelReverseETLSyncForModelOutput(BaseModel):
+    """
+    CancelReverseETLSyncForModelOutput either will return an error or a \"CANCELLING\" status.  # noqa: E501
+    """
+    model_id: StrictStr = Field(..., alias="modelId", description="The id of the Model.")
+    sync_id: StrictStr = Field(..., alias="syncId", description="The id of the Sync.")
+    error_code: Optional[StrictStr] = Field(None, alias="errorCode", description="A place holder for a machine-friendly category for an error, if applicable. - \"SyncAlreadyCanceled\" - \"SyncFinishedCannotCancel\"")
+    error_message: Optional[StrictStr] = Field(None, alias="errorMessage", description="A place holder for a human-readable description of the error, if applicable. - \"sync already canceled\" - \"sync already finished\".")
+    status: Optional[StrictStr] = Field(None, description="If no error, status will be CANCELLING, as the extract/load might take some time to cancel.")
+    __properties = ["modelId", "syncId", "errorCode", "errorMessage", "status"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CancelReverseETLSyncForModelOutput:
+        """Create an instance of CancelReverseETLSyncForModelOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CancelReverseETLSyncForModelOutput:
+        """Create an instance of CancelReverseETLSyncForModelOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CancelReverseETLSyncForModelOutput.parse_obj(obj)
+
+        _obj = CancelReverseETLSyncForModelOutput.parse_obj({
+            "model_id": obj.get("modelId"),
+            "sync_id": obj.get("syncId"),
+            "error_code": obj.get("errorCode"),
+            "error_message": obj.get("errorMessage"),
+            "status": obj.get("status")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/common_source_settings_v1.py b/segment_public_api/models/common_source_settings_v1.py
index 8e35c261d..2f934519a 100644
--- a/segment_public_api/models/common_source_settings_v1.py
+++ b/segment_public_api/models/common_source_settings_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/computed_trait_summary.py b/segment_public_api/models/computed_trait_summary.py
index 7a713624b..cbf61fab8 100644
--- a/segment_public_api/models/computed_trait_summary.py
+++ b/segment_public_api/models/computed_trait_summary.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,8 +19,10 @@
 import json
 
 
-
+from typing import Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.computed_traits_definition import ComputedTraitsDefinition
+from segment_public_api.models.trait_options import TraitOptions
 
 class ComputedTraitSummary(BaseModel):
     """
@@ -29,14 +31,17 @@ class ComputedTraitSummary(BaseModel):
     id: StrictStr = Field(..., description="Computed trait id.")
     space_id: StrictStr = Field(..., alias="spaceId", description="Space id for the computed trait.")
     name: StrictStr = Field(..., description="Name of the computed trait.")
-    description: StrictStr = Field(..., description="Description of the computed trait.")
+    description: Optional[StrictStr] = Field(None, description="Description of the computed trait.")
     key: StrictStr = Field(..., description="Key for the computed trait.")
     enabled: StrictBool = Field(..., description="Enabled/disabled status for the computed trait.")
+    definition: Optional[ComputedTraitsDefinition] = Field(...)
+    status: Optional[StrictStr] = Field(None, description="Status for the computed trait.  Possible values: Backfilling, Computing, Failed, Live, Awaiting Destinations, Disabled.")
     created_by: StrictStr = Field(..., alias="createdBy", description="User id who created the computed trait.")
     updated_by: StrictStr = Field(..., alias="updatedBy", description="User id who last updated the computed trait.")
     created_at: StrictStr = Field(..., alias="createdAt", description="The timestamp of the computed trait's creation.")
     updated_at: StrictStr = Field(..., alias="updatedAt", description="The timestamp of the computed trait's last change.")
-    __properties = ["id", "spaceId", "name", "description", "key", "enabled", "createdBy", "updatedBy", "createdAt", "updatedAt"]
+    options: Optional[TraitOptions] = None
+    __properties = ["id", "spaceId", "name", "description", "key", "enabled", "definition", "status", "createdBy", "updatedBy", "createdAt", "updatedAt", "options"]
 
     class Config:
         """Pydantic configuration"""
@@ -62,6 +67,17 @@ def to_dict(self):
                           exclude={
                           },
                           exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        # set to None if definition (nullable) is None
+        # and __fields_set__ contains the field
+        if self.definition is None and "definition" in self.__fields_set__:
+            _dict['definition'] = None
+
         return _dict
 
     @classmethod
@@ -80,10 +96,13 @@ def from_dict(cls, obj: dict) -> ComputedTraitSummary:
             "description": obj.get("description"),
             "key": obj.get("key"),
             "enabled": obj.get("enabled"),
+            "definition": ComputedTraitsDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "status": obj.get("status"),
             "created_by": obj.get("createdBy"),
             "updated_by": obj.get("updatedBy"),
             "created_at": obj.get("createdAt"),
-            "updated_at": obj.get("updatedAt")
+            "updated_at": obj.get("updatedAt"),
+            "options": TraitOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/computed_traits_definition.py b/segment_public_api/models/computed_traits_definition.py
new file mode 100644
index 000000000..a28c8f44b
--- /dev/null
+++ b/segment_public_api/models/computed_traits_definition.py
@@ -0,0 +1,81 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class ComputedTraitsDefinition(BaseModel):
+    """
+    Defines an computed trait definition.  # noqa: E501
+    """
+    query: StrictStr = Field(..., description="The query language string defining the computed trait aggregation criteria. For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
+    type: StrictStr = Field(..., description="The underlying data type being aggregated for this computed trait.  Possible values: users, accounts.")
+    __properties = ["query", "type"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ComputedTraitsDefinition:
+        """Create an instance of ComputedTraitsDefinition from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ComputedTraitsDefinition:
+        """Create an instance of ComputedTraitsDefinition from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ComputedTraitsDefinition.parse_obj(obj)
+
+        _obj = ComputedTraitsDefinition.parse_obj({
+            "query": obj.get("query"),
+            "type": obj.get("type")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/config.py b/segment_public_api/models/config.py
new file mode 100644
index 000000000..6ee549ac4
--- /dev/null
+++ b/segment_public_api/models/config.py
@@ -0,0 +1,141 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re  # noqa: F401
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
+from segment_public_api.models.periodic_config import PeriodicConfig
+from segment_public_api.models.specific_days_config import SpecificDaysConfig
+from typing import Union, Any, List, TYPE_CHECKING
+from pydantic import StrictStr, Field
+
+CONFIG_ANY_OF_SCHEMAS = ["PeriodicConfig", "SpecificDaysConfig"]
+
+class Config(BaseModel):
+    """
+    Configuration for PERIODIC or SPECIFIC_DAYS strategies.
+    """
+
+    # data type: PeriodicConfig
+    anyof_schema_1_validator: Optional[PeriodicConfig] = None
+    # data type: SpecificDaysConfig
+    anyof_schema_2_validator: Optional[SpecificDaysConfig] = None
+    if TYPE_CHECKING:
+        actual_instance: Union[PeriodicConfig, SpecificDaysConfig]
+    else:
+        actual_instance: Any
+    any_of_schemas: List[str] = Field(CONFIG_ANY_OF_SCHEMAS, const=True)
+
+    class Config:
+        validate_assignment = True
+
+    def __init__(self, *args, **kwargs) -> None:
+        if args:
+            if len(args) > 1:
+                raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+            if kwargs:
+                raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+            super().__init__(actual_instance=args[0])
+        else:
+            super().__init__(**kwargs)
+
+    @validator('actual_instance')
+    def actual_instance_must_validate_anyof(cls, v):
+        if v is None:
+            return v
+
+        instance = Config.construct()
+        error_messages = []
+        # validate data type: PeriodicConfig
+        if not isinstance(v, PeriodicConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `PeriodicConfig`")
+        else:
+            return v
+
+        # validate data type: SpecificDaysConfig
+        if not isinstance(v, SpecificDaysConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `SpecificDaysConfig`")
+        else:
+            return v
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when setting the actual_instance in Config with anyOf schemas: PeriodicConfig, SpecificDaysConfig. Details: " + ", ".join(error_messages))
+        else:
+            return v
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Config:
+        return cls.from_json(json.dumps(obj))
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Config:
+        """Returns the object represented by the json string"""
+        instance = Config.construct()
+        if json_str is None:
+            return instance
+
+        error_messages = []
+        # anyof_schema_1_validator: Optional[PeriodicConfig] = None
+        try:
+            instance.actual_instance = PeriodicConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_2_validator: Optional[SpecificDaysConfig] = None
+        try:
+            instance.actual_instance = SpecificDaysConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when deserializing the JSON string into Config with anyOf schemas: PeriodicConfig, SpecificDaysConfig. Details: " + ", ".join(error_messages))
+        else:
+            return instance
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_json()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_dict(self) -> dict:
+        """Returns the dict representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_dict()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_str(self) -> str:
+        """Returns the string representation of the actual instance"""
+        return pprint.pformat(self.dict())
+
+
diff --git a/segment_public_api/models/config1.py b/segment_public_api/models/config1.py
new file mode 100644
index 000000000..a8031a950
--- /dev/null
+++ b/segment_public_api/models/config1.py
@@ -0,0 +1,171 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re  # noqa: F401
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
+from segment_public_api.models.reverse_etl_cron_schedule_config import ReverseEtlCronScheduleConfig
+from segment_public_api.models.reverse_etl_dbt_cloud_schedule_config import ReverseEtlDbtCloudScheduleConfig
+from segment_public_api.models.reverse_etl_periodic_schedule_config import ReverseEtlPeriodicScheduleConfig
+from segment_public_api.models.reverse_etl_specific_time_schedule_config import ReverseEtlSpecificTimeScheduleConfig
+from typing import Union, Any, List, TYPE_CHECKING
+from pydantic import StrictStr, Field
+
+CONFIG1_ANY_OF_SCHEMAS = ["ReverseEtlCronScheduleConfig", "ReverseEtlDbtCloudScheduleConfig", "ReverseEtlPeriodicScheduleConfig", "ReverseEtlSpecificTimeScheduleConfig"]
+
+class Config1(BaseModel):
+    """
+    Config contains interval duration in case of periodic or day and hours in case of specific_days. Empty if strategy is MANUAL.
+    """
+
+    # data type: ReverseEtlPeriodicScheduleConfig
+    anyof_schema_1_validator: Optional[ReverseEtlPeriodicScheduleConfig] = None
+    # data type: ReverseEtlSpecificTimeScheduleConfig
+    anyof_schema_2_validator: Optional[ReverseEtlSpecificTimeScheduleConfig] = None
+    # data type: ReverseEtlCronScheduleConfig
+    anyof_schema_3_validator: Optional[ReverseEtlCronScheduleConfig] = None
+    # data type: ReverseEtlDbtCloudScheduleConfig
+    anyof_schema_4_validator: Optional[ReverseEtlDbtCloudScheduleConfig] = None
+    if TYPE_CHECKING:
+        actual_instance: Union[ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig]
+    else:
+        actual_instance: Any
+    any_of_schemas: List[str] = Field(CONFIG1_ANY_OF_SCHEMAS, const=True)
+
+    class Config:
+        validate_assignment = True
+
+    def __init__(self, *args, **kwargs) -> None:
+        if args:
+            if len(args) > 1:
+                raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+            if kwargs:
+                raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+            super().__init__(actual_instance=args[0])
+        else:
+            super().__init__(**kwargs)
+
+    @validator('actual_instance')
+    def actual_instance_must_validate_anyof(cls, v):
+        if v is None:
+            return v
+
+        instance = Config1.construct()
+        error_messages = []
+        # validate data type: ReverseEtlPeriodicScheduleConfig
+        if not isinstance(v, ReverseEtlPeriodicScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlPeriodicScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlSpecificTimeScheduleConfig
+        if not isinstance(v, ReverseEtlSpecificTimeScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlSpecificTimeScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlCronScheduleConfig
+        if not isinstance(v, ReverseEtlCronScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlCronScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlDbtCloudScheduleConfig
+        if not isinstance(v, ReverseEtlDbtCloudScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlDbtCloudScheduleConfig`")
+        else:
+            return v
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when setting the actual_instance in Config1 with anyOf schemas: ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig. Details: " + ", ".join(error_messages))
+        else:
+            return v
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Config1:
+        return cls.from_json(json.dumps(obj))
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Config1:
+        """Returns the object represented by the json string"""
+        instance = Config1.construct()
+        if json_str is None:
+            return instance
+
+        error_messages = []
+        # anyof_schema_1_validator: Optional[ReverseEtlPeriodicScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlPeriodicScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_2_validator: Optional[ReverseEtlSpecificTimeScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlSpecificTimeScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_3_validator: Optional[ReverseEtlCronScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlCronScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_4_validator: Optional[ReverseEtlDbtCloudScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlDbtCloudScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when deserializing the JSON string into Config1 with anyOf schemas: ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig. Details: " + ", ".join(error_messages))
+        else:
+            return instance
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_json()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_dict(self) -> dict:
+        """Returns the dict representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_dict()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_str(self) -> str:
+        """Returns the string representation of the actual instance"""
+        return pprint.pformat(self.dict())
+
+
diff --git a/segment_public_api/models/connection.py b/segment_public_api/models/connection.py
new file mode 100644
index 000000000..32ab213e4
--- /dev/null
+++ b/segment_public_api/models/connection.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class Connection(BaseModel):
+    """
+    The connection that was created.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The id of the connection that was created.")
+    __properties = ["id"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Connection:
+        """Create an instance of Connection from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Connection:
+        """Create an instance of Connection from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return Connection.parse_obj(obj)
+
+        _obj = Connection.parse_obj({
+            "id": obj.get("id")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/contact.py b/segment_public_api/models/contact.py
index 4f6f903a7..482f7456b 100644
--- a/segment_public_api/models/contact.py
+++ b/segment_public_api/models/contact.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_audience200_response.py b/segment_public_api/models/create_audience200_response.py
new file mode 100644
index 000000000..8f1206ea2
--- /dev/null
+++ b/segment_public_api/models/create_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_audience_alpha_output import CreateAudienceAlphaOutput
+
+class CreateAudience200Response(BaseModel):
+    """
+    CreateAudience200Response
+    """
+    data: Optional[CreateAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudience200Response:
+        """Create an instance of CreateAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudience200Response:
+        """Create an instance of CreateAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudience200Response.parse_obj(obj)
+
+        _obj = CreateAudience200Response.parse_obj({
+            "data": CreateAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_alpha_input.py b/segment_public_api/models/create_audience_alpha_input.py
new file mode 100644
index 000000000..e8975948d
--- /dev/null
+++ b/segment_public_api/models/create_audience_alpha_input.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.audience_definition import AudienceDefinition
+from segment_public_api.models.audience_options import AudienceOptions
+
+class CreateAudienceAlphaInput(BaseModel):
+    """
+    Input to create an audience.  # noqa: E501
+    """
+    name: StrictStr = Field(..., description="Name of the audience.")
+    enabled: Optional[StrictBool] = Field(None, description="Determines whether a computation is enabled.")
+    description: Optional[StrictStr] = Field(None, description="Description of the audience.")
+    definition: AudienceDefinition = Field(...)
+    options: Optional[AudienceOptions] = None
+    __properties = ["name", "enabled", "description", "definition", "options"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudienceAlphaInput:
+        """Create an instance of CreateAudienceAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudienceAlphaInput:
+        """Create an instance of CreateAudienceAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudienceAlphaInput.parse_obj(obj)
+
+        _obj = CreateAudienceAlphaInput.parse_obj({
+            "name": obj.get("name"),
+            "enabled": obj.get("enabled"),
+            "description": obj.get("description"),
+            "definition": AudienceDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "options": AudienceOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_alpha_output.py b/segment_public_api/models/create_audience_alpha_output.py
new file mode 100644
index 000000000..8c278c9f7
--- /dev/null
+++ b/segment_public_api/models/create_audience_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.audience_summary import AudienceSummary
+
+class CreateAudienceAlphaOutput(BaseModel):
+    """
+    Audience output for create.  # noqa: E501
+    """
+    audience: AudienceSummary = Field(...)
+    __properties = ["audience"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudienceAlphaOutput:
+        """Create an instance of CreateAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of audience
+        if self.audience:
+            _dict['audience'] = self.audience.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudienceAlphaOutput:
+        """Create an instance of CreateAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = CreateAudienceAlphaOutput.parse_obj({
+            "audience": AudienceSummary.from_dict(obj.get("audience")) if obj.get("audience") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_preview200_response.py b/segment_public_api/models/create_audience_preview200_response.py
new file mode 100644
index 000000000..420f3fe59
--- /dev/null
+++ b/segment_public_api/models/create_audience_preview200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_audience_preview_alpha_output import CreateAudiencePreviewAlphaOutput
+
+class CreateAudiencePreview200Response(BaseModel):
+    """
+    CreateAudiencePreview200Response
+    """
+    data: Optional[CreateAudiencePreviewAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudiencePreview200Response:
+        """Create an instance of CreateAudiencePreview200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudiencePreview200Response:
+        """Create an instance of CreateAudiencePreview200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudiencePreview200Response.parse_obj(obj)
+
+        _obj = CreateAudiencePreview200Response.parse_obj({
+            "data": CreateAudiencePreviewAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_preview_alpha_input.py b/segment_public_api/models/create_audience_preview_alpha_input.py
new file mode 100644
index 000000000..ef59b80dc
--- /dev/null
+++ b/segment_public_api/models/create_audience_preview_alpha_input.py
@@ -0,0 +1,91 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, validator
+from segment_public_api.models.audience_definition_without_type import AudienceDefinitionWithoutType
+from segment_public_api.models.create_audience_preview_options import CreateAudiencePreviewOptions
+
+class CreateAudiencePreviewAlphaInput(BaseModel):
+    """
+    Input to create an audience preview.  # noqa: E501
+    """
+    definition: AudienceDefinitionWithoutType = Field(...)
+    audience_type: StrictStr = Field(..., alias="audienceType", description="Discriminator denoting the audience's product type.  Possible values: USERS, ACCOUNTS, LINKED.")
+    options: Optional[CreateAudiencePreviewOptions] = None
+    __properties = ["definition", "audienceType", "options"]
+
+    @validator('audience_type')
+    def audience_type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'LINKED', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'LINKED', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudiencePreviewAlphaInput:
+        """Create an instance of CreateAudiencePreviewAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudiencePreviewAlphaInput:
+        """Create an instance of CreateAudiencePreviewAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudiencePreviewAlphaInput.parse_obj(obj)
+
+        _obj = CreateAudiencePreviewAlphaInput.parse_obj({
+            "definition": AudienceDefinitionWithoutType.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "audience_type": obj.get("audienceType"),
+            "options": CreateAudiencePreviewOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_preview_alpha_output.py b/segment_public_api/models/create_audience_preview_alpha_output.py
new file mode 100644
index 000000000..fd8b798bd
--- /dev/null
+++ b/segment_public_api/models/create_audience_preview_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.audience_preview_identifier import AudiencePreviewIdentifier
+
+class CreateAudiencePreviewAlphaOutput(BaseModel):
+    """
+    Output when creating an audience preview.  # noqa: E501
+    """
+    audience_preview: AudiencePreviewIdentifier = Field(..., alias="audiencePreview")
+    __properties = ["audiencePreview"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudiencePreviewAlphaOutput:
+        """Create an instance of CreateAudiencePreviewAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of audience_preview
+        if self.audience_preview:
+            _dict['audiencePreview'] = self.audience_preview.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudiencePreviewAlphaOutput:
+        """Create an instance of CreateAudiencePreviewAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudiencePreviewAlphaOutput.parse_obj(obj)
+
+        _obj = CreateAudiencePreviewAlphaOutput.parse_obj({
+            "audience_preview": AudiencePreviewIdentifier.from_dict(obj.get("audiencePreview")) if obj.get("audiencePreview") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_audience_preview_options.py b/segment_public_api/models/create_audience_preview_options.py
new file mode 100644
index 000000000..7c9d9b6c7
--- /dev/null
+++ b/segment_public_api/models/create_audience_preview_options.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist
+
+class CreateAudiencePreviewOptions(BaseModel):
+    """
+    Options which should be applied when segmenting audience previews.  # noqa: E501
+    """
+    filter_by_external_ids: Optional[conlist(StrictStr)] = Field(None, alias="filterByExternalIds", description="The set of profile external identifiers being used to determine audience preview membership. Profiles will only be considered for audience preview membership if the profile has at least one external id whose key matches a value in this set. If unspecified, a default set of external identifiers will be used: `['user_id', 'email', 'android.idfa', 'ios.idfa']`.")
+    backfill_event_data_days: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="backfillEventDataDays", description="If specified, the value of this field indicates the number of days (specified from the date the audience preview was created) that event data will be included from when determining audience preview membership. If not specified, the default is set to the maximum event window size, or 7 days if no window condition is defined. Note that this is applied on a best-effort basis and may not always be applicable. In such cases, the response will not return a backfillEventDataDays value, and all available data will be taken into account.")
+    __properties = ["filterByExternalIds", "backfillEventDataDays"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateAudiencePreviewOptions:
+        """Create an instance of CreateAudiencePreviewOptions from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateAudiencePreviewOptions:
+        """Create an instance of CreateAudiencePreviewOptions from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateAudiencePreviewOptions.parse_obj(obj)
+
+        _obj = CreateAudiencePreviewOptions.parse_obj({
+            "filter_by_external_ids": obj.get("filterByExternalIds"),
+            "backfill_event_data_days": obj.get("backfillEventDataDays")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_cloud_source_regulation200_response.py b/segment_public_api/models/create_cloud_source_regulation200_response.py
index 68bcd3e09..f49344ba7 100644
--- a/segment_public_api/models/create_cloud_source_regulation200_response.py
+++ b/segment_public_api/models/create_cloud_source_regulation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_cloud_source_regulation_v1_input.py b/segment_public_api/models/create_cloud_source_regulation_v1_input.py
index b65a4e804..19a7bfd3f 100644
--- a/segment_public_api/models/create_cloud_source_regulation_v1_input.py
+++ b/segment_public_api/models/create_cloud_source_regulation_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -35,8 +35,8 @@ class CreateCloudSourceRegulationV1Input(BaseModel):
     @validator('regulation_type')
     def regulation_type_validate_enum(cls, value):
         """Validates the enum"""
-        if value not in ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS'):
-            raise ValueError("must be one of enum values ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS')")
+        if value not in ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS'):
+            raise ValueError("must be one of enum values ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS')")
         return value
 
     @validator('subject_type')
diff --git a/segment_public_api/models/create_cloud_source_regulation_v1_output.py b/segment_public_api/models/create_cloud_source_regulation_v1_output.py
index 2afffce92..009fbea6b 100644
--- a/segment_public_api/models/create_cloud_source_regulation_v1_output.py
+++ b/segment_public_api/models/create_cloud_source_regulation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_computed_trait200_response.py b/segment_public_api/models/create_computed_trait200_response.py
new file mode 100644
index 000000000..c8bf70e32
--- /dev/null
+++ b/segment_public_api/models/create_computed_trait200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_computed_trait_alpha_output import CreateComputedTraitAlphaOutput
+
+class CreateComputedTrait200Response(BaseModel):
+    """
+    CreateComputedTrait200Response
+    """
+    data: Optional[CreateComputedTraitAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateComputedTrait200Response:
+        """Create an instance of CreateComputedTrait200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateComputedTrait200Response:
+        """Create an instance of CreateComputedTrait200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateComputedTrait200Response.parse_obj(obj)
+
+        _obj = CreateComputedTrait200Response.parse_obj({
+            "data": CreateComputedTraitAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_computed_trait_alpha_input.py b/segment_public_api/models/create_computed_trait_alpha_input.py
new file mode 100644
index 000000000..63bb22c6c
--- /dev/null
+++ b/segment_public_api/models/create_computed_trait_alpha_input.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.trait_definition import TraitDefinition
+from segment_public_api.models.trait_options import TraitOptions
+
+class CreateComputedTraitAlphaInput(BaseModel):
+    """
+    Input to create a trait.  # noqa: E501
+    """
+    name: StrictStr = Field(..., description="The name of the computation.")
+    enabled: Optional[StrictBool] = Field(None, description="Determines whether a computation is enabled.")
+    description: Optional[StrictStr] = Field(None, description="The description of the computation.")
+    definition: TraitDefinition = Field(...)
+    options: Optional[TraitOptions] = None
+    __properties = ["name", "enabled", "description", "definition", "options"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateComputedTraitAlphaInput:
+        """Create an instance of CreateComputedTraitAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of options
+        if self.options:
+            _dict['options'] = self.options.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateComputedTraitAlphaInput:
+        """Create an instance of CreateComputedTraitAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateComputedTraitAlphaInput.parse_obj(obj)
+
+        _obj = CreateComputedTraitAlphaInput.parse_obj({
+            "name": obj.get("name"),
+            "enabled": obj.get("enabled"),
+            "description": obj.get("description"),
+            "definition": TraitDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None,
+            "options": TraitOptions.from_dict(obj.get("options")) if obj.get("options") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_computed_trait_alpha_output.py b/segment_public_api/models/create_computed_trait_alpha_output.py
new file mode 100644
index 000000000..094915906
--- /dev/null
+++ b/segment_public_api/models/create_computed_trait_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.computed_trait_summary import ComputedTraitSummary
+
+class CreateComputedTraitAlphaOutput(BaseModel):
+    """
+    Computed Trait output for create.  # noqa: E501
+    """
+    computed_trait: ComputedTraitSummary = Field(..., alias="computedTrait")
+    __properties = ["computedTrait"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateComputedTraitAlphaOutput:
+        """Create an instance of CreateComputedTraitAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of computed_trait
+        if self.computed_trait:
+            _dict['computedTrait'] = self.computed_trait.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateComputedTraitAlphaOutput:
+        """Create an instance of CreateComputedTraitAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateComputedTraitAlphaOutput.parse_obj(obj)
+
+        _obj = CreateComputedTraitAlphaOutput.parse_obj({
+            "computed_trait": ComputedTraitSummary.from_dict(obj.get("computedTrait")) if obj.get("computedTrait") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_dbt_model_sync_trigger200_response.py b/segment_public_api/models/create_dbt_model_sync_trigger200_response.py
new file mode 100644
index 000000000..2d9828662
--- /dev/null
+++ b/segment_public_api/models/create_dbt_model_sync_trigger200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_dbt_model_sync_trigger_output import CreateDbtModelSyncTriggerOutput
+
+class CreateDbtModelSyncTrigger200Response(BaseModel):
+    """
+    CreateDbtModelSyncTrigger200Response
+    """
+    data: Optional[CreateDbtModelSyncTriggerOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDbtModelSyncTrigger200Response:
+        """Create an instance of CreateDbtModelSyncTrigger200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDbtModelSyncTrigger200Response:
+        """Create an instance of CreateDbtModelSyncTrigger200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDbtModelSyncTrigger200Response.parse_obj(obj)
+
+        _obj = CreateDbtModelSyncTrigger200Response.parse_obj({
+            "data": CreateDbtModelSyncTriggerOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_dbt_model_sync_trigger_input.py b/segment_public_api/models/create_dbt_model_sync_trigger_input.py
new file mode 100644
index 000000000..9c29005e5
--- /dev/null
+++ b/segment_public_api/models/create_dbt_model_sync_trigger_input.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class CreateDbtModelSyncTriggerInput(BaseModel):
+    """
+    Input for the createDbtModelSyncTriggerBySourceId endpoint.  # noqa: E501
+    """
+    source_id: StrictStr = Field(..., alias="sourceId", description="The Source id to trigger a dbt model sync.")
+    __properties = ["sourceId"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDbtModelSyncTriggerInput:
+        """Create an instance of CreateDbtModelSyncTriggerInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDbtModelSyncTriggerInput:
+        """Create an instance of CreateDbtModelSyncTriggerInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDbtModelSyncTriggerInput.parse_obj(obj)
+
+        _obj = CreateDbtModelSyncTriggerInput.parse_obj({
+            "source_id": obj.get("sourceId")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_dbt_model_sync_trigger_output.py b/segment_public_api/models/create_dbt_model_sync_trigger_output.py
new file mode 100644
index 000000000..bf51c967b
--- /dev/null
+++ b/segment_public_api/models/create_dbt_model_sync_trigger_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.dbt_model_sync_trigger import DbtModelSyncTrigger
+
+class CreateDbtModelSyncTriggerOutput(BaseModel):
+    """
+    Output for the createDbtModelSyncTriggerBySourceId endpoint.  # noqa: E501
+    """
+    dbt_model_sync_trigger: DbtModelSyncTrigger = Field(..., alias="dbtModelSyncTrigger")
+    __properties = ["dbtModelSyncTrigger"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDbtModelSyncTriggerOutput:
+        """Create an instance of CreateDbtModelSyncTriggerOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of dbt_model_sync_trigger
+        if self.dbt_model_sync_trigger:
+            _dict['dbtModelSyncTrigger'] = self.dbt_model_sync_trigger.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDbtModelSyncTriggerOutput:
+        """Create an instance of CreateDbtModelSyncTriggerOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDbtModelSyncTriggerOutput.parse_obj(obj)
+
+        _obj = CreateDbtModelSyncTriggerOutput.parse_obj({
+            "dbt_model_sync_trigger": DbtModelSyncTrigger.from_dict(obj.get("dbtModelSyncTrigger")) if obj.get("dbtModelSyncTrigger") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_destination200_response.py b/segment_public_api/models/create_destination200_response.py
index a74f57c0b..71088c48e 100644
--- a/segment_public_api/models/create_destination200_response.py
+++ b/segment_public_api/models/create_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_destination_subscription200_response.py b/segment_public_api/models/create_destination_subscription200_response.py
index b20f96e5c..3272eeafe 100644
--- a/segment_public_api/models/create_destination_subscription200_response.py
+++ b/segment_public_api/models/create_destination_subscription200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_destination_subscription_alpha_input.py b/segment_public_api/models/create_destination_subscription_alpha_input.py
index 0b1645885..35e1feed4 100644
--- a/segment_public_api/models/create_destination_subscription_alpha_input.py
+++ b/segment_public_api/models/create_destination_subscription_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_destination_subscription_alpha_output.py b/segment_public_api/models/create_destination_subscription_alpha_output.py
index 6541e3ca4..02f964918 100644
--- a/segment_public_api/models/create_destination_subscription_alpha_output.py
+++ b/segment_public_api/models/create_destination_subscription_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_destination_v1_input.py b/segment_public_api/models/create_destination_v1_input.py
index bf31d7b41..e9773516d 100644
--- a/segment_public_api/models/create_destination_v1_input.py
+++ b/segment_public_api/models/create_destination_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_destination_v1_output.py b/segment_public_api/models/create_destination_v1_output.py
index 818a55cbb..55f9d7f1c 100644
--- a/segment_public_api/models/create_destination_v1_output.py
+++ b/segment_public_api/models/create_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_download200_response.py b/segment_public_api/models/create_download200_response.py
new file mode 100644
index 000000000..239e1fac1
--- /dev/null
+++ b/segment_public_api/models/create_download200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_download_alpha_output import CreateDownloadAlphaOutput
+
+class CreateDownload200Response(BaseModel):
+    """
+    CreateDownload200Response
+    """
+    data: Optional[CreateDownloadAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDownload200Response:
+        """Create an instance of CreateDownload200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDownload200Response:
+        """Create an instance of CreateDownload200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDownload200Response.parse_obj(obj)
+
+        _obj = CreateDownload200Response.parse_obj({
+            "data": CreateDownloadAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_download_alpha_input.py b/segment_public_api/models/create_download_alpha_input.py
new file mode 100644
index 000000000..58367a1c7
--- /dev/null
+++ b/segment_public_api/models/create_download_alpha_input.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class CreateDownloadAlphaInput(BaseModel):
+    """
+    Input to create presigned URLs for Granular Observability Collection logs.  # noqa: E501
+    """
+    collection_id: StrictStr = Field(..., alias="collectionId", description="The collection's unique id.")
+    hour: StrictStr = Field(..., description="The ISO8601 formatted timestamp corresponding to a specific hour and day to retrieve data for. E.g.: 2025-05-07T23:00:00Z Objects are bucketed by hour and a month of data is retained.")
+    __properties = ["collectionId", "hour"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDownloadAlphaInput:
+        """Create an instance of CreateDownloadAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDownloadAlphaInput:
+        """Create an instance of CreateDownloadAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDownloadAlphaInput.parse_obj(obj)
+
+        _obj = CreateDownloadAlphaInput.parse_obj({
+            "collection_id": obj.get("collectionId"),
+            "hour": obj.get("hour")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_download_alpha_output.py b/segment_public_api/models/create_download_alpha_output.py
new file mode 100644
index 000000000..393302036
--- /dev/null
+++ b/segment_public_api/models/create_download_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.download import Download
+
+class CreateDownloadAlphaOutput(BaseModel):
+    """
+    CreateDownloadAlphaOutput
+    """
+    download: Download = Field(...)
+    __properties = ["download"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateDownloadAlphaOutput:
+        """Create an instance of CreateDownloadAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of download
+        if self.download:
+            _dict['download'] = self.download.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateDownloadAlphaOutput:
+        """Create an instance of CreateDownloadAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateDownloadAlphaOutput.parse_obj(obj)
+
+        _obj = CreateDownloadAlphaOutput.parse_obj({
+            "download": Download.from_dict(obj.get("download")) if obj.get("download") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_edge_functions200_response.py b/segment_public_api/models/create_edge_functions200_response.py
index d48a61d1d..bb07d2e37 100644
--- a/segment_public_api/models/create_edge_functions200_response.py
+++ b/segment_public_api/models/create_edge_functions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_edge_functions_alpha_input.py b/segment_public_api/models/create_edge_functions_alpha_input.py
index 786cd4d58..0d354162e 100644
--- a/segment_public_api/models/create_edge_functions_alpha_input.py
+++ b/segment_public_api/models/create_edge_functions_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_edge_functions_alpha_output.py b/segment_public_api/models/create_edge_functions_alpha_output.py
index 4ff7559b2..8a97472c0 100644
--- a/segment_public_api/models/create_edge_functions_alpha_output.py
+++ b/segment_public_api/models/create_edge_functions_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_filter_for_destination200_response.py b/segment_public_api/models/create_filter_for_destination200_response.py
index 47b2fd340..6be07f867 100644
--- a/segment_public_api/models/create_filter_for_destination200_response.py
+++ b/segment_public_api/models/create_filter_for_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_filter_for_destination_v1_input.py b/segment_public_api/models/create_filter_for_destination_v1_input.py
index 200bda3fe..59168798d 100644
--- a/segment_public_api/models/create_filter_for_destination_v1_input.py
+++ b/segment_public_api/models/create_filter_for_destination_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_filter_for_destination_v1_output.py b/segment_public_api/models/create_filter_for_destination_v1_output.py
index 1f60dee5e..4c48a2c99 100644
--- a/segment_public_api/models/create_filter_for_destination_v1_output.py
+++ b/segment_public_api/models/create_filter_for_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_filter_for_space200_response.py b/segment_public_api/models/create_filter_for_space200_response.py
new file mode 100644
index 000000000..1514b19b4
--- /dev/null
+++ b/segment_public_api/models/create_filter_for_space200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_filter_for_space_output import CreateFilterForSpaceOutput
+
+class CreateFilterForSpace200Response(BaseModel):
+    """
+    CreateFilterForSpace200Response
+    """
+    data: Optional[CreateFilterForSpaceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateFilterForSpace200Response:
+        """Create an instance of CreateFilterForSpace200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateFilterForSpace200Response:
+        """Create an instance of CreateFilterForSpace200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateFilterForSpace200Response.parse_obj(obj)
+
+        _obj = CreateFilterForSpace200Response.parse_obj({
+            "data": CreateFilterForSpaceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_filter_for_space_input.py b/segment_public_api/models/create_filter_for_space_input.py
new file mode 100644
index 000000000..5ea66b7f0
--- /dev/null
+++ b/segment_public_api/models/create_filter_for_space_input.py
@@ -0,0 +1,82 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class CreateFilterForSpaceInput(BaseModel):
+    """
+    Input for CreateFilter.  # noqa: E501
+    """
+    integration_id: StrictStr = Field(..., alias="integrationId", description="The Space id to filter on.")
+    enabled: Optional[StrictBool] = Field(None, description="Whether the filter is enabled.")
+    name: StrictStr = Field(..., description="The name of the filter.")
+    description: Optional[StrictStr] = Field(None, description="The description of the filter.")
+    var_if: StrictStr = Field(..., alias="if", description="The \"if\" statement for a filter.")
+    drop: Optional[StrictBool] = Field(None, description="Whether the event is dropped.")
+    __properties = ["integrationId", "enabled", "name", "description", "if", "drop"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateFilterForSpaceInput:
+        """Create an instance of CreateFilterForSpaceInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateFilterForSpaceInput:
+        """Create an instance of CreateFilterForSpaceInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateFilterForSpaceInput.parse_obj(obj)
+
+        _obj = CreateFilterForSpaceInput.parse_obj({
+            "integration_id": obj.get("integrationId"),
+            "enabled": obj.get("enabled"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "var_if": obj.get("if"),
+            "drop": obj.get("drop")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_filter_for_space_output.py b/segment_public_api/models/create_filter_for_space_output.py
new file mode 100644
index 000000000..9ce2ae841
--- /dev/null
+++ b/segment_public_api/models/create_filter_for_space_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.filter import Filter
+
+class CreateFilterForSpaceOutput(BaseModel):
+    """
+    Output for CreateFilter.  # noqa: E501
+    """
+    filter: Filter = Field(...)
+    __properties = ["filter"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateFilterForSpaceOutput:
+        """Create an instance of CreateFilterForSpaceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of filter
+        if self.filter:
+            _dict['filter'] = self.filter.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateFilterForSpaceOutput:
+        """Create an instance of CreateFilterForSpaceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateFilterForSpaceOutput.parse_obj(obj)
+
+        _obj = CreateFilterForSpaceOutput.parse_obj({
+            "filter": Filter.from_dict(obj.get("filter")) if obj.get("filter") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_function200_response.py b/segment_public_api/models/create_function200_response.py
index 5de20cad2..b078b1500 100644
--- a/segment_public_api/models/create_function200_response.py
+++ b/segment_public_api/models/create_function200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_function_deployment200_response.py b/segment_public_api/models/create_function_deployment200_response.py
index 1894a79ba..a44cac199 100644
--- a/segment_public_api/models/create_function_deployment200_response.py
+++ b/segment_public_api/models/create_function_deployment200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_function_deployment_v1_output.py b/segment_public_api/models/create_function_deployment_v1_output.py
index 3d5b223b2..5cca568a2 100644
--- a/segment_public_api/models/create_function_deployment_v1_output.py
+++ b/segment_public_api/models/create_function_deployment_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_function_v1_input.py b/segment_public_api/models/create_function_v1_input.py
index 8e1a59d1f..2132480c0 100644
--- a/segment_public_api/models/create_function_v1_input.py
+++ b/segment_public_api/models/create_function_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -38,8 +38,8 @@ class CreateFunctionV1Input(BaseModel):
     @validator('resource_type')
     def resource_type_validate_enum(cls, value):
         """Validates the enum"""
-        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE'):
-            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE')")
+        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE'):
+            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE')")
         return value
 
     class Config:
diff --git a/segment_public_api/models/create_function_v1_output.py b/segment_public_api/models/create_function_v1_output.py
index 53cbecda1..df7417751 100644
--- a/segment_public_api/models/create_function_v1_output.py
+++ b/segment_public_api/models/create_function_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_insert_function_instance200_response.py b/segment_public_api/models/create_insert_function_instance200_response.py
index c445fc70e..d606c0be7 100644
--- a/segment_public_api/models/create_insert_function_instance200_response.py
+++ b/segment_public_api/models/create_insert_function_instance200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_insert_function_instance_alpha_input.py b/segment_public_api/models/create_insert_function_instance_alpha_input.py
index c9651510f..85eb78d78 100644
--- a/segment_public_api/models/create_insert_function_instance_alpha_input.py
+++ b/segment_public_api/models/create_insert_function_instance_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -26,7 +26,7 @@ class CreateInsertFunctionInstanceAlphaInput(BaseModel):
     """
     Creates an insert Function instance.  # noqa: E501
     """
-    function_id: StrictStr = Field(..., alias="functionId", description="Insert Function id to which this instance is associated.")
+    function_id: StrictStr = Field(..., alias="functionId", description="Insert Function id to which this instance is associated.  Note: Remove the ifnd_/ifns_ prefix from the id.")
     integration_id: StrictStr = Field(..., alias="integrationId", description="The Source or Destination id to be connected.")
     enabled: Optional[StrictBool] = Field(None, description="Whether this insert Function instance should be enabled for the Destination.")
     name: StrictStr = Field(..., description="Defines the display name of the insert Function instance.")
diff --git a/segment_public_api/models/create_insert_function_instance_alpha_output.py b/segment_public_api/models/create_insert_function_instance_alpha_output.py
index 4fdb240b3..b3b85ee9f 100644
--- a/segment_public_api/models/create_insert_function_instance_alpha_output.py
+++ b/segment_public_api/models/create_insert_function_instance_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_invites200_response.py b/segment_public_api/models/create_invites201_response.py
similarity index 82%
rename from segment_public_api/models/create_invites200_response.py
rename to segment_public_api/models/create_invites201_response.py
index 026c41432..777be73bc 100644
--- a/segment_public_api/models/create_invites200_response.py
+++ b/segment_public_api/models/create_invites201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_invites_v1_output import CreateInvitesV1Output
 
-class CreateInvites200Response(BaseModel):
+class CreateInvites201Response(BaseModel):
     """
-    CreateInvites200Response
+    CreateInvites201Response
     """
     data: Optional[CreateInvitesV1Output] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateInvites200Response:
-        """Create an instance of CreateInvites200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateInvites201Response:
+        """Create an instance of CreateInvites201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateInvites200Response:
-        """Create an instance of CreateInvites200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateInvites201Response:
+        """Create an instance of CreateInvites201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateInvites200Response.parse_obj(obj)
+            return CreateInvites201Response.parse_obj(obj)
 
-        _obj = CreateInvites200Response.parse_obj({
+        _obj = CreateInvites201Response.parse_obj({
             "data": CreateInvitesV1Output.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_invites_v1_input.py b/segment_public_api/models/create_invites_v1_input.py
index cf6e99a08..51ba421f4 100644
--- a/segment_public_api/models/create_invites_v1_input.py
+++ b/segment_public_api/models/create_invites_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_invites_v1_output.py b/segment_public_api/models/create_invites_v1_output.py
index 19bf653ec..113000a65 100644
--- a/segment_public_api/models/create_invites_v1_output.py
+++ b/segment_public_api/models/create_invites_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_label200_response.py b/segment_public_api/models/create_label201_response.py
similarity index 82%
rename from segment_public_api/models/create_label200_response.py
rename to segment_public_api/models/create_label201_response.py
index 741ee42a9..28dfaac3d 100644
--- a/segment_public_api/models/create_label200_response.py
+++ b/segment_public_api/models/create_label201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_label_v1_output import CreateLabelV1Output
 
-class CreateLabel200Response(BaseModel):
+class CreateLabel201Response(BaseModel):
     """
-    CreateLabel200Response
+    CreateLabel201Response
     """
     data: Optional[CreateLabelV1Output] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateLabel200Response:
-        """Create an instance of CreateLabel200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateLabel201Response:
+        """Create an instance of CreateLabel201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateLabel200Response:
-        """Create an instance of CreateLabel200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateLabel201Response:
+        """Create an instance of CreateLabel201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateLabel200Response.parse_obj(obj)
+            return CreateLabel201Response.parse_obj(obj)
 
-        _obj = CreateLabel200Response.parse_obj({
+        _obj = CreateLabel201Response.parse_obj({
             "data": CreateLabelV1Output.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_label_v1_input.py b/segment_public_api/models/create_label_v1_input.py
index afa879644..b6c6ef6e5 100644
--- a/segment_public_api/models/create_label_v1_input.py
+++ b/segment_public_api/models/create_label_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_label_v1_output.py b/segment_public_api/models/create_label_v1_output.py
index f7f8da03c..c6df705e5 100644
--- a/segment_public_api/models/create_label_v1_output.py
+++ b/segment_public_api/models/create_label_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_profiles_warehouse200_response.py b/segment_public_api/models/create_profiles_warehouse201_response.py
similarity index 83%
rename from segment_public_api/models/create_profiles_warehouse200_response.py
rename to segment_public_api/models/create_profiles_warehouse201_response.py
index 53ca8488c..4e14c24f5 100644
--- a/segment_public_api/models/create_profiles_warehouse200_response.py
+++ b/segment_public_api/models/create_profiles_warehouse201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_profiles_warehouse_alpha_output import CreateProfilesWarehouseAlphaOutput
 
-class CreateProfilesWarehouse200Response(BaseModel):
+class CreateProfilesWarehouse201Response(BaseModel):
     """
-    CreateProfilesWarehouse200Response
+    CreateProfilesWarehouse201Response
     """
     data: Optional[CreateProfilesWarehouseAlphaOutput] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateProfilesWarehouse200Response:
-        """Create an instance of CreateProfilesWarehouse200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateProfilesWarehouse201Response:
+        """Create an instance of CreateProfilesWarehouse201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateProfilesWarehouse200Response:
-        """Create an instance of CreateProfilesWarehouse200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateProfilesWarehouse201Response:
+        """Create an instance of CreateProfilesWarehouse201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateProfilesWarehouse200Response.parse_obj(obj)
+            return CreateProfilesWarehouse201Response.parse_obj(obj)
 
-        _obj = CreateProfilesWarehouse200Response.parse_obj({
+        _obj = CreateProfilesWarehouse201Response.parse_obj({
             "data": CreateProfilesWarehouseAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_profiles_warehouse_alpha_input.py b/segment_public_api/models/create_profiles_warehouse_alpha_input.py
index 804ad344b..53743cbf0 100644
--- a/segment_public_api/models/create_profiles_warehouse_alpha_input.py
+++ b/segment_public_api/models/create_profiles_warehouse_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -30,7 +30,7 @@ class CreateProfilesWarehouseAlphaInput(BaseModel):
     name: Optional[StrictStr] = Field(None, description="An optional human-readable name for this Warehouse.")
     enabled: Optional[StrictBool] = Field(None, description="Enable to allow this Warehouse to receive data. Defaults to true.")
     settings: Dict[str, Any] = Field(..., description="A key-value object that contains instance-specific Warehouse settings.")
-    schema_name: Optional[StrictStr] = Field(None, alias="schemaName", description="The custom schema name that Segment uses on the Warehouse side. The space slug value is default otherwise.")
+    schema_name: Optional[StrictStr] = Field(None, alias="schemaName", description="The custom schema name that Segment uses on the Warehouse side. The space slug value is default otherwise. The schema name cannot be an existing schema name in the Warehouse. To use an existing schema name, please create a profiles Warehouse through the Segment app UI.")
     __properties = ["metadataId", "name", "enabled", "settings", "schemaName"]
 
     class Config:
diff --git a/segment_public_api/models/create_profiles_warehouse_alpha_output.py b/segment_public_api/models/create_profiles_warehouse_alpha_output.py
index d6390d05d..71b9d7330 100644
--- a/segment_public_api/models/create_profiles_warehouse_alpha_output.py
+++ b/segment_public_api/models/create_profiles_warehouse_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_reverse_etl_manual_sync200_response.py b/segment_public_api/models/create_reverse_etl_manual_sync200_response.py
new file mode 100644
index 000000000..25b5396b1
--- /dev/null
+++ b/segment_public_api/models/create_reverse_etl_manual_sync200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_reverse_etl_manual_sync_output import CreateReverseETLManualSyncOutput
+
+class CreateReverseETLManualSync200Response(BaseModel):
+    """
+    CreateReverseETLManualSync200Response
+    """
+    data: Optional[CreateReverseETLManualSyncOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateReverseETLManualSync200Response:
+        """Create an instance of CreateReverseETLManualSync200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateReverseETLManualSync200Response:
+        """Create an instance of CreateReverseETLManualSync200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateReverseETLManualSync200Response.parse_obj(obj)
+
+        _obj = CreateReverseETLManualSync200Response.parse_obj({
+            "data": CreateReverseETLManualSyncOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_reverse_etl_manual_sync_input.py b/segment_public_api/models/create_reverse_etl_manual_sync_input.py
new file mode 100644
index 000000000..a4a95af51
--- /dev/null
+++ b/segment_public_api/models/create_reverse_etl_manual_sync_input.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class CreateReverseETLManualSyncInput(BaseModel):
+    """
+    Defines the parameters needed to trigger a manual sync for a RETL connection.  # noqa: E501
+    """
+    source_id: StrictStr = Field(..., alias="sourceId", description="The id of the Source.")
+    model_id: StrictStr = Field(..., alias="modelId", description="The id of the Model.")
+    subscription_id: StrictStr = Field(..., alias="subscriptionId", description="The id of the Subscription.")
+    __properties = ["sourceId", "modelId", "subscriptionId"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateReverseETLManualSyncInput:
+        """Create an instance of CreateReverseETLManualSyncInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateReverseETLManualSyncInput:
+        """Create an instance of CreateReverseETLManualSyncInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateReverseETLManualSyncInput.parse_obj(obj)
+
+        _obj = CreateReverseETLManualSyncInput.parse_obj({
+            "source_id": obj.get("sourceId"),
+            "model_id": obj.get("modelId"),
+            "subscription_id": obj.get("subscriptionId")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_reverse_etl_manual_sync_output.py b/segment_public_api/models/create_reverse_etl_manual_sync_output.py
new file mode 100644
index 000000000..04a57d063
--- /dev/null
+++ b/segment_public_api/models/create_reverse_etl_manual_sync_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.reverse_etl_manual_sync_job_output import ReverseETLManualSyncJobOutput
+
+class CreateReverseETLManualSyncOutput(BaseModel):
+    """
+    Output for triggering a manual sync for a RETL connection.  # noqa: E501
+    """
+    reverse_etl_manual_sync: ReverseETLManualSyncJobOutput = Field(..., alias="reverseETLManualSync")
+    __properties = ["reverseETLManualSync"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateReverseETLManualSyncOutput:
+        """Create an instance of CreateReverseETLManualSyncOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of reverse_etl_manual_sync
+        if self.reverse_etl_manual_sync:
+            _dict['reverseETLManualSync'] = self.reverse_etl_manual_sync.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateReverseETLManualSyncOutput:
+        """Create an instance of CreateReverseETLManualSyncOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateReverseETLManualSyncOutput.parse_obj(obj)
+
+        _obj = CreateReverseETLManualSyncOutput.parse_obj({
+            "reverse_etl_manual_sync": ReverseETLManualSyncJobOutput.from_dict(obj.get("reverseETLManualSync")) if obj.get("reverseETLManualSync") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_reverse_etl_model200_response.py b/segment_public_api/models/create_reverse_etl_model201_response.py
similarity index 83%
rename from segment_public_api/models/create_reverse_etl_model200_response.py
rename to segment_public_api/models/create_reverse_etl_model201_response.py
index a4a1c052d..b95e56ff1 100644
--- a/segment_public_api/models/create_reverse_etl_model200_response.py
+++ b/segment_public_api/models/create_reverse_etl_model201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_reverse_etl_model_output import CreateReverseEtlModelOutput
 
-class CreateReverseEtlModel200Response(BaseModel):
+class CreateReverseEtlModel201Response(BaseModel):
     """
-    CreateReverseEtlModel200Response
+    CreateReverseEtlModel201Response
     """
     data: Optional[CreateReverseEtlModelOutput] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateReverseEtlModel200Response:
-        """Create an instance of CreateReverseEtlModel200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateReverseEtlModel201Response:
+        """Create an instance of CreateReverseEtlModel201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateReverseEtlModel200Response:
-        """Create an instance of CreateReverseEtlModel200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateReverseEtlModel201Response:
+        """Create an instance of CreateReverseEtlModel201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateReverseEtlModel200Response.parse_obj(obj)
+            return CreateReverseEtlModel201Response.parse_obj(obj)
 
-        _obj = CreateReverseEtlModel200Response.parse_obj({
+        _obj = CreateReverseEtlModel201Response.parse_obj({
             "data": CreateReverseEtlModelOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_reverse_etl_model_input.py b/segment_public_api/models/create_reverse_etl_model_input.py
index bc7c4661a..88ad45381 100644
--- a/segment_public_api/models/create_reverse_etl_model_input.py
+++ b/segment_public_api/models/create_reverse_etl_model_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,8 +19,8 @@
 import json
 
 
-from typing import Any, Dict
-from pydantic import BaseModel, Field, StrictBool, StrictStr, validator
+
+from pydantic import BaseModel, Field, StrictBool, StrictStr
 
 class CreateReverseEtlModelInput(BaseModel):
     """
@@ -30,18 +30,9 @@ class CreateReverseEtlModelInput(BaseModel):
     name: StrictStr = Field(..., description="A short, human-readable description of the Model.")
     description: StrictStr = Field(..., description="A longer, more descriptive explanation of the Model.")
     enabled: StrictBool = Field(..., description="Indicates whether the Model should have syncs enabled. When disabled, no syncs will be triggered, regardless of the enabled status of the attached destinations/subscriptions.")
-    schedule_strategy: StrictStr = Field(..., alias="scheduleStrategy", description="Determines the strategy used for triggering syncs, which will be used in conjunction with scheduleConfig.")
-    schedule_config: Dict[str, Any] = Field(..., alias="scheduleConfig", description="Defines a configuration object used for scheduling, which can vary depending on the configured strategy, but must always be an object with at least 1 level of keys.")
     query: StrictStr = Field(..., description="The SQL query that will be executed to extract data from the connected Source.")
     query_identifier_column: StrictStr = Field(..., alias="queryIdentifierColumn", description="Indicates the column named in `query` that should be used to uniquely identify the extracted records.")
-    __properties = ["sourceId", "name", "description", "enabled", "scheduleStrategy", "scheduleConfig", "query", "queryIdentifierColumn"]
-
-    @validator('schedule_strategy')
-    def schedule_strategy_validate_enum(cls, value):
-        """Validates the enum"""
-        if value not in ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS'):
-            raise ValueError("must be one of enum values ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS')")
-        return value
+    __properties = ["sourceId", "name", "description", "enabled", "query", "queryIdentifierColumn"]
 
     class Config:
         """Pydantic configuration"""
@@ -83,8 +74,6 @@ def from_dict(cls, obj: dict) -> CreateReverseEtlModelInput:
             "name": obj.get("name"),
             "description": obj.get("description"),
             "enabled": obj.get("enabled"),
-            "schedule_strategy": obj.get("scheduleStrategy"),
-            "schedule_config": obj.get("scheduleConfig"),
             "query": obj.get("query"),
             "query_identifier_column": obj.get("queryIdentifierColumn")
         })
diff --git a/segment_public_api/models/create_reverse_etl_model_output.py b/segment_public_api/models/create_reverse_etl_model_output.py
index b57c5ffdb..596920d6a 100644
--- a/segment_public_api/models/create_reverse_etl_model_output.py
+++ b/segment_public_api/models/create_reverse_etl_model_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_source200_response.py b/segment_public_api/models/create_source201_response.py
similarity index 82%
rename from segment_public_api/models/create_source200_response.py
rename to segment_public_api/models/create_source201_response.py
index 4036151a5..ea305c029 100644
--- a/segment_public_api/models/create_source200_response.py
+++ b/segment_public_api/models/create_source201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_source_v1_output import CreateSourceV1Output
 
-class CreateSource200Response(BaseModel):
+class CreateSource201Response(BaseModel):
     """
-    CreateSource200Response
+    CreateSource201Response
     """
     data: Optional[CreateSourceV1Output] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateSource200Response:
-        """Create an instance of CreateSource200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateSource201Response:
+        """Create an instance of CreateSource201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateSource200Response:
-        """Create an instance of CreateSource200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateSource201Response:
+        """Create an instance of CreateSource201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateSource200Response.parse_obj(obj)
+            return CreateSource201Response.parse_obj(obj)
 
-        _obj = CreateSource200Response.parse_obj({
+        _obj = CreateSource201Response.parse_obj({
             "data": CreateSourceV1Output.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_source200_response1.py b/segment_public_api/models/create_source201_response1.py
similarity index 82%
rename from segment_public_api/models/create_source200_response1.py
rename to segment_public_api/models/create_source201_response1.py
index 61c38c8a9..0eea1fdff 100644
--- a/segment_public_api/models/create_source200_response1.py
+++ b/segment_public_api/models/create_source201_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_source_alpha_output import CreateSourceAlphaOutput
 
-class CreateSource200Response1(BaseModel):
+class CreateSource201Response1(BaseModel):
     """
-    CreateSource200Response1
+    CreateSource201Response1
     """
     data: Optional[CreateSourceAlphaOutput] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateSource200Response1:
-        """Create an instance of CreateSource200Response1 from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateSource201Response1:
+        """Create an instance of CreateSource201Response1 from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateSource200Response1:
-        """Create an instance of CreateSource200Response1 from a dict"""
+    def from_dict(cls, obj: dict) -> CreateSource201Response1:
+        """Create an instance of CreateSource201Response1 from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateSource200Response1.parse_obj(obj)
+            return CreateSource201Response1.parse_obj(obj)
 
-        _obj = CreateSource200Response1.parse_obj({
+        _obj = CreateSource201Response1.parse_obj({
             "data": CreateSourceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_source_alpha_input.py b/segment_public_api/models/create_source_alpha_input.py
index 66a3b05e5..206927a55 100644
--- a/segment_public_api/models/create_source_alpha_input.py
+++ b/segment_public_api/models/create_source_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_source_alpha_output.py b/segment_public_api/models/create_source_alpha_output.py
index 00a57b35e..404329105 100644
--- a/segment_public_api/models/create_source_alpha_output.py
+++ b/segment_public_api/models/create_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -25,7 +25,7 @@
 
 class CreateSourceAlphaOutput(BaseModel):
     """
-    Returns the newly Source.  # noqa: E501
+    Returns the newly created Source.  # noqa: E501
     """
     source: SourceAlpha = Field(...)
     __properties = ["source"]
diff --git a/segment_public_api/models/create_source_regulation200_response.py b/segment_public_api/models/create_source_regulation200_response.py
index 654045649..57feda63a 100644
--- a/segment_public_api/models/create_source_regulation200_response.py
+++ b/segment_public_api/models/create_source_regulation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_source_regulation_v1_input.py b/segment_public_api/models/create_source_regulation_v1_input.py
index c9a140f01..5c3c48679 100644
--- a/segment_public_api/models/create_source_regulation_v1_input.py
+++ b/segment_public_api/models/create_source_regulation_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -26,23 +26,23 @@ class CreateSourceRegulationV1Input(BaseModel):
     """
     The input to create a Source-scoped regulation.  # noqa: E501
     """
-    regulation_type: StrictStr = Field(..., alias="regulationType", description="The regulation type to create.")
-    subject_type: StrictStr = Field(..., alias="subjectType", description="The subject type.")
-    subject_ids: conlist(StrictStr) = Field(..., alias="subjectIds", description="The list of `userId` or `objectId` values of the subjects to regulate.  Config API note: equal to `parent` but allows an array.")
+    regulation_type: StrictStr = Field(..., alias="regulationType", description="The regulation type to create. Please note that `DELETE_ARCHIVE_ONLY` is only supported for limited Workspaces for Source-scoped regulations.")
+    subject_type: StrictStr = Field(..., alias="subjectType", description="The subject type. Note: `ANONYMOUS_ID` is only supported for limited Workspaces for Source-scoped regulations. `ANONYMOUS_ID` is only supported when regulationType is `DELETE_ARCHIVE_ONLY`.")
+    subject_ids: conlist(StrictStr) = Field(..., alias="subjectIds", description="The list of `userId` or `objectId` or `anonymousId` values of the subjects to regulate.  Config API note: equal to `parent` but allows an array.")
     __properties = ["regulationType", "subjectType", "subjectIds"]
 
     @validator('regulation_type')
     def regulation_type_validate_enum(cls, value):
         """Validates the enum"""
-        if value not in ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS'):
-            raise ValueError("must be one of enum values ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS')")
+        if value not in ('DELETE_ARCHIVE_ONLY', 'DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS'):
+            raise ValueError("must be one of enum values ('DELETE_ARCHIVE_ONLY', 'DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS')")
         return value
 
     @validator('subject_type')
     def subject_type_validate_enum(cls, value):
         """Validates the enum"""
-        if value not in ('USER_ID'):
-            raise ValueError("must be one of enum values ('USER_ID')")
+        if value not in ('ANONYMOUS_ID', 'USER_ID'):
+            raise ValueError("must be one of enum values ('ANONYMOUS_ID', 'USER_ID')")
         return value
 
     class Config:
diff --git a/segment_public_api/models/create_source_regulation_v1_output.py b/segment_public_api/models/create_source_regulation_v1_output.py
index 3fdd30679..2f23b8c2d 100644
--- a/segment_public_api/models/create_source_regulation_v1_output.py
+++ b/segment_public_api/models/create_source_regulation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_source_v1_input.py b/segment_public_api/models/create_source_v1_input.py
index 9efbcdebd..c64c95d91 100644
--- a/segment_public_api/models/create_source_v1_input.py
+++ b/segment_public_api/models/create_source_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -30,7 +30,8 @@ class CreateSourceV1Input(BaseModel):
     enabled: StrictBool = Field(..., description="Enable to allow this Source to send data. Defaults to true.")
     metadata_id: StrictStr = Field(..., alias="metadataId", description="The id of the Source metadata from which this instance of the Source derives.  All Source metadata is available under `/catalog/sources`.")
     settings: Optional[Dict[str, Any]] = Field(None, description="A key-value object that contains instance-specific settings for a Source.  The `options` field in the Source metadata defines the schema of this object.")
-    __properties = ["slug", "enabled", "metadataId", "settings"]
+    disconnect_all_warehouses: Optional[StrictBool] = Field(None, alias="disconnectAllWarehouses", description="Whether to disconnect all Warehouses from the Source.")
+    __properties = ["slug", "enabled", "metadataId", "settings", "disconnectAllWarehouses"]
 
     class Config:
         """Pydantic configuration"""
@@ -71,7 +72,8 @@ def from_dict(cls, obj: dict) -> CreateSourceV1Input:
             "slug": obj.get("slug"),
             "enabled": obj.get("enabled"),
             "metadata_id": obj.get("metadataId"),
-            "settings": obj.get("settings")
+            "settings": obj.get("settings"),
+            "disconnect_all_warehouses": obj.get("disconnectAllWarehouses")
         })
         return _obj
 
diff --git a/segment_public_api/models/create_source_v1_output.py b/segment_public_api/models/create_source_v1_output.py
index 8923c983f..d1c48330d 100644
--- a/segment_public_api/models/create_source_v1_output.py
+++ b/segment_public_api/models/create_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_tracking_plan200_response.py b/segment_public_api/models/create_tracking_plan200_response.py
index cc5acf1c0..5e136505a 100644
--- a/segment_public_api/models/create_tracking_plan200_response.py
+++ b/segment_public_api/models/create_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_tracking_plan_v1_input.py b/segment_public_api/models/create_tracking_plan_v1_input.py
index 40d6016a6..f76f97dc7 100644
--- a/segment_public_api/models/create_tracking_plan_v1_input.py
+++ b/segment_public_api/models/create_tracking_plan_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_tracking_plan_v1_output.py b/segment_public_api/models/create_tracking_plan_v1_output.py
index eff369c2f..5bf86b0f5 100644
--- a/segment_public_api/models/create_tracking_plan_v1_output.py
+++ b/segment_public_api/models/create_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_transformation200_response.py b/segment_public_api/models/create_transformation200_response.py
index 1355d3aa0..6ae3990b7 100644
--- a/segment_public_api/models/create_transformation200_response.py
+++ b/segment_public_api/models/create_transformation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_transformation_beta_input.py b/segment_public_api/models/create_transformation_beta_input.py
index 0749fea52..2dfdfe1fc 100644
--- a/segment_public_api/models/create_transformation_beta_input.py
+++ b/segment_public_api/models/create_transformation_beta_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -32,7 +32,7 @@ class CreateTransformationBetaInput(BaseModel):
     source_id: StrictStr = Field(..., alias="sourceId", description="The Source to be associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata id to be associated with the Transformation.")
     enabled: StrictBool = Field(..., description="If the Transformation should be enabled.")
-    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameBeta)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationBeta)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
diff --git a/segment_public_api/models/create_transformation_beta_output.py b/segment_public_api/models/create_transformation_beta_output.py
index ef1a27afc..05863b1ec 100644
--- a/segment_public_api/models/create_transformation_beta_output.py
+++ b/segment_public_api/models/create_transformation_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_transformation_v1_input.py b/segment_public_api/models/create_transformation_v1_input.py
index 75741abbf..49c06f9aa 100644
--- a/segment_public_api/models/create_transformation_v1_input.py
+++ b/segment_public_api/models/create_transformation_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,7 @@
 from typing import List, Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
 from segment_public_api.models.fql_defined_property_v1 import FQLDefinedPropertyV1
+from segment_public_api.models.hash_properties_configuration import HashPropertiesConfiguration
 from segment_public_api.models.property_rename_v1 import PropertyRenameV1
 from segment_public_api.models.property_value_transformation_v1 import PropertyValueTransformationV1
 
@@ -33,12 +34,15 @@ class CreateTransformationV1Input(BaseModel):
     source_id: StrictStr = Field(..., alias="sourceId", description="The Source to be associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata id to be associated with the Transformation.")
     enabled: StrictBool = Field(..., description="If the Transformation should be enabled.")
-    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
+    drop: Optional[StrictBool] = Field(None, description="Optional boolean value if the Transformation should drop the event entirely when the if statement matches, ignores all other transforms.")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameV1)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationV1)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
     fql_defined_properties: Optional[conlist(FQLDefinedPropertyV1)] = Field(None, alias="fqlDefinedProperties", description="Optional array for defining new properties in [FQL](https://segment.com/docs/config-api/fql/). Currently limited to 1 property.")
-    __properties = ["name", "sourceId", "destinationMetadataId", "enabled", "if", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties"]
+    allow_properties: Optional[conlist(StrictStr)] = Field(None, alias="allowProperties", description="Optional array for allowing properties from your events.")
+    hash_properties_configuration: Optional[HashPropertiesConfiguration] = Field(None, alias="hashPropertiesConfiguration")
+    __properties = ["name", "sourceId", "destinationMetadataId", "enabled", "if", "drop", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties", "allowProperties", "hashPropertiesConfiguration"]
 
     class Config:
         """Pydantic configuration"""
@@ -85,6 +89,9 @@ def to_dict(self):
                 if _item:
                     _items.append(_item.to_dict())
             _dict['fqlDefinedProperties'] = _items
+        # override the default output from pydantic by calling `to_dict()` of hash_properties_configuration
+        if self.hash_properties_configuration:
+            _dict['hashPropertiesConfiguration'] = self.hash_properties_configuration.to_dict()
         return _dict
 
     @classmethod
@@ -102,10 +109,13 @@ def from_dict(cls, obj: dict) -> CreateTransformationV1Input:
             "destination_metadata_id": obj.get("destinationMetadataId"),
             "enabled": obj.get("enabled"),
             "var_if": obj.get("if"),
+            "drop": obj.get("drop"),
             "new_event_name": obj.get("newEventName"),
             "property_renames": [PropertyRenameV1.from_dict(_item) for _item in obj.get("propertyRenames")] if obj.get("propertyRenames") is not None else None,
             "property_value_transformations": [PropertyValueTransformationV1.from_dict(_item) for _item in obj.get("propertyValueTransformations")] if obj.get("propertyValueTransformations") is not None else None,
-            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None
+            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None,
+            "allow_properties": obj.get("allowProperties"),
+            "hash_properties_configuration": HashPropertiesConfiguration.from_dict(obj.get("hashPropertiesConfiguration")) if obj.get("hashPropertiesConfiguration") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/create_transformation_v1_output.py b/segment_public_api/models/create_transformation_v1_output.py
index 190b6c921..352edbfa5 100644
--- a/segment_public_api/models/create_transformation_v1_output.py
+++ b/segment_public_api/models/create_transformation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_user_group200_response.py b/segment_public_api/models/create_user_group200_response.py
index f22d6eb6f..97d4dab25 100644
--- a/segment_public_api/models/create_user_group200_response.py
+++ b/segment_public_api/models/create_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_user_group_v1_input.py b/segment_public_api/models/create_user_group_v1_input.py
index dfb6ef228..d63b723d4 100644
--- a/segment_public_api/models/create_user_group_v1_input.py
+++ b/segment_public_api/models/create_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_user_group_v1_output.py b/segment_public_api/models/create_user_group_v1_output.py
index 09f2a92b9..5411f99a8 100644
--- a/segment_public_api/models/create_user_group_v1_output.py
+++ b/segment_public_api/models/create_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_validation_in_warehouse200_response.py b/segment_public_api/models/create_validation_in_warehouse200_response.py
index d08a15b84..3df7c364b 100644
--- a/segment_public_api/models/create_validation_in_warehouse200_response.py
+++ b/segment_public_api/models/create_validation_in_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_validation_in_warehouse_v1_input.py b/segment_public_api/models/create_validation_in_warehouse_v1_input.py
index 5dd31370e..e8b8782c3 100644
--- a/segment_public_api/models/create_validation_in_warehouse_v1_input.py
+++ b/segment_public_api/models/create_validation_in_warehouse_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_validation_in_warehouse_v1_output.py b/segment_public_api/models/create_validation_in_warehouse_v1_output.py
index 8e9707a80..0e98a434f 100644
--- a/segment_public_api/models/create_validation_in_warehouse_v1_output.py
+++ b/segment_public_api/models/create_validation_in_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_warehouse200_response.py b/segment_public_api/models/create_warehouse201_response.py
similarity index 82%
rename from segment_public_api/models/create_warehouse200_response.py
rename to segment_public_api/models/create_warehouse201_response.py
index f6a80dc02..d53f88146 100644
--- a/segment_public_api/models/create_warehouse200_response.py
+++ b/segment_public_api/models/create_warehouse201_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -23,9 +23,9 @@
 from pydantic import BaseModel
 from segment_public_api.models.create_warehouse_v1_output import CreateWarehouseV1Output
 
-class CreateWarehouse200Response(BaseModel):
+class CreateWarehouse201Response(BaseModel):
     """
-    CreateWarehouse200Response
+    CreateWarehouse201Response
     """
     data: Optional[CreateWarehouseV1Output] = None
     __properties = ["data"]
@@ -44,8 +44,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> CreateWarehouse200Response:
-        """Create an instance of CreateWarehouse200Response from a JSON string"""
+    def from_json(cls, json_str: str) -> CreateWarehouse201Response:
+        """Create an instance of CreateWarehouse201Response from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -60,15 +60,15 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> CreateWarehouse200Response:
-        """Create an instance of CreateWarehouse200Response from a dict"""
+    def from_dict(cls, obj: dict) -> CreateWarehouse201Response:
+        """Create an instance of CreateWarehouse201Response from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return CreateWarehouse200Response.parse_obj(obj)
+            return CreateWarehouse201Response.parse_obj(obj)
 
-        _obj = CreateWarehouse200Response.parse_obj({
+        _obj = CreateWarehouse201Response.parse_obj({
             "data": CreateWarehouseV1Output.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/create_warehouse_v1_input.py b/segment_public_api/models/create_warehouse_v1_input.py
index 8c35e8c32..3fcfb40e0 100644
--- a/segment_public_api/models/create_warehouse_v1_input.py
+++ b/segment_public_api/models/create_warehouse_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -30,7 +30,8 @@ class CreateWarehouseV1Input(BaseModel):
     name: Optional[StrictStr] = Field(None, description="An optional human-readable name for this Warehouse.")
     enabled: Optional[StrictBool] = Field(None, description="Enable to allow this Warehouse to receive data. Defaults to true.")
     settings: Dict[str, Any] = Field(..., description="A key-value object that contains instance-specific Warehouse settings.")
-    __properties = ["metadataId", "name", "enabled", "settings"]
+    disconnect_all_sources: Optional[StrictBool] = Field(None, alias="disconnectAllSources", description="Whether to disconnect all Sources from this Warehouse.")
+    __properties = ["metadataId", "name", "enabled", "settings", "disconnectAllSources"]
 
     class Config:
         """Pydantic configuration"""
@@ -71,7 +72,8 @@ def from_dict(cls, obj: dict) -> CreateWarehouseV1Input:
             "metadata_id": obj.get("metadataId"),
             "name": obj.get("name"),
             "enabled": obj.get("enabled"),
-            "settings": obj.get("settings")
+            "settings": obj.get("settings"),
+            "disconnect_all_sources": obj.get("disconnectAllSources")
         })
         return _obj
 
diff --git a/segment_public_api/models/create_warehouse_v1_output.py b/segment_public_api/models/create_warehouse_v1_output.py
index 2260acea8..4b34511ad 100644
--- a/segment_public_api/models/create_warehouse_v1_output.py
+++ b/segment_public_api/models/create_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_workspace_regulation200_response.py b/segment_public_api/models/create_workspace_regulation200_response.py
index ee591b329..2492a8bce 100644
--- a/segment_public_api/models/create_workspace_regulation200_response.py
+++ b/segment_public_api/models/create_workspace_regulation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_workspace_regulation_v1_input.py b/segment_public_api/models/create_workspace_regulation_v1_input.py
index 038f01c5f..88f479ba5 100644
--- a/segment_public_api/models/create_workspace_regulation_v1_input.py
+++ b/segment_public_api/models/create_workspace_regulation_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -34,8 +34,8 @@ class CreateWorkspaceRegulationV1Input(BaseModel):
     @validator('regulation_type')
     def regulation_type_validate_enum(cls, value):
         """Validates the enum"""
-        if value not in ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS'):
-            raise ValueError("must be one of enum values ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'UNSUPPRESS')")
+        if value not in ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS'):
+            raise ValueError("must be one of enum values ('DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS')")
         return value
 
     @validator('subject_type')
diff --git a/segment_public_api/models/create_workspace_regulation_v1_output.py b/segment_public_api/models/create_workspace_regulation_v1_output.py
index 8572c01e8..3726dffdf 100644
--- a/segment_public_api/models/create_workspace_regulation_v1_output.py
+++ b/segment_public_api/models/create_workspace_regulation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/create_write_key_for_source200_response.py b/segment_public_api/models/create_write_key_for_source200_response.py
new file mode 100644
index 000000000..0a000aec8
--- /dev/null
+++ b/segment_public_api/models/create_write_key_for_source200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.create_write_key_for_source_alpha_output import CreateWriteKeyForSourceAlphaOutput
+
+class CreateWriteKeyForSource200Response(BaseModel):
+    """
+    CreateWriteKeyForSource200Response
+    """
+    data: Optional[CreateWriteKeyForSourceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateWriteKeyForSource200Response:
+        """Create an instance of CreateWriteKeyForSource200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateWriteKeyForSource200Response:
+        """Create an instance of CreateWriteKeyForSource200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateWriteKeyForSource200Response.parse_obj(obj)
+
+        _obj = CreateWriteKeyForSource200Response.parse_obj({
+            "data": CreateWriteKeyForSourceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/create_write_key_for_source_alpha_output.py b/segment_public_api/models/create_write_key_for_source_alpha_output.py
new file mode 100644
index 000000000..dae2175c2
--- /dev/null
+++ b/segment_public_api/models/create_write_key_for_source_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.source_alpha import SourceAlpha
+
+class CreateWriteKeyForSourceAlphaOutput(BaseModel):
+    """
+    Returns the updated Source.  # noqa: E501
+    """
+    source: SourceAlpha = Field(...)
+    __properties = ["source"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> CreateWriteKeyForSourceAlphaOutput:
+        """Create an instance of CreateWriteKeyForSourceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of source
+        if self.source:
+            _dict['source'] = self.source.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> CreateWriteKeyForSourceAlphaOutput:
+        """Create an instance of CreateWriteKeyForSourceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return CreateWriteKeyForSourceAlphaOutput.parse_obj(obj)
+
+        _obj = CreateWriteKeyForSourceAlphaOutput.parse_obj({
+            "source": SourceAlpha.from_dict(obj.get("source")) if obj.get("source") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/dbt_model_sync_trigger.py b/segment_public_api/models/dbt_model_sync_trigger.py
new file mode 100644
index 000000000..90fad2b37
--- /dev/null
+++ b/segment_public_api/models/dbt_model_sync_trigger.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr
+
+class DbtModelSyncTrigger(BaseModel):
+    """
+    Defines the dbt Model Sync Trigger.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The id of the dbt model sync.")
+    source_id: Optional[StrictStr] = Field(None, alias="sourceId", description="The Source id that was triggered.")
+    status: StrictStr = Field(..., description="The status of the trigger.")
+    __properties = ["id", "sourceId", "status"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DbtModelSyncTrigger:
+        """Create an instance of DbtModelSyncTrigger from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DbtModelSyncTrigger:
+        """Create an instance of DbtModelSyncTrigger from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DbtModelSyncTrigger.parse_obj(obj)
+
+        _obj = DbtModelSyncTrigger.parse_obj({
+            "id": obj.get("id"),
+            "source_id": obj.get("sourceId"),
+            "status": obj.get("status")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delete_activation_alpha_output.py b/segment_public_api/models/delete_activation_alpha_output.py
new file mode 100644
index 000000000..eb93d129b
--- /dev/null
+++ b/segment_public_api/models/delete_activation_alpha_output.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class DeleteActivationAlphaOutput(BaseModel):
+    """
+    Output for deleting an activation.  # noqa: E501
+    """
+    status: StrictStr = Field(..., description="Deletion status.")
+    __properties = ["status"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeleteActivationAlphaOutput:
+        """Create an instance of DeleteActivationAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeleteActivationAlphaOutput:
+        """Create an instance of DeleteActivationAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeleteActivationAlphaOutput.parse_obj(obj)
+
+        _obj = DeleteActivationAlphaOutput.parse_obj({
+            "status": obj.get("status")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delete_destination200_response.py b/segment_public_api/models/delete_destination200_response.py
index a9b69b746..081b8e423 100644
--- a/segment_public_api/models/delete_destination200_response.py
+++ b/segment_public_api/models/delete_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_destination_v1_output.py b/segment_public_api/models/delete_destination_v1_output.py
index 7cfaf533c..885e3bd6e 100644
--- a/segment_public_api/models/delete_destination_v1_output.py
+++ b/segment_public_api/models/delete_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_filter_by_id200_response.py b/segment_public_api/models/delete_filter_by_id200_response.py
new file mode 100644
index 000000000..d3a35a314
--- /dev/null
+++ b/segment_public_api/models/delete_filter_by_id200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.delete_filter_by_id_output import DeleteFilterByIdOutput
+
+class DeleteFilterById200Response(BaseModel):
+    """
+    DeleteFilterById200Response
+    """
+    data: Optional[DeleteFilterByIdOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeleteFilterById200Response:
+        """Create an instance of DeleteFilterById200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeleteFilterById200Response:
+        """Create an instance of DeleteFilterById200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeleteFilterById200Response.parse_obj(obj)
+
+        _obj = DeleteFilterById200Response.parse_obj({
+            "data": DeleteFilterByIdOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_audience_for_space_input.py b/segment_public_api/models/delete_filter_by_id_output.py
similarity index 71%
rename from segment_public_api/models/update_audience_for_space_input.py
rename to segment_public_api/models/delete_filter_by_id_output.py
index 1a86afe40..414849652 100644
--- a/segment_public_api/models/update_audience_for_space_input.py
+++ b/segment_public_api/models/delete_filter_by_id_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,12 +22,12 @@
 
 from pydantic import BaseModel, Field, StrictBool
 
-class UpdateAudienceForSpaceInput(BaseModel):
+class DeleteFilterByIdOutput(BaseModel):
     """
-    Input to update an audience.  # noqa: E501
+    Output for DeleteFilterById.  # noqa: E501
     """
-    enabled: StrictBool = Field(..., description="Enabled/disabled status for the audience.")
-    __properties = ["enabled"]
+    deleted: StrictBool = Field(..., description="Filter deleted by filter id.")
+    __properties = ["deleted"]
 
     class Config:
         """Pydantic configuration"""
@@ -43,8 +43,8 @@ def to_json(self) -> str:
         return json.dumps(self.to_dict())
 
     @classmethod
-    def from_json(cls, json_str: str) -> UpdateAudienceForSpaceInput:
-        """Create an instance of UpdateAudienceForSpaceInput from a JSON string"""
+    def from_json(cls, json_str: str) -> DeleteFilterByIdOutput:
+        """Create an instance of DeleteFilterByIdOutput from a JSON string"""
         return cls.from_dict(json.loads(json_str))
 
     def to_dict(self):
@@ -56,16 +56,16 @@ def to_dict(self):
         return _dict
 
     @classmethod
-    def from_dict(cls, obj: dict) -> UpdateAudienceForSpaceInput:
-        """Create an instance of UpdateAudienceForSpaceInput from a dict"""
+    def from_dict(cls, obj: dict) -> DeleteFilterByIdOutput:
+        """Create an instance of DeleteFilterByIdOutput from a dict"""
         if obj is None:
             return None
 
         if not isinstance(obj, dict):
-            return UpdateAudienceForSpaceInput.parse_obj(obj)
+            return DeleteFilterByIdOutput.parse_obj(obj)
 
-        _obj = UpdateAudienceForSpaceInput.parse_obj({
-            "enabled": obj.get("enabled")
+        _obj = DeleteFilterByIdOutput.parse_obj({
+            "deleted": obj.get("deleted")
         })
         return _obj
 
diff --git a/segment_public_api/models/delete_function200_response.py b/segment_public_api/models/delete_function200_response.py
index 10c4dec77..a7f015446 100644
--- a/segment_public_api/models/delete_function200_response.py
+++ b/segment_public_api/models/delete_function200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_function_v1_output.py b/segment_public_api/models/delete_function_v1_output.py
index f2d24d868..4a8e7ab52 100644
--- a/segment_public_api/models/delete_function_v1_output.py
+++ b/segment_public_api/models/delete_function_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_insert_function_instance200_response.py b/segment_public_api/models/delete_insert_function_instance200_response.py
index 57042f8e5..a83b3eef1 100644
--- a/segment_public_api/models/delete_insert_function_instance200_response.py
+++ b/segment_public_api/models/delete_insert_function_instance200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_insert_function_instance_alpha_output.py b/segment_public_api/models/delete_insert_function_instance_alpha_output.py
index 50ddac6be..314b81db6 100644
--- a/segment_public_api/models/delete_insert_function_instance_alpha_output.py
+++ b/segment_public_api/models/delete_insert_function_instance_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_invites200_response.py b/segment_public_api/models/delete_invites200_response.py
index 346299fd6..11401aa1c 100644
--- a/segment_public_api/models/delete_invites200_response.py
+++ b/segment_public_api/models/delete_invites200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_invites_v1_output.py b/segment_public_api/models/delete_invites_v1_output.py
index a43f09f67..d12557bdf 100644
--- a/segment_public_api/models/delete_invites_v1_output.py
+++ b/segment_public_api/models/delete_invites_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_label200_response.py b/segment_public_api/models/delete_label200_response.py
index 2972c4b8f..d95ccdaf8 100644
--- a/segment_public_api/models/delete_label200_response.py
+++ b/segment_public_api/models/delete_label200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_label200_response1.py b/segment_public_api/models/delete_label200_response1.py
index 0176c0661..19424acda 100644
--- a/segment_public_api/models/delete_label200_response1.py
+++ b/segment_public_api/models/delete_label200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_label_alpha_output.py b/segment_public_api/models/delete_label_alpha_output.py
index 3d1f09900..21d6e293a 100644
--- a/segment_public_api/models/delete_label_alpha_output.py
+++ b/segment_public_api/models/delete_label_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_label_v1_output.py b/segment_public_api/models/delete_label_v1_output.py
index 88fa31ff7..97f1e6f11 100644
--- a/segment_public_api/models/delete_label_v1_output.py
+++ b/segment_public_api/models/delete_label_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_regulation200_response.py b/segment_public_api/models/delete_regulation200_response.py
index 1f2362ab1..be1c6c503 100644
--- a/segment_public_api/models/delete_regulation200_response.py
+++ b/segment_public_api/models/delete_regulation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_regulation_v1_output.py b/segment_public_api/models/delete_regulation_v1_output.py
index 0a2919a72..48c34a37a 100644
--- a/segment_public_api/models/delete_regulation_v1_output.py
+++ b/segment_public_api/models/delete_regulation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_reverse_etl_model200_response.py b/segment_public_api/models/delete_reverse_etl_model200_response.py
index c3b90a064..0b21fa071 100644
--- a/segment_public_api/models/delete_reverse_etl_model200_response.py
+++ b/segment_public_api/models/delete_reverse_etl_model200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_reverse_etl_model_output.py b/segment_public_api/models/delete_reverse_etl_model_output.py
index 959234195..c9cecfe24 100644
--- a/segment_public_api/models/delete_reverse_etl_model_output.py
+++ b/segment_public_api/models/delete_reverse_etl_model_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_source200_response.py b/segment_public_api/models/delete_source200_response.py
index 32dc9b923..cae1030da 100644
--- a/segment_public_api/models/delete_source200_response.py
+++ b/segment_public_api/models/delete_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_source200_response1.py b/segment_public_api/models/delete_source200_response1.py
index 5ee41e3a5..ae32a38d4 100644
--- a/segment_public_api/models/delete_source200_response1.py
+++ b/segment_public_api/models/delete_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_source_alpha_output.py b/segment_public_api/models/delete_source_alpha_output.py
index 505866006..2f4e43120 100644
--- a/segment_public_api/models/delete_source_alpha_output.py
+++ b/segment_public_api/models/delete_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_source_v1_output.py b/segment_public_api/models/delete_source_v1_output.py
index ebff90b37..bb62d4643 100644
--- a/segment_public_api/models/delete_source_v1_output.py
+++ b/segment_public_api/models/delete_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_tracking_plan200_response.py b/segment_public_api/models/delete_tracking_plan200_response.py
index 094578943..e23e6f02b 100644
--- a/segment_public_api/models/delete_tracking_plan200_response.py
+++ b/segment_public_api/models/delete_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_tracking_plan_v1_output.py b/segment_public_api/models/delete_tracking_plan_v1_output.py
index 732126508..854794ca6 100644
--- a/segment_public_api/models/delete_tracking_plan_v1_output.py
+++ b/segment_public_api/models/delete_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_transformation200_response.py b/segment_public_api/models/delete_transformation200_response.py
index 4fecfc104..689b6326b 100644
--- a/segment_public_api/models/delete_transformation200_response.py
+++ b/segment_public_api/models/delete_transformation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_transformation_beta_input.py b/segment_public_api/models/delete_transformation_beta_input.py
index c7637c672..694f33a4d 100644
--- a/segment_public_api/models/delete_transformation_beta_input.py
+++ b/segment_public_api/models/delete_transformation_beta_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_transformation_beta_output.py b/segment_public_api/models/delete_transformation_beta_output.py
index 6460b7963..48e7b6bc0 100644
--- a/segment_public_api/models/delete_transformation_beta_output.py
+++ b/segment_public_api/models/delete_transformation_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_transformation_v1_output.py b/segment_public_api/models/delete_transformation_v1_output.py
index 5803ffd3f..b370fc3bf 100644
--- a/segment_public_api/models/delete_transformation_v1_output.py
+++ b/segment_public_api/models/delete_transformation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_user_group200_response.py b/segment_public_api/models/delete_user_group200_response.py
index ffc376b5b..466ab2f00 100644
--- a/segment_public_api/models/delete_user_group200_response.py
+++ b/segment_public_api/models/delete_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_user_group_v1_output.py b/segment_public_api/models/delete_user_group_v1_output.py
index 7d3aec14c..0c46eaeb0 100644
--- a/segment_public_api/models/delete_user_group_v1_output.py
+++ b/segment_public_api/models/delete_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_users200_response.py b/segment_public_api/models/delete_users200_response.py
index d77b946e3..8e69f4747 100644
--- a/segment_public_api/models/delete_users200_response.py
+++ b/segment_public_api/models/delete_users200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_users_v1_output.py b/segment_public_api/models/delete_users_v1_output.py
index db6fc80ec..e365f446f 100644
--- a/segment_public_api/models/delete_users_v1_output.py
+++ b/segment_public_api/models/delete_users_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_warehouse200_response.py b/segment_public_api/models/delete_warehouse200_response.py
index 4370a9e74..fba6a1c24 100644
--- a/segment_public_api/models/delete_warehouse200_response.py
+++ b/segment_public_api/models/delete_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delete_warehouse_v1_output.py b/segment_public_api/models/delete_warehouse_v1_output.py
index 4884ca4b8..bff5deb24 100644
--- a/segment_public_api/models/delete_warehouse_v1_output.py
+++ b/segment_public_api/models/delete_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delivery_metrics_summary_beta.py b/segment_public_api/models/delivery_metrics_summary_beta.py
index 6c0352721..3685c3570 100644
--- a/segment_public_api/models/delivery_metrics_summary_beta.py
+++ b/segment_public_api/models/delivery_metrics_summary_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/delivery_overview_destination_filter_by.py b/segment_public_api/models/delivery_overview_destination_filter_by.py
new file mode 100644
index 000000000..63e4cc243
--- /dev/null
+++ b/segment_public_api/models/delivery_overview_destination_filter_by.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist
+
+class DeliveryOverviewDestinationFilterBy(BaseModel):
+    """
+    The `DeliveryOverviewDestinationFilterBy` object is a map of the filterable fields and their values.  # noqa: E501
+    """
+    discard_reason: Optional[conlist(StrictStr)] = Field(None, alias="discardReason", description="A list of strings of discard reasons.  See [Discard Record Documentation](https://segment.com/docs/connections/delivery-overview/#troubleshooting) for valid error codes.")
+    event_name: Optional[conlist(StrictStr)] = Field(None, alias="eventName", description="A list of strings of event names.")
+    event_type: Optional[conlist(StrictStr)] = Field(None, alias="eventType", description="A list of strings of event types. Valid options are: `alias`, `group`, `identify`, `page`, `screen`, and `track`.")
+    app_version: Optional[conlist(StrictStr)] = Field(None, alias="appVersion", description="A list of strings of app versions.")
+    subscription_id: Optional[conlist(StrictStr)] = Field(None, alias="subscriptionId", description="A list of strings of subscription IDs for Actions Destinations.")
+    activation_id: Optional[conlist(StrictStr)] = Field(None, alias="activationId", description="A list of strings of event context IDs from a Linked Audience mapping/activation.")
+    audience_id: Optional[conlist(StrictStr)] = Field(None, alias="audienceId", description="A list of strings of audience IDs for a Linked Audience.")
+    space_id: Optional[conlist(StrictStr)] = Field(None, alias="spaceId", description="A list of strings of space IDs for a Linked Audience.")
+    __properties = ["discardReason", "eventName", "eventType", "appVersion", "subscriptionId", "activationId", "audienceId", "spaceId"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeliveryOverviewDestinationFilterBy:
+        """Create an instance of DeliveryOverviewDestinationFilterBy from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeliveryOverviewDestinationFilterBy:
+        """Create an instance of DeliveryOverviewDestinationFilterBy from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeliveryOverviewDestinationFilterBy.parse_obj(obj)
+
+        _obj = DeliveryOverviewDestinationFilterBy.parse_obj({
+            "discard_reason": obj.get("discardReason"),
+            "event_name": obj.get("eventName"),
+            "event_type": obj.get("eventType"),
+            "app_version": obj.get("appVersion"),
+            "subscription_id": obj.get("subscriptionId"),
+            "activation_id": obj.get("activationId"),
+            "audience_id": obj.get("audienceId"),
+            "space_id": obj.get("spaceId")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delivery_overview_metrics_datapoint.py b/segment_public_api/models/delivery_overview_metrics_datapoint.py
new file mode 100644
index 000000000..bd6adeeff
--- /dev/null
+++ b/segment_public_api/models/delivery_overview_metrics_datapoint.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr
+
+class DeliveryOverviewMetricsDatapoint(BaseModel):
+    """
+    Series within DeliveryOverviewMetricsDataset.  # noqa: E501
+    """
+    time: StrictStr = Field(..., description="The timestamp corresponding to the beginning of the window given by the requested granularity.")
+    count: Union[StrictFloat, StrictInt] = Field(..., description="Holds the number of events within the specified granularity and group By options.")
+    retry_count: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="retryCount", description="The number of retried events that were successfully delivered.")
+    __properties = ["time", "count", "retryCount"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeliveryOverviewMetricsDatapoint:
+        """Create an instance of DeliveryOverviewMetricsDatapoint from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeliveryOverviewMetricsDatapoint:
+        """Create an instance of DeliveryOverviewMetricsDatapoint from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeliveryOverviewMetricsDatapoint.parse_obj(obj)
+
+        _obj = DeliveryOverviewMetricsDatapoint.parse_obj({
+            "time": obj.get("time"),
+            "count": obj.get("count"),
+            "retry_count": obj.get("retryCount")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delivery_overview_metrics_dataset.py b/segment_public_api/models/delivery_overview_metrics_dataset.py
new file mode 100644
index 000000000..2c8687b71
--- /dev/null
+++ b/segment_public_api/models/delivery_overview_metrics_dataset.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist
+from segment_public_api.models.delivery_overview_metrics_datapoint import DeliveryOverviewMetricsDatapoint
+
+class DeliveryOverviewMetricsDataset(BaseModel):
+    """
+    Dataset within GetDeliveryOverviewMetricsBetaOutput.  # noqa: E501
+    """
+    event_name: Optional[StrictStr] = Field(None, alias="eventName", description="The name of the event if group By[] included 'event Name' in the request.")
+    app_version: Optional[StrictStr] = Field(None, alias="appVersion", description="The version of the app if group By[] included 'app Version' in the request.")
+    event_type: Optional[StrictStr] = Field(None, alias="eventType", description="The event type if group By[] included 'event Type' in the request.")
+    discard_reason: Optional[StrictStr] = Field(None, alias="discardReason", description="The discard reason for dropped events if group By[] included 'discard Reason' in the request.")
+    total: Union[StrictFloat, StrictInt] = Field(..., description="Holds the count of all event counts over the time frame of the series.")
+    series: conlist(DeliveryOverviewMetricsDatapoint) = Field(..., description="A list of the event counts broken down by the requested granularity, time frame, and group By options.")
+    total_retry_count: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalRetryCount", description="The number of events successfully delivered upon retry.")
+    __properties = ["eventName", "appVersion", "eventType", "discardReason", "total", "series", "totalRetryCount"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeliveryOverviewMetricsDataset:
+        """Create an instance of DeliveryOverviewMetricsDataset from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in series (list)
+        _items = []
+        if self.series:
+            for _item in self.series:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['series'] = _items
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeliveryOverviewMetricsDataset:
+        """Create an instance of DeliveryOverviewMetricsDataset from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeliveryOverviewMetricsDataset.parse_obj(obj)
+
+        _obj = DeliveryOverviewMetricsDataset.parse_obj({
+            "event_name": obj.get("eventName"),
+            "app_version": obj.get("appVersion"),
+            "event_type": obj.get("eventType"),
+            "discard_reason": obj.get("discardReason"),
+            "total": obj.get("total"),
+            "series": [DeliveryOverviewMetricsDatapoint.from_dict(_item) for _item in obj.get("series")] if obj.get("series") is not None else None,
+            "total_retry_count": obj.get("totalRetryCount")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delivery_overview_source_filter_by.py b/segment_public_api/models/delivery_overview_source_filter_by.py
new file mode 100644
index 000000000..a6edc6e65
--- /dev/null
+++ b/segment_public_api/models/delivery_overview_source_filter_by.py
@@ -0,0 +1,78 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist
+
+class DeliveryOverviewSourceFilterBy(BaseModel):
+    """
+    The `DeliveryOverviewSourceFilterBy` object is a map of the filterable fields and their values.  # noqa: E501
+    """
+    discard_reason: Optional[conlist(StrictStr)] = Field(None, alias="discardReason", description="A list of strings of discard reasons.  See [Discard Record Documentation](https://segment.com/docs/connections/delivery-overview/#troubleshooting) for valid error codes.")
+    event_name: Optional[conlist(StrictStr)] = Field(None, alias="eventName", description="A list of strings of event names.")
+    event_type: Optional[conlist(StrictStr)] = Field(None, alias="eventType", description="A list of strings of event types. Valid options are: `alias`, `group`, `identify`, `page`, `screen`, and `track`.")
+    app_version: Optional[conlist(StrictStr)] = Field(None, alias="appVersion", description="A list of strings of app versions.")
+    __properties = ["discardReason", "eventName", "eventType", "appVersion"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeliveryOverviewSourceFilterBy:
+        """Create an instance of DeliveryOverviewSourceFilterBy from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeliveryOverviewSourceFilterBy:
+        """Create an instance of DeliveryOverviewSourceFilterBy from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeliveryOverviewSourceFilterBy.parse_obj(obj)
+
+        _obj = DeliveryOverviewSourceFilterBy.parse_obj({
+            "discard_reason": obj.get("discardReason"),
+            "event_name": obj.get("eventName"),
+            "event_type": obj.get("eventType"),
+            "app_version": obj.get("appVersion")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/delivery_overview_successfully_received_filter_by.py b/segment_public_api/models/delivery_overview_successfully_received_filter_by.py
new file mode 100644
index 000000000..c3003203b
--- /dev/null
+++ b/segment_public_api/models/delivery_overview_successfully_received_filter_by.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist
+
+class DeliveryOverviewSuccessfullyReceivedFilterBy(BaseModel):
+    """
+    The `DeliveryOverviewSuccessfullyReceivedFilterBy` object is a map of the filterable fields and their values for the Successfully Received pipeline step.  # noqa: E501
+    """
+    event_name: Optional[conlist(StrictStr)] = Field(None, alias="eventName", description="A list of strings of event names.")
+    event_type: Optional[conlist(StrictStr)] = Field(None, alias="eventType", description="A list of strings of event types. Valid options are: `alias`, `group`, `identify`, `page`, `screen`, and `track`.")
+    app_version: Optional[conlist(StrictStr)] = Field(None, alias="appVersion", description="A list of strings of app versions.")
+    __properties = ["eventName", "eventType", "appVersion"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DeliveryOverviewSuccessfullyReceivedFilterBy:
+        """Create an instance of DeliveryOverviewSuccessfullyReceivedFilterBy from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DeliveryOverviewSuccessfullyReceivedFilterBy:
+        """Create an instance of DeliveryOverviewSuccessfullyReceivedFilterBy from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DeliveryOverviewSuccessfullyReceivedFilterBy.parse_obj(obj)
+
+        _obj = DeliveryOverviewSuccessfullyReceivedFilterBy.parse_obj({
+            "event_name": obj.get("eventName"),
+            "event_type": obj.get("eventType"),
+            "app_version": obj.get("appVersion")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/destination_filter_action_v1.py b/segment_public_api/models/destination_filter_action_v1.py
index aff905b37..fb1e699fe 100644
--- a/segment_public_api/models/destination_filter_action_v1.py
+++ b/segment_public_api/models/destination_filter_action_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -27,7 +27,7 @@ class DestinationFilterActionV1(BaseModel):
     Represents a Destination filter action.  # noqa: E501
     """
     type: StrictStr = Field(..., description="The kind of Transformation to apply to any matched properties.")
-    fields: Optional[Dict[str, Any]] = Field(None, description="A dictionary of paths to object keys that this filter applies to.   The literal string '' represents the top level of the object.")
+    fields: Optional[Dict[str, Any]] = Field(None, description="A dictionary of paths to object keys that this filter applies to.  The literal string '' represents the top level of the object.")
     percent: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="A decimal between 0 and 1 used for 'sample' type events and influences the likelihood of sampling to occur.")
     path: Optional[StrictStr] = Field(None, description="The JSON path to a property within a payload object from which Segment generates a deterministic sampling rate.")
     __properties = ["type", "fields", "percent", "path"]
diff --git a/segment_public_api/models/destination_filter_v1.py b/segment_public_api/models/destination_filter_v1.py
index e9f03f01b..9ba1901bb 100644
--- a/segment_public_api/models/destination_filter_v1.py
+++ b/segment_public_api/models/destination_filter_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_input.py b/segment_public_api/models/destination_input.py
new file mode 100644
index 000000000..c7d873e2f
--- /dev/null
+++ b/segment_public_api/models/destination_input.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class DestinationInput(BaseModel):
+    """
+    The Destination Input Object.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The Destination instance id.")
+    type: StrictStr = Field(..., description="Type of Destination to add to the audience.")
+    __properties = ["id", "type"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> DestinationInput:
+        """Create an instance of DestinationInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> DestinationInput:
+        """Create an instance of DestinationInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return DestinationInput.parse_obj(obj)
+
+        _obj = DestinationInput.parse_obj({
+            "id": obj.get("id"),
+            "type": obj.get("type")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/destination_metadata_action_field_v1.py b/segment_public_api/models/destination_metadata_action_field_v1.py
index 43a94480d..903c724b3 100644
--- a/segment_public_api/models/destination_metadata_action_field_v1.py
+++ b/segment_public_api/models/destination_metadata_action_field_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -39,7 +39,8 @@ class DestinationMetadataActionFieldV1(BaseModel):
     choices: Optional[Any] = Field(None, description="A list of machine-readable value/label pairs to populate a static dropdown.")
     dynamic: StrictBool = Field(..., description="Whether this field should execute a dynamic request to fetch choices to populate a dropdown. When true, `choices` is ignored.")
     allow_null: StrictBool = Field(..., alias="allowNull", description="Whether this field allows null values.")
-    __properties = ["id", "sortOrder", "fieldKey", "label", "type", "description", "placeholder", "defaultValue", "required", "multiple", "choices", "dynamic", "allowNull"]
+    hidden: Optional[StrictBool] = Field(None, description="Whether the action field should be hidden or not.")
+    __properties = ["id", "sortOrder", "fieldKey", "label", "type", "description", "placeholder", "defaultValue", "required", "multiple", "choices", "dynamic", "allowNull", "hidden"]
 
     @validator('type')
     def type_validate_enum(cls, value):
@@ -106,7 +107,8 @@ def from_dict(cls, obj: dict) -> DestinationMetadataActionFieldV1:
             "multiple": obj.get("multiple"),
             "choices": obj.get("choices"),
             "dynamic": obj.get("dynamic"),
-            "allow_null": obj.get("allowNull")
+            "allow_null": obj.get("allowNull"),
+            "hidden": obj.get("hidden")
         })
         return _obj
 
diff --git a/segment_public_api/models/destination_metadata_action_v1.py b/segment_public_api/models/destination_metadata_action_v1.py
index b48b35fd1..1caae4226 100644
--- a/segment_public_api/models/destination_metadata_action_v1.py
+++ b/segment_public_api/models/destination_metadata_action_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_metadata_component_v1.py b/segment_public_api/models/destination_metadata_component_v1.py
index 512b545c8..502aa3c5c 100644
--- a/segment_public_api/models/destination_metadata_component_v1.py
+++ b/segment_public_api/models/destination_metadata_component_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_metadata_features_v1.py b/segment_public_api/models/destination_metadata_features_v1.py
index 95f42cefc..99cecdee3 100644
--- a/segment_public_api/models/destination_metadata_features_v1.py
+++ b/segment_public_api/models/destination_metadata_features_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_metadata_methods_v1.py b/segment_public_api/models/destination_metadata_methods_v1.py
index 9c740090d..b56f27852 100644
--- a/segment_public_api/models/destination_metadata_methods_v1.py
+++ b/segment_public_api/models/destination_metadata_methods_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_metadata_platforms_v1.py b/segment_public_api/models/destination_metadata_platforms_v1.py
index 7c4b852a1..25ac5ce7f 100644
--- a/segment_public_api/models/destination_metadata_platforms_v1.py
+++ b/segment_public_api/models/destination_metadata_platforms_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -29,7 +29,10 @@ class DestinationMetadataPlatformsV1(BaseModel):
     browser: Optional[StrictBool] = Field(None, description="Whether this Destination supports browser events.")
     server: Optional[StrictBool] = Field(None, description="Whether this Destination supports server events.")
     mobile: Optional[StrictBool] = Field(None, description="Whether this Destination supports mobile events.")
-    __properties = ["browser", "server", "mobile"]
+    warehouse: Optional[StrictBool] = Field(None, description="Whether this Destination supports Warehouse events.")
+    cloud_app_object: Optional[StrictBool] = Field(None, alias="cloudAppObject", description="Whether this Destination supports cloud app object events.")
+    linked_audiences: Optional[StrictBool] = Field(None, alias="linkedAudiences", description="Whether this Destination supports linked audiences.")
+    __properties = ["browser", "server", "mobile", "warehouse", "cloudAppObject", "linkedAudiences"]
 
     class Config:
         """Pydantic configuration"""
@@ -69,7 +72,10 @@ def from_dict(cls, obj: dict) -> DestinationMetadataPlatformsV1:
         _obj = DestinationMetadataPlatformsV1.parse_obj({
             "browser": obj.get("browser"),
             "server": obj.get("server"),
-            "mobile": obj.get("mobile")
+            "mobile": obj.get("mobile"),
+            "warehouse": obj.get("warehouse"),
+            "cloud_app_object": obj.get("cloudAppObject"),
+            "linked_audiences": obj.get("linkedAudiences")
         })
         return _obj
 
diff --git a/segment_public_api/models/destination_metadata_subscription_preset_v1.py b/segment_public_api/models/destination_metadata_subscription_preset_v1.py
index 5c0b184f1..96e6cc9b4 100644
--- a/segment_public_api/models/destination_metadata_subscription_preset_v1.py
+++ b/segment_public_api/models/destination_metadata_subscription_preset_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_metadata_v1.py b/segment_public_api/models/destination_metadata_v1.py
index 76faeba15..7e7e5f8db 100644
--- a/segment_public_api/models/destination_metadata_v1.py
+++ b/segment_public_api/models/destination_metadata_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -55,7 +55,8 @@ class DestinationMetadataV1(BaseModel):
     partner_owned: Optional[StrictBool] = Field(None, alias="partnerOwned", description="Partner Owned flag.")
     supported_regions: Optional[conlist(StrictStr)] = Field(None, alias="supportedRegions", description="A list of supported regions for this Destination.")
     region_endpoints: Optional[conlist(StrictStr)] = Field(None, alias="regionEndpoints", description="The list of regional endpoints for this Destination.")
-    __properties = ["id", "name", "description", "slug", "logos", "options", "status", "previousNames", "categories", "website", "components", "supportedFeatures", "supportedMethods", "supportedPlatforms", "actions", "presets", "contacts", "partnerOwned", "supportedRegions", "regionEndpoints"]
+    multi_instance_supported_version: Optional[StrictStr] = Field(None, alias="multiInstanceSupportedVersion", description="This Destination's support for multiple instance types.")
+    __properties = ["id", "name", "description", "slug", "logos", "options", "status", "previousNames", "categories", "website", "components", "supportedFeatures", "supportedMethods", "supportedPlatforms", "actions", "presets", "contacts", "partnerOwned", "supportedRegions", "regionEndpoints", "multiInstanceSupportedVersion"]
 
     @validator('status')
     def status_validate_enum(cls, value):
@@ -166,7 +167,8 @@ def from_dict(cls, obj: dict) -> DestinationMetadataV1:
             "contacts": [Contact.from_dict(_item) for _item in obj.get("contacts")] if obj.get("contacts") is not None else None,
             "partner_owned": obj.get("partnerOwned"),
             "supported_regions": obj.get("supportedRegions"),
-            "region_endpoints": obj.get("regionEndpoints")
+            "region_endpoints": obj.get("regionEndpoints"),
+            "multi_instance_supported_version": obj.get("multiInstanceSupportedVersion")
         })
         return _obj
 
diff --git a/segment_public_api/models/destination_status_v1.py b/segment_public_api/models/destination_status_v1.py
index 4887474fa..1ca9c6755 100644
--- a/segment_public_api/models/destination_status_v1.py
+++ b/segment_public_api/models/destination_status_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/destination_subscription.py b/segment_public_api/models/destination_subscription.py
index 4d2014bf1..b5da8702c 100644
--- a/segment_public_api/models/destination_subscription.py
+++ b/segment_public_api/models/destination_subscription.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,6 +21,7 @@
 
 from typing import Any, Dict, Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.reverse_etl_schedule_definition import ReverseEtlScheduleDefinition
 
 class DestinationSubscription(BaseModel):
     """
@@ -35,7 +36,8 @@ class DestinationSubscription(BaseModel):
     settings: Dict[str, Any] = Field(..., description="Represents settings used to configure an action subscription.")
     trigger: StrictStr = Field(..., description="FQL string that describes what events should trigger a Destination action.")
     model_id: Optional[StrictStr] = Field(None, alias="modelId", description="The unique identifier for the linked ReverseETLModel, if this part of a Reverse ETL connection.")
-    __properties = ["id", "name", "actionId", "actionSlug", "destinationId", "enabled", "settings", "trigger", "modelId"]
+    reverse_etl_schedule: Optional[ReverseEtlScheduleDefinition] = Field(None, alias="reverseETLSchedule")
+    __properties = ["id", "name", "actionId", "actionSlug", "destinationId", "enabled", "settings", "trigger", "modelId", "reverseETLSchedule"]
 
     class Config:
         """Pydantic configuration"""
@@ -61,6 +63,9 @@ def to_dict(self):
                           exclude={
                           },
                           exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of reverse_etl_schedule
+        if self.reverse_etl_schedule:
+            _dict['reverseETLSchedule'] = self.reverse_etl_schedule.to_dict()
         return _dict
 
     @classmethod
@@ -81,7 +86,8 @@ def from_dict(cls, obj: dict) -> DestinationSubscription:
             "enabled": obj.get("enabled"),
             "settings": obj.get("settings"),
             "trigger": obj.get("trigger"),
-            "model_id": obj.get("modelId")
+            "model_id": obj.get("modelId"),
+            "reverse_etl_schedule": ReverseEtlScheduleDefinition.from_dict(obj.get("reverseETLSchedule")) if obj.get("reverseETLSchedule") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/destination_subscription_update_input.py b/segment_public_api/models/destination_subscription_update_input.py
index 1dbb82738..6acf1e699 100644
--- a/segment_public_api/models/destination_subscription_update_input.py
+++ b/segment_public_api/models/destination_subscription_update_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,6 +21,7 @@
 
 from typing import Any, Dict, Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.reverse_etl_schedule_definition import ReverseEtlScheduleDefinition
 
 class DestinationSubscriptionUpdateInput(BaseModel):
     """
@@ -30,7 +31,9 @@ class DestinationSubscriptionUpdateInput(BaseModel):
     trigger: Optional[StrictStr] = Field(None, description="The fql statement.")
     enabled: Optional[StrictBool] = Field(None, description="Is the subscription enabled.")
     settings: Optional[Dict[str, Any]] = Field(None, description="Represents settings used to configure an action subscription.")
-    __properties = ["name", "trigger", "enabled", "settings"]
+    reverse_etl_model_id: Optional[StrictStr] = Field(None, alias="reverseETLModelId", description="(Reverse ETL only) The reverse ETL model to attach this subscription to.")
+    reverse_etl_schedule: Optional[ReverseEtlScheduleDefinition] = Field(None, alias="reverseETLSchedule")
+    __properties = ["name", "trigger", "enabled", "settings", "reverseETLModelId", "reverseETLSchedule"]
 
     class Config:
         """Pydantic configuration"""
@@ -56,6 +59,9 @@ def to_dict(self):
                           exclude={
                           },
                           exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of reverse_etl_schedule
+        if self.reverse_etl_schedule:
+            _dict['reverseETLSchedule'] = self.reverse_etl_schedule.to_dict()
         return _dict
 
     @classmethod
@@ -71,7 +77,9 @@ def from_dict(cls, obj: dict) -> DestinationSubscriptionUpdateInput:
             "name": obj.get("name"),
             "trigger": obj.get("trigger"),
             "enabled": obj.get("enabled"),
-            "settings": obj.get("settings")
+            "settings": obj.get("settings"),
+            "reverse_etl_model_id": obj.get("reverseETLModelId"),
+            "reverse_etl_schedule": ReverseEtlScheduleDefinition.from_dict(obj.get("reverseETLSchedule")) if obj.get("reverseETLSchedule") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/destination_v1.py b/segment_public_api/models/destination_v1.py
index 27b22ce0d..fddda40c6 100644
--- a/segment_public_api/models/destination_v1.py
+++ b/segment_public_api/models/destination_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/disable_edge_functions200_response.py b/segment_public_api/models/disable_edge_functions200_response.py
index 2bcfd58ad..fc27af9ab 100644
--- a/segment_public_api/models/disable_edge_functions200_response.py
+++ b/segment_public_api/models/disable_edge_functions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/disable_edge_functions_alpha_output.py b/segment_public_api/models/disable_edge_functions_alpha_output.py
index 3d2023e47..dd6126bef 100644
--- a/segment_public_api/models/disable_edge_functions_alpha_output.py
+++ b/segment_public_api/models/disable_edge_functions_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/download.py b/segment_public_api/models/download.py
new file mode 100644
index 000000000..6f638a919
--- /dev/null
+++ b/segment_public_api/models/download.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List
+from pydantic import BaseModel, Field, StrictStr, conlist
+
+class Download(BaseModel):
+    """
+    Download
+    """
+    urls: conlist(StrictStr) = Field(..., description="List of presigned URLs from S3.")
+    __properties = ["urls"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Download:
+        """Create an instance of Download from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Download:
+        """Create an instance of Download from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return Download.parse_obj(obj)
+
+        _obj = Download.parse_obj({
+            "urls": obj.get("urls")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/echo200_response.py b/segment_public_api/models/echo200_response.py
index 9454d3c38..7acbc7336 100644
--- a/segment_public_api/models/echo200_response.py
+++ b/segment_public_api/models/echo200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/echo200_response1.py b/segment_public_api/models/echo200_response1.py
index cb54bd625..f752c134f 100644
--- a/segment_public_api/models/echo200_response1.py
+++ b/segment_public_api/models/echo200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/echo_alpha_output.py b/segment_public_api/models/echo_alpha_output.py
index dd76884ae..555d0a9e3 100644
--- a/segment_public_api/models/echo_alpha_output.py
+++ b/segment_public_api/models/echo_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/echo_v1_output.py b/segment_public_api/models/echo_v1_output.py
index 24f85f9c7..3f5d15cb1 100644
--- a/segment_public_api/models/echo_v1_output.py
+++ b/segment_public_api/models/echo_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/edge_functions_alpha.py b/segment_public_api/models/edge_functions_alpha.py
index 28c04dd18..22707d1b4 100644
--- a/segment_public_api/models/edge_functions_alpha.py
+++ b/segment_public_api/models/edge_functions_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/entity_details.py b/segment_public_api/models/entity_details.py
new file mode 100644
index 000000000..8a33b189d
--- /dev/null
+++ b/segment_public_api/models/entity_details.py
@@ -0,0 +1,80 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Any, Dict, Optional
+from pydantic import BaseModel, Field, StrictStr
+
+class EntityDetails(BaseModel):
+    """
+    Entity details.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The entity primary key value.")
+    id_property: StrictStr = Field(..., alias="idProperty", description="The entity primary key column name.")
+    relationship_slug: StrictStr = Field(..., alias="relationshipSlug", description="The entity relationship slug.")
+    properties: Optional[Dict[str, Any]] = Field(None, description="Entity properties.")
+    entities: Optional[Dict[str, Any]] = Field(None, description="Related entities that are one level deeper will only be returned if those entities are referenced in the audience definition.")
+    __properties = ["id", "idProperty", "relationshipSlug", "properties", "entities"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> EntityDetails:
+        """Create an instance of EntityDetails from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> EntityDetails:
+        """Create an instance of EntityDetails from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return EntityDetails.parse_obj(obj)
+
+        _obj = EntityDetails.parse_obj({
+            "id": obj.get("id"),
+            "id_property": obj.get("idProperty"),
+            "relationship_slug": obj.get("relationshipSlug"),
+            "properties": obj.get("properties"),
+            "entities": obj.get("entities")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/event_source_v1.py b/segment_public_api/models/event_source_v1.py
index 6f228f062..d3b5ea4f8 100644
--- a/segment_public_api/models/event_source_v1.py
+++ b/segment_public_api/models/event_source_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/filter.py b/segment_public_api/models/filter.py
new file mode 100644
index 000000000..096449ccd
--- /dev/null
+++ b/segment_public_api/models/filter.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class Filter(BaseModel):
+    """
+    Filter output.  # noqa: E501
+    """
+    id: StrictStr = Field(..., description="The newly created filter id.")
+    workspace_id: StrictStr = Field(..., alias="workspaceId", description="The Workspace id to create the filter.")
+    integration_id: StrictStr = Field(..., alias="integrationId", description="The Integration id of the resource.")
+    enabled: Optional[StrictBool] = Field(None, description="Whether the filter is enabled.")
+    name: Optional[StrictStr] = Field(None, description="The name of the filter.")
+    description: Optional[StrictStr] = Field(None, description="The description of the filter.")
+    var_if: Optional[StrictStr] = Field(None, alias="if", description="The \"if\" statement for a filter.")
+    drop: Optional[StrictBool] = Field(None, description="Whether the event is dropped.")
+    created_at: StrictStr = Field(..., alias="createdAt", description="The timestamp of this filter's creation.")
+    updated_at: StrictStr = Field(..., alias="updatedAt", description="The timestamp of this filter's last change.")
+    __properties = ["id", "workspaceId", "integrationId", "enabled", "name", "description", "if", "drop", "createdAt", "updatedAt"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Filter:
+        """Create an instance of Filter from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Filter:
+        """Create an instance of Filter from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return Filter.parse_obj(obj)
+
+        _obj = Filter.parse_obj({
+            "id": obj.get("id"),
+            "workspace_id": obj.get("workspaceId"),
+            "integration_id": obj.get("integrationId"),
+            "enabled": obj.get("enabled"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "var_if": obj.get("if"),
+            "drop": obj.get("drop"),
+            "created_at": obj.get("createdAt"),
+            "updated_at": obj.get("updatedAt")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/fql_defined_property_v1.py b/segment_public_api/models/fql_defined_property_v1.py
index bd25c291c..3cf2c7f79 100644
--- a/segment_public_api/models/fql_defined_property_v1.py
+++ b/segment_public_api/models/fql_defined_property_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/function.py b/segment_public_api/models/function.py
deleted file mode 100644
index 971da6905..000000000
--- a/segment_public_api/models/function.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# coding: utf-8
-
-"""
-    Segment Public API
-
-    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
-
-    The version of the OpenAPI document: 37.2.0
-    Contact: friends@segment.com
-    Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-    Do not edit the class manually.
-"""  # noqa: E501
-
-
-from __future__ import annotations
-import pprint
-import re  # noqa: F401
-import json
-
-
-from typing import List, Optional, Union
-from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist, validator
-from segment_public_api.models.function_setting_v1 import FunctionSettingV1
-
-class Function(BaseModel):
-    """
-    A Function object.  # noqa: E501
-    """
-    id: Optional[StrictStr] = Field(None, description="An identifier for this Function.")
-    resource_type: Optional[StrictStr] = Field(None, alias="resourceType", description="The Function type.  Config API note: equal to `type`.")
-    created_at: Optional[StrictStr] = Field(None, alias="createdAt", description="The time this Function was created.")
-    created_by: Optional[StrictStr] = Field(None, alias="createdBy", description="The id of the user who created this Function.")
-    code: Optional[StrictStr] = Field(None, description="The Function code.")
-    deployed_at: Optional[StrictStr] = Field(None, alias="deployedAt", description="The time of this Function's last deployment.")
-    settings: Optional[conlist(FunctionSettingV1)] = Field(None, description="The list of settings for this Function.")
-    display_name: Optional[StrictStr] = Field(None, alias="displayName", description="A display name for this Function.")
-    description: Optional[StrictStr] = Field(None, description="A description for this Function.")
-    logo_url: Optional[StrictStr] = Field(None, alias="logoUrl", description="The URL of the logo for this Function.")
-    preview_webhook_url: Optional[StrictStr] = Field(None, alias="previewWebhookUrl", description="The preview webhook URL for this Function.")
-    batch_max_count: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="batchMaxCount", description="The max count of the batch for this Function.")
-    catalog_id: Optional[StrictStr] = Field(None, alias="catalogId", description="The catalog id of this Function.")
-    is_latest_version: Optional[StrictBool] = Field(None, alias="isLatestVersion", description="Whether the deployment of this Function is the latest version.")
-    __properties = ["id", "resourceType", "createdAt", "createdBy", "code", "deployedAt", "settings", "displayName", "description", "logoUrl", "previewWebhookUrl", "batchMaxCount", "catalogId", "isLatestVersion"]
-
-    @validator('resource_type')
-    def resource_type_validate_enum(cls, value):
-        """Validates the enum"""
-        if value is None:
-            return value
-
-        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE'):
-            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE')")
-        return value
-
-    class Config:
-        """Pydantic configuration"""
-        allow_population_by_field_name = True
-        validate_assignment = True
-
-    def to_str(self) -> str:
-        """Returns the string representation of the model using alias"""
-        return pprint.pformat(self.dict(by_alias=True))
-
-    def to_json(self) -> str:
-        """Returns the JSON representation of the model using alias"""
-        return json.dumps(self.to_dict())
-
-    @classmethod
-    def from_json(cls, json_str: str) -> Function:
-        """Create an instance of Function from a JSON string"""
-        return cls.from_dict(json.loads(json_str))
-
-    def to_dict(self):
-        """Returns the dictionary representation of the model using alias"""
-        _dict = self.dict(by_alias=True,
-                          exclude={
-                          },
-                          exclude_none=True)
-        # override the default output from pydantic by calling `to_dict()` of each item in settings (list)
-        _items = []
-        if self.settings:
-            for _item in self.settings:
-                if _item:
-                    _items.append(_item.to_dict())
-            _dict['settings'] = _items
-        # set to None if deployed_at (nullable) is None
-        # and __fields_set__ contains the field
-        if self.deployed_at is None and "deployed_at" in self.__fields_set__:
-            _dict['deployedAt'] = None
-
-        return _dict
-
-    @classmethod
-    def from_dict(cls, obj: dict) -> Function:
-        """Create an instance of Function from a dict"""
-        if obj is None:
-            return None
-
-        if not isinstance(obj, dict):
-            return Function.parse_obj(obj)
-
-        _obj = Function.parse_obj({
-            "id": obj.get("id"),
-            "resource_type": obj.get("resourceType"),
-            "created_at": obj.get("createdAt"),
-            "created_by": obj.get("createdBy"),
-            "code": obj.get("code"),
-            "deployed_at": obj.get("deployedAt"),
-            "settings": [FunctionSettingV1.from_dict(_item) for _item in obj.get("settings")] if obj.get("settings") is not None else None,
-            "display_name": obj.get("displayName"),
-            "description": obj.get("description"),
-            "logo_url": obj.get("logoUrl"),
-            "preview_webhook_url": obj.get("previewWebhookUrl"),
-            "batch_max_count": obj.get("batchMaxCount"),
-            "catalog_id": obj.get("catalogId"),
-            "is_latest_version": obj.get("isLatestVersion")
-        })
-        return _obj
-
-
diff --git a/segment_public_api/models/function_deployment.py b/segment_public_api/models/function_deployment.py
index 62a795b8d..d09fdd3a0 100644
--- a/segment_public_api/models/function_deployment.py
+++ b/segment_public_api/models/function_deployment.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/function_setting_v1.py b/segment_public_api/models/function_setting_v1.py
index 1c5138b9c..53617a166 100644
--- a/segment_public_api/models/function_setting_v1.py
+++ b/segment_public_api/models/function_setting_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/function_v1.py b/segment_public_api/models/function_v1.py
index 6d49e5a16..2bd75b4c5 100644
--- a/segment_public_api/models/function_v1.py
+++ b/segment_public_api/models/function_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -49,8 +49,8 @@ def resource_type_validate_enum(cls, value):
         if value is None:
             return value
 
-        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE'):
-            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE')")
+        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE'):
+            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE')")
         return value
 
     class Config:
diff --git a/segment_public_api/models/generate_upload_url_for_edge_functions200_response.py b/segment_public_api/models/generate_upload_url_for_edge_functions200_response.py
index 8033d1ee5..7810b4d3e 100644
--- a/segment_public_api/models/generate_upload_url_for_edge_functions200_response.py
+++ b/segment_public_api/models/generate_upload_url_for_edge_functions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/generate_upload_url_for_edge_functions_alpha_output.py b/segment_public_api/models/generate_upload_url_for_edge_functions_alpha_output.py
index 7640bf351..e0244cffc 100644
--- a/segment_public_api/models/generate_upload_url_for_edge_functions_alpha_output.py
+++ b/segment_public_api/models/generate_upload_url_for_edge_functions_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_activation_from_audience200_response.py b/segment_public_api/models/get_activation_from_audience200_response.py
new file mode 100644
index 000000000..9de376741
--- /dev/null
+++ b/segment_public_api/models/get_activation_from_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_activation_from_audience_output import GetActivationFromAudienceOutput
+
+class GetActivationFromAudience200Response(BaseModel):
+    """
+    GetActivationFromAudience200Response
+    """
+    data: Optional[GetActivationFromAudienceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetActivationFromAudience200Response:
+        """Create an instance of GetActivationFromAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetActivationFromAudience200Response:
+        """Create an instance of GetActivationFromAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetActivationFromAudience200Response.parse_obj(obj)
+
+        _obj = GetActivationFromAudience200Response.parse_obj({
+            "data": GetActivationFromAudienceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_activation_from_audience_output.py b/segment_public_api/models/get_activation_from_audience_output.py
new file mode 100644
index 000000000..c5e85dcd5
--- /dev/null
+++ b/segment_public_api/models/get_activation_from_audience_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+
+class GetActivationFromAudienceOutput(BaseModel):
+    """
+    Output for getting an activation from space and audience.  # noqa: E501
+    """
+    activation: ActivationSummaryOutput = Field(...)
+    __properties = ["activation"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetActivationFromAudienceOutput:
+        """Create an instance of GetActivationFromAudienceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of activation
+        if self.activation:
+            _dict['activation'] = self.activation.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetActivationFromAudienceOutput:
+        """Create an instance of GetActivationFromAudienceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetActivationFromAudienceOutput.parse_obj(obj)
+
+        _obj = GetActivationFromAudienceOutput.parse_obj({
+            "activation": ActivationSummaryOutput.from_dict(obj.get("activation")) if obj.get("activation") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_advanced_sync_schedule_from_warehouse200_response.py b/segment_public_api/models/get_advanced_sync_schedule_from_warehouse200_response.py
index 0f41cdf76..83c27d25d 100644
--- a/segment_public_api/models/get_advanced_sync_schedule_from_warehouse200_response.py
+++ b/segment_public_api/models/get_advanced_sync_schedule_from_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_advanced_sync_schedule_from_warehouse_v1_output.py b/segment_public_api/models/get_advanced_sync_schedule_from_warehouse_v1_output.py
index c8209a4bd..b330dfbf9 100644
--- a/segment_public_api/models/get_advanced_sync_schedule_from_warehouse_v1_output.py
+++ b/segment_public_api/models/get_advanced_sync_schedule_from_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_audience200_response.py b/segment_public_api/models/get_audience200_response.py
index cf0a511e8..122a1a69e 100644
--- a/segment_public_api/models/get_audience200_response.py
+++ b/segment_public_api/models/get_audience200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,13 +21,13 @@
 
 from typing import Optional
 from pydantic import BaseModel
-from segment_public_api.models.get_audience_alpha_output import GetAudienceAlphaOutput
+from segment_public_api.models.get_audience_beta_output import GetAudienceBetaOutput
 
 class GetAudience200Response(BaseModel):
     """
     GetAudience200Response
     """
-    data: Optional[GetAudienceAlphaOutput] = None
+    data: Optional[GetAudienceBetaOutput] = None
     __properties = ["data"]
 
     class Config:
@@ -69,7 +69,7 @@ def from_dict(cls, obj: dict) -> GetAudience200Response:
             return GetAudience200Response.parse_obj(obj)
 
         _obj = GetAudience200Response.parse_obj({
-            "data": GetAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+            "data": GetAudienceBetaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/get_audience200_response1.py b/segment_public_api/models/get_audience200_response1.py
new file mode 100644
index 000000000..8efb4ec82
--- /dev/null
+++ b/segment_public_api/models/get_audience200_response1.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_audience_alpha_output import GetAudienceAlphaOutput
+
+class GetAudience200Response1(BaseModel):
+    """
+    GetAudience200Response1
+    """
+    data: Optional[GetAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudience200Response1:
+        """Create an instance of GetAudience200Response1 from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudience200Response1:
+        """Create an instance of GetAudience200Response1 from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudience200Response1.parse_obj(obj)
+
+        _obj = GetAudience200Response1.parse_obj({
+            "data": GetAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_audience_alpha_output.py b/segment_public_api/models/get_audience_alpha_output.py
index 8cedd12df..979fa8a33 100644
--- a/segment_public_api/models/get_audience_alpha_output.py
+++ b/segment_public_api/models/get_audience_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,13 +21,13 @@
 
 
 from pydantic import BaseModel, Field
-from segment_public_api.models.audience_summary import AudienceSummary
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
 
 class GetAudienceAlphaOutput(BaseModel):
     """
-    Audience output for update.  # noqa: E501
+    Audience output for get.  # noqa: E501
     """
-    audience: AudienceSummary = Field(...)
+    audience: AudienceSummaryWithAudienceTypeAndLookback = Field(...)
     __properties = ["audience"]
 
     class Config:
@@ -69,7 +69,7 @@ def from_dict(cls, obj: dict) -> GetAudienceAlphaOutput:
             return GetAudienceAlphaOutput.parse_obj(obj)
 
         _obj = GetAudienceAlphaOutput.parse_obj({
-            "audience": AudienceSummary.from_dict(obj.get("audience")) if obj.get("audience") is not None else None
+            "audience": AudienceSummaryWithAudienceTypeAndLookback.from_dict(obj.get("audience")) if obj.get("audience") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/get_audience_beta_output.py b/segment_public_api/models/get_audience_beta_output.py
new file mode 100644
index 000000000..111f9a4f8
--- /dev/null
+++ b/segment_public_api/models/get_audience_beta_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
+
+class GetAudienceBetaOutput(BaseModel):
+    """
+    Audience output for get.  # noqa: E501
+    """
+    audience: AudienceSummaryWithAudienceTypeAndLookback = Field(...)
+    __properties = ["audience"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudienceBetaOutput:
+        """Create an instance of GetAudienceBetaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of audience
+        if self.audience:
+            _dict['audience'] = self.audience.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudienceBetaOutput:
+        """Create an instance of GetAudienceBetaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudienceBetaOutput.parse_obj(obj)
+
+        _obj = GetAudienceBetaOutput.parse_obj({
+            "audience": AudienceSummaryWithAudienceTypeAndLookback.from_dict(obj.get("audience")) if obj.get("audience") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_audience_preview200_response.py b/segment_public_api/models/get_audience_preview200_response.py
new file mode 100644
index 000000000..a1af01017
--- /dev/null
+++ b/segment_public_api/models/get_audience_preview200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_audience_preview_alpha_output import GetAudiencePreviewAlphaOutput
+
+class GetAudiencePreview200Response(BaseModel):
+    """
+    GetAudiencePreview200Response
+    """
+    data: Optional[GetAudiencePreviewAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudiencePreview200Response:
+        """Create an instance of GetAudiencePreview200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudiencePreview200Response:
+        """Create an instance of GetAudiencePreview200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudiencePreview200Response.parse_obj(obj)
+
+        _obj = GetAudiencePreview200Response.parse_obj({
+            "data": GetAudiencePreviewAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_audience_preview_alpha_output.py b/segment_public_api/models/get_audience_preview_alpha_output.py
new file mode 100644
index 000000000..8bf3029a8
--- /dev/null
+++ b/segment_public_api/models/get_audience_preview_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.audience_preview import AudiencePreview
+
+class GetAudiencePreviewAlphaOutput(BaseModel):
+    """
+    Output when reading an audience preview.  # noqa: E501
+    """
+    audience_preview: AudiencePreview = Field(..., alias="audiencePreview")
+    __properties = ["audiencePreview"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudiencePreviewAlphaOutput:
+        """Create an instance of GetAudiencePreviewAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of audience_preview
+        if self.audience_preview:
+            _dict['audiencePreview'] = self.audience_preview.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudiencePreviewAlphaOutput:
+        """Create an instance of GetAudiencePreviewAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudiencePreviewAlphaOutput.parse_obj(obj)
+
+        _obj = GetAudiencePreviewAlphaOutput.parse_obj({
+            "audience_preview": AudiencePreview.from_dict(obj.get("audiencePreview")) if obj.get("audiencePreview") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_audience_schedule_from_space_and_audience200_response.py b/segment_public_api/models/get_audience_schedule_from_space_and_audience200_response.py
new file mode 100644
index 000000000..7fafa9994
--- /dev/null
+++ b/segment_public_api/models/get_audience_schedule_from_space_and_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_audience_schedule_from_space_and_audience_alpha_output import GetAudienceScheduleFromSpaceAndAudienceAlphaOutput
+
+class GetAudienceScheduleFromSpaceAndAudience200Response(BaseModel):
+    """
+    GetAudienceScheduleFromSpaceAndAudience200Response
+    """
+    data: Optional[GetAudienceScheduleFromSpaceAndAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudienceScheduleFromSpaceAndAudience200Response:
+        """Create an instance of GetAudienceScheduleFromSpaceAndAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudienceScheduleFromSpaceAndAudience200Response:
+        """Create an instance of GetAudienceScheduleFromSpaceAndAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudienceScheduleFromSpaceAndAudience200Response.parse_obj(obj)
+
+        _obj = GetAudienceScheduleFromSpaceAndAudience200Response.parse_obj({
+            "data": GetAudienceScheduleFromSpaceAndAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_audience_schedule_from_space_and_audience_alpha_output.py b/segment_public_api/models/get_audience_schedule_from_space_and_audience_alpha_output.py
new file mode 100644
index 000000000..d4392ddf2
--- /dev/null
+++ b/segment_public_api/models/get_audience_schedule_from_space_and_audience_alpha_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.audience_schedule import AudienceSchedule
+
+class GetAudienceScheduleFromSpaceAndAudienceAlphaOutput(BaseModel):
+    """
+    Output for get audience schedule.  # noqa: E501
+    """
+    audience_schedule: AudienceSchedule = Field(..., alias="audienceSchedule")
+    __properties = ["audienceSchedule"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetAudienceScheduleFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of GetAudienceScheduleFromSpaceAndAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of audience_schedule
+        if self.audience_schedule:
+            _dict['audienceSchedule'] = self.audience_schedule.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetAudienceScheduleFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of GetAudienceScheduleFromSpaceAndAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetAudienceScheduleFromSpaceAndAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = GetAudienceScheduleFromSpaceAndAudienceAlphaOutput.parse_obj({
+            "audience_schedule": AudienceSchedule.from_dict(obj.get("audienceSchedule")) if obj.get("audienceSchedule") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_computed_trait200_response.py b/segment_public_api/models/get_computed_trait200_response.py
index 733cfb558..4bd2803e6 100644
--- a/segment_public_api/models/get_computed_trait200_response.py
+++ b/segment_public_api/models/get_computed_trait200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_computed_trait_alpha_output.py b/segment_public_api/models/get_computed_trait_alpha_output.py
index f49e87b02..e38cdef3a 100644
--- a/segment_public_api/models/get_computed_trait_alpha_output.py
+++ b/segment_public_api/models/get_computed_trait_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_connection_state_from_warehouse200_response.py b/segment_public_api/models/get_connection_state_from_warehouse200_response.py
index 5c7049b43..c7b0fd937 100644
--- a/segment_public_api/models/get_connection_state_from_warehouse200_response.py
+++ b/segment_public_api/models/get_connection_state_from_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_connection_state_from_warehouse_v1_output.py b/segment_public_api/models/get_connection_state_from_warehouse_v1_output.py
index 501d07156..62701f72d 100644
--- a/segment_public_api/models/get_connection_state_from_warehouse_v1_output.py
+++ b/segment_public_api/models/get_connection_state_from_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_per_source_api_calls_usage200_response.py b/segment_public_api/models/get_daily_per_source_api_calls_usage200_response.py
index 487de72e4..d0ee2217a 100644
--- a/segment_public_api/models/get_daily_per_source_api_calls_usage200_response.py
+++ b/segment_public_api/models/get_daily_per_source_api_calls_usage200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_per_source_api_calls_usage_v1_output.py b/segment_public_api/models/get_daily_per_source_api_calls_usage_v1_output.py
index e64b752f0..9fc148281 100644
--- a/segment_public_api/models/get_daily_per_source_api_calls_usage_v1_output.py
+++ b/segment_public_api/models/get_daily_per_source_api_calls_usage_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_per_source_mtu_usage200_response.py b/segment_public_api/models/get_daily_per_source_mtu_usage200_response.py
index efdf84aa7..bb9dbf152 100644
--- a/segment_public_api/models/get_daily_per_source_mtu_usage200_response.py
+++ b/segment_public_api/models/get_daily_per_source_mtu_usage200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_per_source_mtu_usage_v1_output.py b/segment_public_api/models/get_daily_per_source_mtu_usage_v1_output.py
index 71823eae1..ae536019a 100644
--- a/segment_public_api/models/get_daily_per_source_mtu_usage_v1_output.py
+++ b/segment_public_api/models/get_daily_per_source_mtu_usage_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_workspace_api_calls_usage200_response.py b/segment_public_api/models/get_daily_workspace_api_calls_usage200_response.py
index fd99d970e..8d3cb7359 100644
--- a/segment_public_api/models/get_daily_workspace_api_calls_usage200_response.py
+++ b/segment_public_api/models/get_daily_workspace_api_calls_usage200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_workspace_api_calls_usage_v1_output.py b/segment_public_api/models/get_daily_workspace_api_calls_usage_v1_output.py
index 31793027b..1f0631d82 100644
--- a/segment_public_api/models/get_daily_workspace_api_calls_usage_v1_output.py
+++ b/segment_public_api/models/get_daily_workspace_api_calls_usage_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_workspace_mtu_usage200_response.py b/segment_public_api/models/get_daily_workspace_mtu_usage200_response.py
index cc79ca8f9..b88bf0b9e 100644
--- a/segment_public_api/models/get_daily_workspace_mtu_usage200_response.py
+++ b/segment_public_api/models/get_daily_workspace_mtu_usage200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_daily_workspace_mtu_usage_v1_output.py b/segment_public_api/models/get_daily_workspace_mtu_usage_v1_output.py
index f6f9c106b..6ddfb16dc 100644
--- a/segment_public_api/models/get_daily_workspace_mtu_usage_v1_output.py
+++ b/segment_public_api/models/get_daily_workspace_mtu_usage_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_delivery_overview_metrics_beta_output.py b/segment_public_api/models/get_delivery_overview_metrics_beta_output.py
new file mode 100644
index 000000000..0e21c7eff
--- /dev/null
+++ b/segment_public_api/models/get_delivery_overview_metrics_beta_output.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, conlist
+from segment_public_api.models.delivery_overview_metrics_dataset import DeliveryOverviewMetricsDataset
+from segment_public_api.models.pagination_output import PaginationOutput
+
+class GetDeliveryOverviewMetricsBetaOutput(BaseModel):
+    """
+    Output of the Delivery Overview public API endpoints.  # noqa: E501
+    """
+    total: Union[StrictFloat, StrictInt] = Field(..., description="The total number of events for the returned dataset.")
+    dataset: conlist(DeliveryOverviewMetricsDataset) = Field(..., description="Represents the list of series broken down by the dimensions and time frame requested.")
+    pagination: PaginationOutput = Field(...)
+    __properties = ["total", "dataset", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetDeliveryOverviewMetricsBetaOutput:
+        """Create an instance of GetDeliveryOverviewMetricsBetaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in dataset (list)
+        _items = []
+        if self.dataset:
+            for _item in self.dataset:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['dataset'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetDeliveryOverviewMetricsBetaOutput:
+        """Create an instance of GetDeliveryOverviewMetricsBetaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetDeliveryOverviewMetricsBetaOutput.parse_obj(obj)
+
+        _obj = GetDeliveryOverviewMetricsBetaOutput.parse_obj({
+            "total": obj.get("total"),
+            "dataset": [DeliveryOverviewMetricsDataset.from_dict(_item) for _item in obj.get("dataset")] if obj.get("dataset") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_destination200_response.py b/segment_public_api/models/get_destination200_response.py
index d5b0a8a66..70ae1578e 100644
--- a/segment_public_api/models/get_destination200_response.py
+++ b/segment_public_api/models/get_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_destination_metadata200_response.py b/segment_public_api/models/get_destination_metadata200_response.py
index b5274f485..01615c5a9 100644
--- a/segment_public_api/models/get_destination_metadata200_response.py
+++ b/segment_public_api/models/get_destination_metadata200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_destination_metadata_v1_output.py b/segment_public_api/models/get_destination_metadata_v1_output.py
index ed9e5c83a..0c49f894e 100644
--- a/segment_public_api/models/get_destination_metadata_v1_output.py
+++ b/segment_public_api/models/get_destination_metadata_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_destination_v1_output.py b/segment_public_api/models/get_destination_v1_output.py
index 29d526be6..f064e8d7d 100644
--- a/segment_public_api/models/get_destination_v1_output.py
+++ b/segment_public_api/models/get_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_destinations_catalog200_response.py b/segment_public_api/models/get_destinations_catalog200_response.py
index 4aae221ed..748e7cce9 100644
--- a/segment_public_api/models/get_destinations_catalog200_response.py
+++ b/segment_public_api/models/get_destinations_catalog200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_destinations_catalog_v1_output.py b/segment_public_api/models/get_destinations_catalog_v1_output.py
index 53f7c25e9..ddd27bde2 100644
--- a/segment_public_api/models/get_destinations_catalog_v1_output.py
+++ b/segment_public_api/models/get_destinations_catalog_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_egress_failed_metrics_from_delivery_overview200_response.py b/segment_public_api/models/get_egress_failed_metrics_from_delivery_overview200_response.py
new file mode 100644
index 000000000..b482e9877
--- /dev/null
+++ b/segment_public_api/models/get_egress_failed_metrics_from_delivery_overview200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_delivery_overview_metrics_beta_output import GetDeliveryOverviewMetricsBetaOutput
+
+class GetEgressFailedMetricsFromDeliveryOverview200Response(BaseModel):
+    """
+    GetEgressFailedMetricsFromDeliveryOverview200Response
+    """
+    data: Optional[GetDeliveryOverviewMetricsBetaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetEgressFailedMetricsFromDeliveryOverview200Response:
+        """Create an instance of GetEgressFailedMetricsFromDeliveryOverview200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetEgressFailedMetricsFromDeliveryOverview200Response:
+        """Create an instance of GetEgressFailedMetricsFromDeliveryOverview200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetEgressFailedMetricsFromDeliveryOverview200Response.parse_obj(obj)
+
+        _obj = GetEgressFailedMetricsFromDeliveryOverview200Response.parse_obj({
+            "data": GetDeliveryOverviewMetricsBetaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_events_volume_from_workspace200_response.py b/segment_public_api/models/get_events_volume_from_workspace200_response.py
index adfc005a2..3f8ce348d 100644
--- a/segment_public_api/models/get_events_volume_from_workspace200_response.py
+++ b/segment_public_api/models/get_events_volume_from_workspace200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_events_volume_from_workspace_v1_output.py b/segment_public_api/models/get_events_volume_from_workspace_v1_output.py
index 8bae56ca5..cff305539 100644
--- a/segment_public_api/models/get_events_volume_from_workspace_v1_output.py
+++ b/segment_public_api/models/get_events_volume_from_workspace_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_events_volume_from_workspace_v1_query.py b/segment_public_api/models/get_events_volume_from_workspace_v1_query.py
index e0a67e908..8c1edf67b 100644
--- a/segment_public_api/models/get_events_volume_from_workspace_v1_query.py
+++ b/segment_public_api/models/get_events_volume_from_workspace_v1_query.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_filter_by_id200_response.py b/segment_public_api/models/get_filter_by_id200_response.py
new file mode 100644
index 000000000..dfa56e499
--- /dev/null
+++ b/segment_public_api/models/get_filter_by_id200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_filter_by_id_output import GetFilterByIdOutput
+
+class GetFilterById200Response(BaseModel):
+    """
+    GetFilterById200Response
+    """
+    data: Optional[GetFilterByIdOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetFilterById200Response:
+        """Create an instance of GetFilterById200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetFilterById200Response:
+        """Create an instance of GetFilterById200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetFilterById200Response.parse_obj(obj)
+
+        _obj = GetFilterById200Response.parse_obj({
+            "data": GetFilterByIdOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_filter_by_id_output.py b/segment_public_api/models/get_filter_by_id_output.py
new file mode 100644
index 000000000..a2773e018
--- /dev/null
+++ b/segment_public_api/models/get_filter_by_id_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.filter import Filter
+
+class GetFilterByIdOutput(BaseModel):
+    """
+    Output for GetFilterById.  # noqa: E501
+    """
+    filter: Filter = Field(...)
+    __properties = ["filter"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetFilterByIdOutput:
+        """Create an instance of GetFilterByIdOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of filter
+        if self.filter:
+            _dict['filter'] = self.filter.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetFilterByIdOutput:
+        """Create an instance of GetFilterByIdOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetFilterByIdOutput.parse_obj(obj)
+
+        _obj = GetFilterByIdOutput.parse_obj({
+            "filter": Filter.from_dict(obj.get("filter")) if obj.get("filter") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_filter_in_destination200_response.py b/segment_public_api/models/get_filter_in_destination200_response.py
index 93575bd99..05cdcb3c4 100644
--- a/segment_public_api/models/get_filter_in_destination200_response.py
+++ b/segment_public_api/models/get_filter_in_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_filter_in_destination_v1_output.py b/segment_public_api/models/get_filter_in_destination_v1_output.py
index cf95d4dca..2a194eb12 100644
--- a/segment_public_api/models/get_filter_in_destination_v1_output.py
+++ b/segment_public_api/models/get_filter_in_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_function200_response.py b/segment_public_api/models/get_function200_response.py
index 3fd169486..96e2dfa24 100644
--- a/segment_public_api/models/get_function200_response.py
+++ b/segment_public_api/models/get_function200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_function_v1_output.py b/segment_public_api/models/get_function_v1_output.py
index 4125e24ce..c7c790474 100644
--- a/segment_public_api/models/get_function_v1_output.py
+++ b/segment_public_api/models/get_function_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,13 +21,13 @@
 
 from typing import Optional
 from pydantic import BaseModel, Field
-from segment_public_api.models.function import Function
+from segment_public_api.models.function_v1 import FunctionV1
 
 class GetFunctionV1Output(BaseModel):
     """
     Gets a single Function.  # noqa: E501
     """
-    function: Optional[Function] = Field(...)
+    function: Optional[FunctionV1] = Field(...)
     __properties = ["function"]
 
     class Config:
@@ -74,7 +74,7 @@ def from_dict(cls, obj: dict) -> GetFunctionV1Output:
             return GetFunctionV1Output.parse_obj(obj)
 
         _obj = GetFunctionV1Output.parse_obj({
-            "function": Function.from_dict(obj.get("function")) if obj.get("function") is not None else None
+            "function": FunctionV1.from_dict(obj.get("function")) if obj.get("function") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/get_function_version200_response.py b/segment_public_api/models/get_function_version200_response.py
index 95ab5c918..59a2654e5 100644
--- a/segment_public_api/models/get_function_version200_response.py
+++ b/segment_public_api/models/get_function_version200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_function_version_alpha_output.py b/segment_public_api/models/get_function_version_alpha_output.py
index b0795f526..6492f6315 100644
--- a/segment_public_api/models/get_function_version_alpha_output.py
+++ b/segment_public_api/models/get_function_version_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_insert_function_instance200_response.py b/segment_public_api/models/get_insert_function_instance200_response.py
index bd16fcd70..c41b9ee35 100644
--- a/segment_public_api/models/get_insert_function_instance200_response.py
+++ b/segment_public_api/models/get_insert_function_instance200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_insert_function_instance_alpha_output.py b/segment_public_api/models/get_insert_function_instance_alpha_output.py
index 0f7d5ce9e..d726b3f5c 100644
--- a/segment_public_api/models/get_insert_function_instance_alpha_output.py
+++ b/segment_public_api/models/get_insert_function_instance_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_latest_from_edge_functions200_response.py b/segment_public_api/models/get_latest_from_edge_functions200_response.py
index 8548a13bc..d86e88499 100644
--- a/segment_public_api/models/get_latest_from_edge_functions200_response.py
+++ b/segment_public_api/models/get_latest_from_edge_functions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_latest_from_edge_functions_alpha_output.py b/segment_public_api/models/get_latest_from_edge_functions_alpha_output.py
index 073cb9ab4..578b50ba2 100644
--- a/segment_public_api/models/get_latest_from_edge_functions_alpha_output.py
+++ b/segment_public_api/models/get_latest_from_edge_functions_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_messaging_subscription_failure_response.py b/segment_public_api/models/get_messaging_subscription_failure_response.py
index da2160a8e..eeaddc760 100644
--- a/segment_public_api/models/get_messaging_subscription_failure_response.py
+++ b/segment_public_api/models/get_messaging_subscription_failure_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_messaging_subscription_success_response.py b/segment_public_api/models/get_messaging_subscription_success_response.py
index fc935761f..9b29e2b16 100644
--- a/segment_public_api/models/get_messaging_subscription_success_response.py
+++ b/segment_public_api/models/get_messaging_subscription_success_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_regulation200_response.py b/segment_public_api/models/get_regulation200_response.py
index ed39c01a1..2170a5ea8 100644
--- a/segment_public_api/models/get_regulation200_response.py
+++ b/segment_public_api/models/get_regulation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_regulation_v1_output.py b/segment_public_api/models/get_regulation_v1_output.py
index 755b07b1e..5c503fa85 100644
--- a/segment_public_api/models/get_regulation_v1_output.py
+++ b/segment_public_api/models/get_regulation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_reverse_etl_model200_response.py b/segment_public_api/models/get_reverse_etl_model200_response.py
index 30e1a3ce3..24920923d 100644
--- a/segment_public_api/models/get_reverse_etl_model200_response.py
+++ b/segment_public_api/models/get_reverse_etl_model200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_reverse_etl_model_output.py b/segment_public_api/models/get_reverse_etl_model_output.py
index b31f0c66d..6c98e365e 100644
--- a/segment_public_api/models/get_reverse_etl_model_output.py
+++ b/segment_public_api/models/get_reverse_etl_model_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_reverse_etl_sync_status200_response.py b/segment_public_api/models/get_reverse_etl_sync_status200_response.py
new file mode 100644
index 000000000..f2cd378f2
--- /dev/null
+++ b/segment_public_api/models/get_reverse_etl_sync_status200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.get_reverse_etl_sync_status_output import GetReverseETLSyncStatusOutput
+
+class GetReverseETLSyncStatus200Response(BaseModel):
+    """
+    GetReverseETLSyncStatus200Response
+    """
+    data: Optional[GetReverseETLSyncStatusOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetReverseETLSyncStatus200Response:
+        """Create an instance of GetReverseETLSyncStatus200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetReverseETLSyncStatus200Response:
+        """Create an instance of GetReverseETLSyncStatus200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetReverseETLSyncStatus200Response.parse_obj(obj)
+
+        _obj = GetReverseETLSyncStatus200Response.parse_obj({
+            "data": GetReverseETLSyncStatusOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_reverse_etl_sync_status_output.py b/segment_public_api/models/get_reverse_etl_sync_status_output.py
new file mode 100644
index 000000000..c531ea413
--- /dev/null
+++ b/segment_public_api/models/get_reverse_etl_sync_status_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.reverse_etl_sync_status import ReverseETLSyncStatus
+
+class GetReverseETLSyncStatusOutput(BaseModel):
+    """
+    Output for triggering a manual sync for a RETL connection.  # noqa: E501
+    """
+    reverse_etl_sync_status: ReverseETLSyncStatus = Field(..., alias="reverseETLSyncStatus")
+    __properties = ["reverseETLSyncStatus"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> GetReverseETLSyncStatusOutput:
+        """Create an instance of GetReverseETLSyncStatusOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of reverse_etl_sync_status
+        if self.reverse_etl_sync_status:
+            _dict['reverseETLSyncStatus'] = self.reverse_etl_sync_status.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> GetReverseETLSyncStatusOutput:
+        """Create an instance of GetReverseETLSyncStatusOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return GetReverseETLSyncStatusOutput.parse_obj(obj)
+
+        _obj = GetReverseETLSyncStatusOutput.parse_obj({
+            "reverse_etl_sync_status": ReverseETLSyncStatus.from_dict(obj.get("reverseETLSyncStatus")) if obj.get("reverseETLSyncStatus") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/get_source200_response.py b/segment_public_api/models/get_source200_response.py
index beea18d63..446367495 100644
--- a/segment_public_api/models/get_source200_response.py
+++ b/segment_public_api/models/get_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_source200_response1.py b/segment_public_api/models/get_source200_response1.py
index d1d6e0711..6febcfc7f 100644
--- a/segment_public_api/models/get_source200_response1.py
+++ b/segment_public_api/models/get_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_source_alpha_output.py b/segment_public_api/models/get_source_alpha_output.py
index cd2ce9421..f226d41f8 100644
--- a/segment_public_api/models/get_source_alpha_output.py
+++ b/segment_public_api/models/get_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_source_metadata200_response.py b/segment_public_api/models/get_source_metadata200_response.py
index 3f14badcf..6dfc294e2 100644
--- a/segment_public_api/models/get_source_metadata200_response.py
+++ b/segment_public_api/models/get_source_metadata200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_source_metadata_v1_output.py b/segment_public_api/models/get_source_metadata_v1_output.py
index fd0f75322..f03de6bb7 100644
--- a/segment_public_api/models/get_source_metadata_v1_output.py
+++ b/segment_public_api/models/get_source_metadata_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_source_v1_output.py b/segment_public_api/models/get_source_v1_output.py
index 5ba51b123..a66339ebd 100644
--- a/segment_public_api/models/get_source_v1_output.py
+++ b/segment_public_api/models/get_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_sources_catalog200_response.py b/segment_public_api/models/get_sources_catalog200_response.py
index 0e452a4ff..71f97afa4 100644
--- a/segment_public_api/models/get_sources_catalog200_response.py
+++ b/segment_public_api/models/get_sources_catalog200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_sources_catalog_v1_output.py b/segment_public_api/models/get_sources_catalog_v1_output.py
index 971d36290..a8bea6769 100644
--- a/segment_public_api/models/get_sources_catalog_v1_output.py
+++ b/segment_public_api/models/get_sources_catalog_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_space200_response.py b/segment_public_api/models/get_space200_response.py
index 135e5d730..c88798014 100644
--- a/segment_public_api/models/get_space200_response.py
+++ b/segment_public_api/models/get_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_space_alpha_output.py b/segment_public_api/models/get_space_alpha_output.py
index c01471923..9f4223065 100644
--- a/segment_public_api/models/get_space_alpha_output.py
+++ b/segment_public_api/models/get_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_subscription_from_destination200_response.py b/segment_public_api/models/get_subscription_from_destination200_response.py
index 5c6815f82..b6f578600 100644
--- a/segment_public_api/models/get_subscription_from_destination200_response.py
+++ b/segment_public_api/models/get_subscription_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_subscription_from_destination_alpha_output.py b/segment_public_api/models/get_subscription_from_destination_alpha_output.py
index 49e0eae3e..a36ff575c 100644
--- a/segment_public_api/models/get_subscription_from_destination_alpha_output.py
+++ b/segment_public_api/models/get_subscription_from_destination_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_subscription_request.py b/segment_public_api/models/get_subscription_request.py
index 10cfcb362..1b21a3efd 100644
--- a/segment_public_api/models/get_subscription_request.py
+++ b/segment_public_api/models/get_subscription_request.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_tracking_plan200_response.py b/segment_public_api/models/get_tracking_plan200_response.py
index ed9936382..192b40aba 100644
--- a/segment_public_api/models/get_tracking_plan200_response.py
+++ b/segment_public_api/models/get_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_tracking_plan_v1_output.py b/segment_public_api/models/get_tracking_plan_v1_output.py
index 37e6644b3..1ad381311 100644
--- a/segment_public_api/models/get_tracking_plan_v1_output.py
+++ b/segment_public_api/models/get_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_transformation200_response.py b/segment_public_api/models/get_transformation200_response.py
index 85308dcba..2c01ff331 100644
--- a/segment_public_api/models/get_transformation200_response.py
+++ b/segment_public_api/models/get_transformation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_transformation_beta_input.py b/segment_public_api/models/get_transformation_beta_input.py
index d65bf8d9d..9ea34ce91 100644
--- a/segment_public_api/models/get_transformation_beta_input.py
+++ b/segment_public_api/models/get_transformation_beta_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_transformation_beta_output.py b/segment_public_api/models/get_transformation_beta_output.py
index 0ea69f945..58b7c5fc2 100644
--- a/segment_public_api/models/get_transformation_beta_output.py
+++ b/segment_public_api/models/get_transformation_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_transformation_v1_output.py b/segment_public_api/models/get_transformation_v1_output.py
index ceb3a7689..266ac6029 100644
--- a/segment_public_api/models/get_transformation_v1_output.py
+++ b/segment_public_api/models/get_transformation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_user200_response.py b/segment_public_api/models/get_user200_response.py
index d07dc1a2d..735f11bb5 100644
--- a/segment_public_api/models/get_user200_response.py
+++ b/segment_public_api/models/get_user200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_user_group200_response.py b/segment_public_api/models/get_user_group200_response.py
index 994913b73..42cf9cb4d 100644
--- a/segment_public_api/models/get_user_group200_response.py
+++ b/segment_public_api/models/get_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_user_group_v1_output.py b/segment_public_api/models/get_user_group_v1_output.py
index 90d849764..142f2d714 100644
--- a/segment_public_api/models/get_user_group_v1_output.py
+++ b/segment_public_api/models/get_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_user_v1_output.py b/segment_public_api/models/get_user_v1_output.py
index 7c2718c60..976c3b637 100644
--- a/segment_public_api/models/get_user_v1_output.py
+++ b/segment_public_api/models/get_user_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouse200_response.py b/segment_public_api/models/get_warehouse200_response.py
index f965d2423..47a261607 100644
--- a/segment_public_api/models/get_warehouse200_response.py
+++ b/segment_public_api/models/get_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouse_metadata200_response.py b/segment_public_api/models/get_warehouse_metadata200_response.py
index c66775128..ced7b1d46 100644
--- a/segment_public_api/models/get_warehouse_metadata200_response.py
+++ b/segment_public_api/models/get_warehouse_metadata200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouse_metadata_v1_output.py b/segment_public_api/models/get_warehouse_metadata_v1_output.py
index ed85f2fb6..ff2eab839 100644
--- a/segment_public_api/models/get_warehouse_metadata_v1_output.py
+++ b/segment_public_api/models/get_warehouse_metadata_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouse_v1_output.py b/segment_public_api/models/get_warehouse_v1_output.py
index 20461e99a..fc9202906 100644
--- a/segment_public_api/models/get_warehouse_v1_output.py
+++ b/segment_public_api/models/get_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouses_catalog200_response.py b/segment_public_api/models/get_warehouses_catalog200_response.py
index 33e179fd2..bc23dcc30 100644
--- a/segment_public_api/models/get_warehouses_catalog200_response.py
+++ b/segment_public_api/models/get_warehouses_catalog200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_warehouses_catalog_v1_output.py b/segment_public_api/models/get_warehouses_catalog_v1_output.py
index 2ca5a75be..fed2de561 100644
--- a/segment_public_api/models/get_warehouses_catalog_v1_output.py
+++ b/segment_public_api/models/get_warehouses_catalog_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_workspace200_response.py b/segment_public_api/models/get_workspace200_response.py
index f6ab62923..649d3a8a9 100644
--- a/segment_public_api/models/get_workspace200_response.py
+++ b/segment_public_api/models/get_workspace200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/get_workspace_v1_output.py b/segment_public_api/models/get_workspace_v1_output.py
index 28fc926fe..6c65ed46a 100644
--- a/segment_public_api/models/get_workspace_v1_output.py
+++ b/segment_public_api/models/get_workspace_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/group_source_settings_v1.py b/segment_public_api/models/group_source_settings_v1.py
index 91abb05cd..685fe813d 100644
--- a/segment_public_api/models/group_source_settings_v1.py
+++ b/segment_public_api/models/group_source_settings_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/group_subscription_status.py b/segment_public_api/models/group_subscription_status.py
index e6dfca940..27dfcde40 100644
--- a/segment_public_api/models/group_subscription_status.py
+++ b/segment_public_api/models/group_subscription_status.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/group_subscription_status_response.py b/segment_public_api/models/group_subscription_status_response.py
index 3c8358266..9a2b9d235 100644
--- a/segment_public_api/models/group_subscription_status_response.py
+++ b/segment_public_api/models/group_subscription_status_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/handle_webhook_input.py b/segment_public_api/models/handle_webhook_input.py
index a442e7240..2d1481dd3 100644
--- a/segment_public_api/models/handle_webhook_input.py
+++ b/segment_public_api/models/handle_webhook_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/handle_webhook_output.py b/segment_public_api/models/handle_webhook_output.py
index 925abdabc..29a5bb7a7 100644
--- a/segment_public_api/models/handle_webhook_output.py
+++ b/segment_public_api/models/handle_webhook_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/hash_properties_configuration.py b/segment_public_api/models/hash_properties_configuration.py
new file mode 100644
index 000000000..5bfafd8e4
--- /dev/null
+++ b/segment_public_api/models/hash_properties_configuration.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictStr, conlist, validator
+
+class HashPropertiesConfiguration(BaseModel):
+    """
+    HashPropertiesConfiguration
+    """
+    algorithm: StrictStr = Field(..., description="Which algorithm to use to hash to properties.")
+    key: Optional[StrictStr] = Field(None, description="Optional key to hash with.")
+    encoding: Optional[StrictStr] = Field(None, description="Optional encoding to use for the hashing.")
+    paths: conlist(StrictStr) = Field(..., description="The paths to the properties to be hashed.")
+    __properties = ["algorithm", "key", "encoding", "paths"]
+
+    @validator('encoding')
+    def encoding_validate_enum(cls, value):
+        """Validates the enum"""
+        if value is None:
+            return value
+
+        if value not in ('BASE16', 'BASE64', 'BASE64URL', 'HEX'):
+            raise ValueError("must be one of enum values ('BASE16', 'BASE64', 'BASE64URL', 'HEX')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> HashPropertiesConfiguration:
+        """Create an instance of HashPropertiesConfiguration from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> HashPropertiesConfiguration:
+        """Create an instance of HashPropertiesConfiguration from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return HashPropertiesConfiguration.parse_obj(obj)
+
+        _obj = HashPropertiesConfiguration.parse_obj({
+            "algorithm": obj.get("algorithm"),
+            "key": obj.get("key"),
+            "encoding": obj.get("encoding"),
+            "paths": obj.get("paths")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/identify_source_settings_v1.py b/segment_public_api/models/identify_source_settings_v1.py
index df6e5b58b..66e9d9a98 100644
--- a/segment_public_api/models/identify_source_settings_v1.py
+++ b/segment_public_api/models/identify_source_settings_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/insert_function_instance_alpha.py b/segment_public_api/models/insert_function_instance_alpha.py
index 611673fe7..ac677e231 100644
--- a/segment_public_api/models/insert_function_instance_alpha.py
+++ b/segment_public_api/models/insert_function_instance_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/integration_option_beta.py b/segment_public_api/models/integration_option_beta.py
index 140955e56..b9aba41ab 100644
--- a/segment_public_api/models/integration_option_beta.py
+++ b/segment_public_api/models/integration_option_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/invite_permission_v1.py b/segment_public_api/models/invite_permission_v1.py
index b7468f45b..7afae01e9 100644
--- a/segment_public_api/models/invite_permission_v1.py
+++ b/segment_public_api/models/invite_permission_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/invite_v1.py b/segment_public_api/models/invite_v1.py
index 6d36e0dc1..8a3fe021d 100644
--- a/segment_public_api/models/invite_v1.py
+++ b/segment_public_api/models/invite_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/label_alpha.py b/segment_public_api/models/label_alpha.py
index 37988a740..16d4dc0e4 100644
--- a/segment_public_api/models/label_alpha.py
+++ b/segment_public_api/models/label_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/label_v1.py b/segment_public_api/models/label_v1.py
index 97e420853..0cd2cd2af 100644
--- a/segment_public_api/models/label_v1.py
+++ b/segment_public_api/models/label_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_activations_alpha_output.py b/segment_public_api/models/list_activations_alpha_output.py
new file mode 100644
index 000000000..193e7413e
--- /dev/null
+++ b/segment_public_api/models/list_activations_alpha_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+from segment_public_api.models.pagination_output import PaginationOutput
+
+class ListActivationsAlphaOutput(BaseModel):
+    """
+    Output for listing all activations.  # noqa: E501
+    """
+    activations: conlist(ActivationSummaryOutput) = Field(..., description="A list of activation results.")
+    pagination: Optional[PaginationOutput] = None
+    __properties = ["activations", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListActivationsAlphaOutput:
+        """Create an instance of ListActivationsAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in activations (list)
+        _items = []
+        if self.activations:
+            for _item in self.activations:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['activations'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListActivationsAlphaOutput:
+        """Create an instance of ListActivationsAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListActivationsAlphaOutput.parse_obj(obj)
+
+        _obj = ListActivationsAlphaOutput.parse_obj({
+            "activations": [ActivationSummaryOutput.from_dict(_item) for _item in obj.get("activations")] if obj.get("activations") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_activations_from_audience200_response.py b/segment_public_api/models/list_activations_from_audience200_response.py
new file mode 100644
index 000000000..a76853481
--- /dev/null
+++ b/segment_public_api/models/list_activations_from_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_activations_from_audience_output import ListActivationsFromAudienceOutput
+
+class ListActivationsFromAudience200Response(BaseModel):
+    """
+    ListActivationsFromAudience200Response
+    """
+    data: Optional[ListActivationsFromAudienceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListActivationsFromAudience200Response:
+        """Create an instance of ListActivationsFromAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListActivationsFromAudience200Response:
+        """Create an instance of ListActivationsFromAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListActivationsFromAudience200Response.parse_obj(obj)
+
+        _obj = ListActivationsFromAudience200Response.parse_obj({
+            "data": ListActivationsFromAudienceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_activations_from_audience_output.py b/segment_public_api/models/list_activations_from_audience_output.py
new file mode 100644
index 000000000..cc5693a44
--- /dev/null
+++ b/segment_public_api/models/list_activations_from_audience_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+from segment_public_api.models.pagination_output import PaginationOutput
+
+class ListActivationsFromAudienceOutput(BaseModel):
+    """
+    Output for listing activations from space and audience.  # noqa: E501
+    """
+    activations: conlist(ActivationSummaryOutput) = Field(..., description="A list of activation results.")
+    pagination: Optional[PaginationOutput] = None
+    __properties = ["activations", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListActivationsFromAudienceOutput:
+        """Create an instance of ListActivationsFromAudienceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in activations (list)
+        _items = []
+        if self.activations:
+            for _item in self.activations:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['activations'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListActivationsFromAudienceOutput:
+        """Create an instance of ListActivationsFromAudienceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListActivationsFromAudienceOutput.parse_obj(obj)
+
+        _obj = ListActivationsFromAudienceOutput.parse_obj({
+            "activations": [ActivationSummaryOutput.from_dict(_item) for _item in obj.get("activations")] if obj.get("activations") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_consumers_from_space_and_audience200_response.py b/segment_public_api/models/list_audience_consumers_from_space_and_audience200_response.py
new file mode 100644
index 000000000..ea31eb0f8
--- /dev/null
+++ b/segment_public_api/models/list_audience_consumers_from_space_and_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_audience_consumers_from_space_and_audience_alpha_output import ListAudienceConsumersFromSpaceAndAudienceAlphaOutput
+
+class ListAudienceConsumersFromSpaceAndAudience200Response(BaseModel):
+    """
+    ListAudienceConsumersFromSpaceAndAudience200Response
+    """
+    data: Optional[ListAudienceConsumersFromSpaceAndAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceConsumersFromSpaceAndAudience200Response:
+        """Create an instance of ListAudienceConsumersFromSpaceAndAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceConsumersFromSpaceAndAudience200Response:
+        """Create an instance of ListAudienceConsumersFromSpaceAndAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceConsumersFromSpaceAndAudience200Response.parse_obj(obj)
+
+        _obj = ListAudienceConsumersFromSpaceAndAudience200Response.parse_obj({
+            "data": ListAudienceConsumersFromSpaceAndAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_consumers_from_space_and_audience_alpha_output.py b/segment_public_api/models/list_audience_consumers_from_space_and_audience_alpha_output.py
new file mode 100644
index 000000000..a835ca571
--- /dev/null
+++ b/segment_public_api/models/list_audience_consumers_from_space_and_audience_alpha_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.audience_summary import AudienceSummary
+from segment_public_api.models.pagination_output import PaginationOutput
+
+class ListAudienceConsumersFromSpaceAndAudienceAlphaOutput(BaseModel):
+    """
+    List Audience consumers output.  # noqa: E501
+    """
+    audiences: conlist(AudienceSummary) = Field(..., description="The list of audience consumers.")
+    pagination: PaginationOutput = Field(...)
+    __properties = ["audiences", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceConsumersFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of ListAudienceConsumersFromSpaceAndAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in audiences (list)
+        _items = []
+        if self.audiences:
+            for _item in self.audiences:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['audiences'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceConsumersFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of ListAudienceConsumersFromSpaceAndAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceConsumersFromSpaceAndAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = ListAudienceConsumersFromSpaceAndAudienceAlphaOutput.parse_obj({
+            "audiences": [AudienceSummary.from_dict(_item) for _item in obj.get("audiences")] if obj.get("audiences") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_consumers_sort_input.py b/segment_public_api/models/list_audience_consumers_sort_input.py
new file mode 100644
index 000000000..6e19e946a
--- /dev/null
+++ b/segment_public_api/models/list_audience_consumers_sort_input.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class ListAudienceConsumersSortInput(BaseModel):
+    """
+    Sort criteria input for list audience consumers.  # noqa: E501
+    """
+    field: StrictStr = Field(..., description="Field to sort by.")
+    direction: StrictStr = Field(..., description="Sort direction (ascending or descending).")
+    __properties = ["field", "direction"]
+
+    @validator('field')
+    def field_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('CREATED_AT', 'NAME', 'UPDATED_AT'):
+            raise ValueError("must be one of enum values ('CREATED_AT', 'NAME', 'UPDATED_AT')")
+        return value
+
+    @validator('direction')
+    def direction_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ASC', 'DESC'):
+            raise ValueError("must be one of enum values ('ASC', 'DESC')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceConsumersSortInput:
+        """Create an instance of ListAudienceConsumersSortInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceConsumersSortInput:
+        """Create an instance of ListAudienceConsumersSortInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceConsumersSortInput.parse_obj(obj)
+
+        _obj = ListAudienceConsumersSortInput.parse_obj({
+            "field": obj.get("field"),
+            "direction": obj.get("direction")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_schedules_from_space_and_audience200_response.py b/segment_public_api/models/list_audience_schedules_from_space_and_audience200_response.py
new file mode 100644
index 000000000..6ce9733b5
--- /dev/null
+++ b/segment_public_api/models/list_audience_schedules_from_space_and_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_audience_schedules_from_space_and_audience_alpha_output import ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput
+
+class ListAudienceSchedulesFromSpaceAndAudience200Response(BaseModel):
+    """
+    ListAudienceSchedulesFromSpaceAndAudience200Response
+    """
+    data: Optional[ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceSchedulesFromSpaceAndAudience200Response:
+        """Create an instance of ListAudienceSchedulesFromSpaceAndAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceSchedulesFromSpaceAndAudience200Response:
+        """Create an instance of ListAudienceSchedulesFromSpaceAndAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceSchedulesFromSpaceAndAudience200Response.parse_obj(obj)
+
+        _obj = ListAudienceSchedulesFromSpaceAndAudience200Response.parse_obj({
+            "data": ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_schedules_from_space_and_audience_alpha_output.py b/segment_public_api/models/list_audience_schedules_from_space_and_audience_alpha_output.py
new file mode 100644
index 000000000..855b759ac
--- /dev/null
+++ b/segment_public_api/models/list_audience_schedules_from_space_and_audience_alpha_output.py
@@ -0,0 +1,80 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.audience_schedule import AudienceSchedule
+
+class ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput(BaseModel):
+    """
+    Output for list audience schedules.  # noqa: E501
+    """
+    audience_schedules: conlist(AudienceSchedule) = Field(..., alias="audienceSchedules", description="A list of audience schedules.")
+    __properties = ["audienceSchedules"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in audience_schedules (list)
+        _items = []
+        if self.audience_schedules:
+            for _item in self.audience_schedules:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['audienceSchedules'] = _items
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput:
+        """Create an instance of ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput.parse_obj(obj)
+
+        _obj = ListAudienceSchedulesFromSpaceAndAudienceAlphaOutput.parse_obj({
+            "audience_schedules": [AudienceSchedule.from_dict(_item) for _item in obj.get("audienceSchedules")] if obj.get("audienceSchedules") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audience_search_input.py b/segment_public_api/models/list_audience_search_input.py
new file mode 100644
index 000000000..2d93593ec
--- /dev/null
+++ b/segment_public_api/models/list_audience_search_input.py
@@ -0,0 +1,81 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class ListAudienceSearchInput(BaseModel):
+    """
+    Search criteria input for list audience consumers.  # noqa: E501
+    """
+    type: StrictStr = Field(..., description="Field to filter by.")
+    query: StrictStr = Field(..., description="Text to match against the selected field (max 255 characters). When searching by KEY, a prefix match is used. For all other options, a full wildcard search will be used.")
+    __properties = ["type", "query"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('DEFINITION', 'KEY', 'NAME'):
+            raise ValueError("must be one of enum values ('DEFINITION', 'KEY', 'NAME')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudienceSearchInput:
+        """Create an instance of ListAudienceSearchInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudienceSearchInput:
+        """Create an instance of ListAudienceSearchInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudienceSearchInput.parse_obj(obj)
+
+        _obj = ListAudienceSearchInput.parse_obj({
+            "type": obj.get("type"),
+            "query": obj.get("query")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audiences200_response.py b/segment_public_api/models/list_audiences200_response.py
index 2f7f7a6e4..3f38aeebc 100644
--- a/segment_public_api/models/list_audiences200_response.py
+++ b/segment_public_api/models/list_audiences200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,13 +21,13 @@
 
 from typing import Optional
 from pydantic import BaseModel
-from segment_public_api.models.list_audiences_alpha_output import ListAudiencesAlphaOutput
+from segment_public_api.models.list_audiences_beta_output import ListAudiencesBetaOutput
 
 class ListAudiences200Response(BaseModel):
     """
     ListAudiences200Response
     """
-    data: Optional[ListAudiencesAlphaOutput] = None
+    data: Optional[ListAudiencesBetaOutput] = None
     __properties = ["data"]
 
     class Config:
@@ -69,7 +69,7 @@ def from_dict(cls, obj: dict) -> ListAudiences200Response:
             return ListAudiences200Response.parse_obj(obj)
 
         _obj = ListAudiences200Response.parse_obj({
-            "data": ListAudiencesAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+            "data": ListAudiencesBetaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/list_audiences200_response1.py b/segment_public_api/models/list_audiences200_response1.py
new file mode 100644
index 000000000..6235da2f8
--- /dev/null
+++ b/segment_public_api/models/list_audiences200_response1.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_audiences_alpha_output import ListAudiencesAlphaOutput
+
+class ListAudiences200Response1(BaseModel):
+    """
+    ListAudiences200Response1
+    """
+    data: Optional[ListAudiencesAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudiences200Response1:
+        """Create an instance of ListAudiences200Response1 from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudiences200Response1:
+        """Create an instance of ListAudiences200Response1 from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudiences200Response1.parse_obj(obj)
+
+        _obj = ListAudiences200Response1.parse_obj({
+            "data": ListAudiencesAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audiences_alpha_output.py b/segment_public_api/models/list_audiences_alpha_output.py
index 911c56b66..e9cc7fed1 100644
--- a/segment_public_api/models/list_audiences_alpha_output.py
+++ b/segment_public_api/models/list_audiences_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -21,14 +21,14 @@
 
 from typing import List
 from pydantic import BaseModel, Field, conlist
-from segment_public_api.models.audience_summary import AudienceSummary
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
 from segment_public_api.models.pagination_output import PaginationOutput
 
 class ListAudiencesAlphaOutput(BaseModel):
     """
     List audiences endpoint output.  # noqa: E501
     """
-    audiences: conlist(AudienceSummary) = Field(..., description="A list of audience summary results.")
+    audiences: conlist(AudienceSummaryWithAudienceTypeAndLookback) = Field(..., description="A list of audience summary results.")
     pagination: PaginationOutput = Field(...)
     __properties = ["audiences", "pagination"]
 
@@ -78,7 +78,7 @@ def from_dict(cls, obj: dict) -> ListAudiencesAlphaOutput:
             return ListAudiencesAlphaOutput.parse_obj(obj)
 
         _obj = ListAudiencesAlphaOutput.parse_obj({
-            "audiences": [AudienceSummary.from_dict(_item) for _item in obj.get("audiences")] if obj.get("audiences") is not None else None,
+            "audiences": [AudienceSummaryWithAudienceTypeAndLookback.from_dict(_item) for _item in obj.get("audiences")] if obj.get("audiences") is not None else None,
             "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
         })
         return _obj
diff --git a/segment_public_api/models/list_audiences_beta_output.py b/segment_public_api/models/list_audiences_beta_output.py
new file mode 100644
index 000000000..6c1af4c2d
--- /dev/null
+++ b/segment_public_api/models/list_audiences_beta_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.audience_summary_with_audience_type_and_lookback import AudienceSummaryWithAudienceTypeAndLookback
+from segment_public_api.models.pagination_output import PaginationOutput
+
+class ListAudiencesBetaOutput(BaseModel):
+    """
+    List audiences endpoint output.  # noqa: E501
+    """
+    audiences: conlist(AudienceSummaryWithAudienceTypeAndLookback) = Field(..., description="A list of audience summary results.")
+    pagination: PaginationOutput = Field(...)
+    __properties = ["audiences", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudiencesBetaOutput:
+        """Create an instance of ListAudiencesBetaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in audiences (list)
+        _items = []
+        if self.audiences:
+            for _item in self.audiences:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['audiences'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudiencesBetaOutput:
+        """Create an instance of ListAudiencesBetaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudiencesBetaOutput.parse_obj(obj)
+
+        _obj = ListAudiencesBetaOutput.parse_obj({
+            "audiences": [AudienceSummaryWithAudienceTypeAndLookback.from_dict(_item) for _item in obj.get("audiences")] if obj.get("audiences") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audiences_pagination_input.py b/segment_public_api/models/list_audiences_pagination_input.py
new file mode 100644
index 000000000..92ada9d21
--- /dev/null
+++ b/segment_public_api/models/list_audiences_pagination_input.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr
+
+class ListAudiencesPaginationInput(BaseModel):
+    """
+    Fork of Autobahn's PaginationInput. Count is limited to 200 in this fork.  Pagination parameters.  Every resource that returns a list of items in its `Output` object may contain a `PaginationInput` in its `Input` object. Required, though some of its fields are optional.  # noqa: E501
+    """
+    cursor: Optional[StrictStr] = Field(None, description="The page to request.  Acceptable values to use here are in PaginationOutput objects, in the `current`, `next`, and `previous` keys.  Consumers of the API must treat this value as opaque.")
+    count: Union[StrictFloat, StrictInt] = Field(..., description="The number of items to retrieve in a page, between 1 and 200.")
+    __properties = ["cursor", "count"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListAudiencesPaginationInput:
+        """Create an instance of ListAudiencesPaginationInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListAudiencesPaginationInput:
+        """Create an instance of ListAudiencesPaginationInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListAudiencesPaginationInput.parse_obj(obj)
+
+        _obj = ListAudiencesPaginationInput.parse_obj({
+            "cursor": obj.get("cursor"),
+            "count": obj.get("count")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_audit_events200_response.py b/segment_public_api/models/list_audit_events200_response.py
index aab9f816a..e9f1a95e0 100644
--- a/segment_public_api/models/list_audit_events200_response.py
+++ b/segment_public_api/models/list_audit_events200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_audit_events_v1_output.py b/segment_public_api/models/list_audit_events_v1_output.py
index 4bb24ab35..6f2db4b83 100644
--- a/segment_public_api/models/list_audit_events_v1_output.py
+++ b/segment_public_api/models/list_audit_events_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_computed_traits200_response.py b/segment_public_api/models/list_computed_traits200_response.py
index 8838a934b..0d6ba26fd 100644
--- a/segment_public_api/models/list_computed_traits200_response.py
+++ b/segment_public_api/models/list_computed_traits200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_computed_traits_alpha_output.py b/segment_public_api/models/list_computed_traits_alpha_output.py
index 6c2ba3743..9d3006aa1 100644
--- a/segment_public_api/models/list_computed_traits_alpha_output.py
+++ b/segment_public_api/models/list_computed_traits_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_destinations_from_source200_response.py b/segment_public_api/models/list_connected_destinations_from_source200_response.py
index 4a1cb2879..2b1bed445 100644
--- a/segment_public_api/models/list_connected_destinations_from_source200_response.py
+++ b/segment_public_api/models/list_connected_destinations_from_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_destinations_from_source200_response1.py b/segment_public_api/models/list_connected_destinations_from_source200_response1.py
index 970b9ded7..4ea536711 100644
--- a/segment_public_api/models/list_connected_destinations_from_source200_response1.py
+++ b/segment_public_api/models/list_connected_destinations_from_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_destinations_from_source_alpha_output.py b/segment_public_api/models/list_connected_destinations_from_source_alpha_output.py
index 879c17cee..9649a3346 100644
--- a/segment_public_api/models/list_connected_destinations_from_source_alpha_output.py
+++ b/segment_public_api/models/list_connected_destinations_from_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_destinations_from_source_v1_output.py b/segment_public_api/models/list_connected_destinations_from_source_v1_output.py
index 720695dfb..7952eef2f 100644
--- a/segment_public_api/models/list_connected_destinations_from_source_v1_output.py
+++ b/segment_public_api/models/list_connected_destinations_from_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_sources_from_warehouse200_response.py b/segment_public_api/models/list_connected_sources_from_warehouse200_response.py
index d014a9438..d757bf59d 100644
--- a/segment_public_api/models/list_connected_sources_from_warehouse200_response.py
+++ b/segment_public_api/models/list_connected_sources_from_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_sources_from_warehouse_v1_output.py b/segment_public_api/models/list_connected_sources_from_warehouse_v1_output.py
index 0b341b848..2f6ef84ad 100644
--- a/segment_public_api/models/list_connected_sources_from_warehouse_v1_output.py
+++ b/segment_public_api/models/list_connected_sources_from_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_warehouses_from_source200_response.py b/segment_public_api/models/list_connected_warehouses_from_source200_response.py
index 6594eb91b..90a5c6a49 100644
--- a/segment_public_api/models/list_connected_warehouses_from_source200_response.py
+++ b/segment_public_api/models/list_connected_warehouses_from_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_warehouses_from_source200_response1.py b/segment_public_api/models/list_connected_warehouses_from_source200_response1.py
index 3dc08b319..78d503f00 100644
--- a/segment_public_api/models/list_connected_warehouses_from_source200_response1.py
+++ b/segment_public_api/models/list_connected_warehouses_from_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_warehouses_from_source_alpha_output.py b/segment_public_api/models/list_connected_warehouses_from_source_alpha_output.py
index 30758f823..838718109 100644
--- a/segment_public_api/models/list_connected_warehouses_from_source_alpha_output.py
+++ b/segment_public_api/models/list_connected_warehouses_from_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_connected_warehouses_from_source_v1_output.py b/segment_public_api/models/list_connected_warehouses_from_source_v1_output.py
index 730c84435..00765eda0 100644
--- a/segment_public_api/models/list_connected_warehouses_from_source_v1_output.py
+++ b/segment_public_api/models/list_connected_warehouses_from_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_delivery_metrics_summary_from_destination200_response.py b/segment_public_api/models/list_delivery_metrics_summary_from_destination200_response.py
index 7fcad0078..bced48066 100644
--- a/segment_public_api/models/list_delivery_metrics_summary_from_destination200_response.py
+++ b/segment_public_api/models/list_delivery_metrics_summary_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_delivery_metrics_summary_from_destination_beta_output.py b/segment_public_api/models/list_delivery_metrics_summary_from_destination_beta_output.py
index 3fa74dd2a..bd33319d3 100644
--- a/segment_public_api/models/list_delivery_metrics_summary_from_destination_beta_output.py
+++ b/segment_public_api/models/list_delivery_metrics_summary_from_destination_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_destinations200_response.py b/segment_public_api/models/list_destinations200_response.py
index 915087454..67b1679ab 100644
--- a/segment_public_api/models/list_destinations200_response.py
+++ b/segment_public_api/models/list_destinations200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_destinations_v1_output.py b/segment_public_api/models/list_destinations_v1_output.py
index 684fff24b..20b74648b 100644
--- a/segment_public_api/models/list_destinations_v1_output.py
+++ b/segment_public_api/models/list_destinations_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_filters_for_space200_response.py b/segment_public_api/models/list_filters_for_space200_response.py
new file mode 100644
index 000000000..74326c80b
--- /dev/null
+++ b/segment_public_api/models/list_filters_for_space200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_filters_for_space_output import ListFiltersForSpaceOutput
+
+class ListFiltersForSpace200Response(BaseModel):
+    """
+    ListFiltersForSpace200Response
+    """
+    data: Optional[ListFiltersForSpaceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListFiltersForSpace200Response:
+        """Create an instance of ListFiltersForSpace200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListFiltersForSpace200Response:
+        """Create an instance of ListFiltersForSpace200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListFiltersForSpace200Response.parse_obj(obj)
+
+        _obj = ListFiltersForSpace200Response.parse_obj({
+            "data": ListFiltersForSpaceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_filters_for_space_output.py b/segment_public_api/models/list_filters_for_space_output.py
new file mode 100644
index 000000000..87390eb97
--- /dev/null
+++ b/segment_public_api/models/list_filters_for_space_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.filter import Filter
+from segment_public_api.models.list_filters_pagination_output import ListFiltersPaginationOutput
+
+class ListFiltersForSpaceOutput(BaseModel):
+    """
+    Output for ListFiltersByIntegrationId.  # noqa: E501
+    """
+    filters: Optional[conlist(Filter)] = Field(None, description="Filter output.")
+    pagination: Optional[ListFiltersPaginationOutput] = None
+    __properties = ["filters", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListFiltersForSpaceOutput:
+        """Create an instance of ListFiltersForSpaceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in filters (list)
+        _items = []
+        if self.filters:
+            for _item in self.filters:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['filters'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListFiltersForSpaceOutput:
+        """Create an instance of ListFiltersForSpaceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListFiltersForSpaceOutput.parse_obj(obj)
+
+        _obj = ListFiltersForSpaceOutput.parse_obj({
+            "filters": [Filter.from_dict(_item) for _item in obj.get("filters")] if obj.get("filters") is not None else None,
+            "pagination": ListFiltersPaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_filters_from_destination200_response.py b/segment_public_api/models/list_filters_from_destination200_response.py
index 460deed29..29675b6e9 100644
--- a/segment_public_api/models/list_filters_from_destination200_response.py
+++ b/segment_public_api/models/list_filters_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_filters_from_destination_v1_output.py b/segment_public_api/models/list_filters_from_destination_v1_output.py
index 433d54812..c770296fe 100644
--- a/segment_public_api/models/list_filters_from_destination_v1_output.py
+++ b/segment_public_api/models/list_filters_from_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_filters_pagination_input.py b/segment_public_api/models/list_filters_pagination_input.py
new file mode 100644
index 000000000..5c14cc38d
--- /dev/null
+++ b/segment_public_api/models/list_filters_pagination_input.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt
+
+class ListFiltersPaginationInput(BaseModel):
+    """
+    Pagination for list filters.  # noqa: E501
+    """
+    cursor: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The offset.")
+    count: Union[StrictFloat, StrictInt] = Field(..., description="The number of items to retrieve in a page, between 1 and 10.")
+    __properties = ["cursor", "count"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListFiltersPaginationInput:
+        """Create an instance of ListFiltersPaginationInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListFiltersPaginationInput:
+        """Create an instance of ListFiltersPaginationInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListFiltersPaginationInput.parse_obj(obj)
+
+        _obj = ListFiltersPaginationInput.parse_obj({
+            "cursor": obj.get("cursor"),
+            "count": obj.get("count")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_filters_pagination_output.py b/segment_public_api/models/list_filters_pagination_output.py
new file mode 100644
index 000000000..4c9362ae8
--- /dev/null
+++ b/segment_public_api/models/list_filters_pagination_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt
+
+class ListFiltersPaginationOutput(BaseModel):
+    """
+    Pagination for list filters.  # noqa: E501
+    """
+    current: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Current.")
+    next: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Next.")
+    total_entries: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalEntries", description="Total entries.")
+    __properties = ["current", "next", "totalEntries"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListFiltersPaginationOutput:
+        """Create an instance of ListFiltersPaginationOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListFiltersPaginationOutput:
+        """Create an instance of ListFiltersPaginationOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListFiltersPaginationOutput.parse_obj(obj)
+
+        _obj = ListFiltersPaginationOutput.parse_obj({
+            "current": obj.get("current"),
+            "next": obj.get("next"),
+            "total_entries": obj.get("totalEntries")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_function_item_v1.py b/segment_public_api/models/list_function_item_v1.py
index e76b60ef4..5057dcbda 100644
--- a/segment_public_api/models/list_function_item_v1.py
+++ b/segment_public_api/models/list_function_item_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -42,8 +42,8 @@ def resource_type_validate_enum(cls, value):
         if value is None:
             return value
 
-        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE'):
-            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'SOURCE')")
+        if value not in ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE'):
+            raise ValueError("must be one of enum values ('DESTINATION', 'INSERT_DESTINATION', 'INSERT_SOURCE', 'SOURCE')")
         return value
 
     class Config:
diff --git a/segment_public_api/models/list_function_versions200_response.py b/segment_public_api/models/list_function_versions200_response.py
index 065a38746..04dc3aff8 100644
--- a/segment_public_api/models/list_function_versions200_response.py
+++ b/segment_public_api/models/list_function_versions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_function_versions_alpha_output.py b/segment_public_api/models/list_function_versions_alpha_output.py
index 9d1733547..3986f0924 100644
--- a/segment_public_api/models/list_function_versions_alpha_output.py
+++ b/segment_public_api/models/list_function_versions_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_functions200_response.py b/segment_public_api/models/list_functions200_response.py
index b949f1870..79700f12a 100644
--- a/segment_public_api/models/list_functions200_response.py
+++ b/segment_public_api/models/list_functions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_functions_v1_output.py b/segment_public_api/models/list_functions_v1_output.py
index f06d9b619..4575f6f77 100644
--- a/segment_public_api/models/list_functions_v1_output.py
+++ b/segment_public_api/models/list_functions_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_insert_function_instances200_response.py b/segment_public_api/models/list_insert_function_instances200_response.py
index a9123ce6b..91aa6ee4d 100644
--- a/segment_public_api/models/list_insert_function_instances200_response.py
+++ b/segment_public_api/models/list_insert_function_instances200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_insert_function_instances_alpha_output.py b/segment_public_api/models/list_insert_function_instances_alpha_output.py
index 8f73375ba..bacbcc4e8 100644
--- a/segment_public_api/models/list_insert_function_instances_alpha_output.py
+++ b/segment_public_api/models/list_insert_function_instances_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_invites200_response.py b/segment_public_api/models/list_invites200_response.py
index 3125d01a5..49cc2684f 100644
--- a/segment_public_api/models/list_invites200_response.py
+++ b/segment_public_api/models/list_invites200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_invites_from_user_group200_response.py b/segment_public_api/models/list_invites_from_user_group200_response.py
index 3ef8c5ea8..04564324f 100644
--- a/segment_public_api/models/list_invites_from_user_group200_response.py
+++ b/segment_public_api/models/list_invites_from_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_invites_from_user_group_v1_output.py b/segment_public_api/models/list_invites_from_user_group_v1_output.py
index e2a1661e0..90ab6835b 100644
--- a/segment_public_api/models/list_invites_from_user_group_v1_output.py
+++ b/segment_public_api/models/list_invites_from_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_invites_v1_output.py b/segment_public_api/models/list_invites_v1_output.py
index 8581a1c7d..81134ecde 100644
--- a/segment_public_api/models/list_invites_v1_output.py
+++ b/segment_public_api/models/list_invites_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_labels200_response.py b/segment_public_api/models/list_labels200_response.py
index f1865ea86..caef8d2f8 100644
--- a/segment_public_api/models/list_labels200_response.py
+++ b/segment_public_api/models/list_labels200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_labels200_response1.py b/segment_public_api/models/list_labels200_response1.py
index af3799549..b6a9657f3 100644
--- a/segment_public_api/models/list_labels200_response1.py
+++ b/segment_public_api/models/list_labels200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_labels_alpha_output.py b/segment_public_api/models/list_labels_alpha_output.py
index 667b43410..e8c5f0d52 100644
--- a/segment_public_api/models/list_labels_alpha_output.py
+++ b/segment_public_api/models/list_labels_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_labels_v1_output.py b/segment_public_api/models/list_labels_v1_output.py
index 8a1036e21..0b01989c6 100644
--- a/segment_public_api/models/list_labels_v1_output.py
+++ b/segment_public_api/models/list_labels_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_profiles_warehouse_in_space200_response.py b/segment_public_api/models/list_profiles_warehouse_in_space200_response.py
index da8e0549a..bea996197 100644
--- a/segment_public_api/models/list_profiles_warehouse_in_space200_response.py
+++ b/segment_public_api/models/list_profiles_warehouse_in_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_profiles_warehouse_in_space_alpha_output.py b/segment_public_api/models/list_profiles_warehouse_in_space_alpha_output.py
index 8fb3e19e5..10cca17e2 100644
--- a/segment_public_api/models/list_profiles_warehouse_in_space_alpha_output.py
+++ b/segment_public_api/models/list_profiles_warehouse_in_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_regulations_from_source200_response.py b/segment_public_api/models/list_regulations_from_source200_response.py
index ab70d5416..021c20007 100644
--- a/segment_public_api/models/list_regulations_from_source200_response.py
+++ b/segment_public_api/models/list_regulations_from_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_regulations_from_source_v1_output.py b/segment_public_api/models/list_regulations_from_source_v1_output.py
index 9ce6ca09a..85c4e2228 100644
--- a/segment_public_api/models/list_regulations_from_source_v1_output.py
+++ b/segment_public_api/models/list_regulations_from_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_reverse_etl_models200_response.py b/segment_public_api/models/list_reverse_etl_models200_response.py
index 80cf290d3..de8b7f54b 100644
--- a/segment_public_api/models/list_reverse_etl_models200_response.py
+++ b/segment_public_api/models/list_reverse_etl_models200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_reverse_etl_models_output.py b/segment_public_api/models/list_reverse_etl_models_output.py
index 9286bca6f..90318f994 100644
--- a/segment_public_api/models/list_reverse_etl_models_output.py
+++ b/segment_public_api/models/list_reverse_etl_models_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response.py b/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response.py
new file mode 100644
index 000000000..d4de566c6
--- /dev/null
+++ b/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_reverse_etl_sync_statuses_from_model_and_subscription_id_output import ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput
+
+class ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response(BaseModel):
+    """
+    ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response
+    """
+    data: Optional[ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response:
+        """Create an instance of ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response:
+        """Create an instance of ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response.parse_obj(obj)
+
+        _obj = ListReverseETLSyncStatusesFromModelAndSubscriptionId200Response.parse_obj({
+            "data": ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id_output.py b/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id_output.py
new file mode 100644
index 000000000..fea7e1b5a
--- /dev/null
+++ b/segment_public_api/models/list_reverse_etl_sync_statuses_from_model_and_subscription_id_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.pagination_output import PaginationOutput
+from segment_public_api.models.reverse_etl_sync_status import ReverseETLSyncStatus
+
+class ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput(BaseModel):
+    """
+    The reverse ETL sync statuses that were looked up.  # noqa: E501
+    """
+    sync_statuses: conlist(ReverseETLSyncStatus) = Field(..., alias="syncStatuses", description="The reverse ETL sync statuses that were looked up of the subscription id.")
+    pagination: Optional[PaginationOutput] = None
+    __properties = ["syncStatuses", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput:
+        """Create an instance of ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in sync_statuses (list)
+        _items = []
+        if self.sync_statuses:
+            for _item in self.sync_statuses:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['syncStatuses'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput:
+        """Create an instance of ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput.parse_obj(obj)
+
+        _obj = ListReverseETLSyncStatusesFromModelAndSubscriptionIdOutput.parse_obj({
+            "sync_statuses": [ReverseETLSyncStatus.from_dict(_item) for _item in obj.get("syncStatuses")] if obj.get("syncStatuses") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_roles200_response.py b/segment_public_api/models/list_roles200_response.py
index 8d0d32244..85bf86053 100644
--- a/segment_public_api/models/list_roles200_response.py
+++ b/segment_public_api/models/list_roles200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_roles_v1_output.py b/segment_public_api/models/list_roles_v1_output.py
index 9a36cc2f8..f69d9af00 100644
--- a/segment_public_api/models/list_roles_v1_output.py
+++ b/segment_public_api/models/list_roles_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_rules_from_tracking_plan200_response.py b/segment_public_api/models/list_rules_from_tracking_plan200_response.py
index 3d02c8abb..e1e8092c1 100644
--- a/segment_public_api/models/list_rules_from_tracking_plan200_response.py
+++ b/segment_public_api/models/list_rules_from_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_rules_from_tracking_plan_v1_output.py b/segment_public_api/models/list_rules_from_tracking_plan_v1_output.py
index 63c1b6c46..358de76f9 100644
--- a/segment_public_api/models/list_rules_from_tracking_plan_v1_output.py
+++ b/segment_public_api/models/list_rules_from_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_schema_settings_in_source200_response.py b/segment_public_api/models/list_schema_settings_in_source200_response.py
index 9fb1e7d29..3df494016 100644
--- a/segment_public_api/models/list_schema_settings_in_source200_response.py
+++ b/segment_public_api/models/list_schema_settings_in_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_schema_settings_in_source_v1_output.py b/segment_public_api/models/list_schema_settings_in_source_v1_output.py
index 7e6b941f5..fcb3aeecc 100644
--- a/segment_public_api/models/list_schema_settings_in_source_v1_output.py
+++ b/segment_public_api/models/list_schema_settings_in_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_selective_syncs_from_warehouse_and_source200_response.py b/segment_public_api/models/list_selective_syncs_from_warehouse_and_source200_response.py
index e15f2cf12..61ba0f3f4 100644
--- a/segment_public_api/models/list_selective_syncs_from_warehouse_and_source200_response.py
+++ b/segment_public_api/models/list_selective_syncs_from_warehouse_and_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_selective_syncs_from_warehouse_and_source_v1_output.py b/segment_public_api/models/list_selective_syncs_from_warehouse_and_source_v1_output.py
index 00eb05639..5ca600ebf 100644
--- a/segment_public_api/models/list_selective_syncs_from_warehouse_and_source_v1_output.py
+++ b/segment_public_api/models/list_selective_syncs_from_warehouse_and_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_selective_syncs_from_warehouse_and_space200_response.py b/segment_public_api/models/list_selective_syncs_from_warehouse_and_space200_response.py
index 0ec614199..d3d59a6fb 100644
--- a/segment_public_api/models/list_selective_syncs_from_warehouse_and_space200_response.py
+++ b/segment_public_api/models/list_selective_syncs_from_warehouse_and_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_selective_syncs_from_warehouse_and_space_alpha_output.py b/segment_public_api/models/list_selective_syncs_from_warehouse_and_space_alpha_output.py
index 3b621c887..7607e58e3 100644
--- a/segment_public_api/models/list_selective_syncs_from_warehouse_and_space_alpha_output.py
+++ b/segment_public_api/models/list_selective_syncs_from_warehouse_and_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources200_response.py b/segment_public_api/models/list_sources200_response.py
index c223f90b7..5a3f10273 100644
--- a/segment_public_api/models/list_sources200_response.py
+++ b/segment_public_api/models/list_sources200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources200_response1.py b/segment_public_api/models/list_sources200_response1.py
index 6b81afd81..ba03056e3 100644
--- a/segment_public_api/models/list_sources200_response1.py
+++ b/segment_public_api/models/list_sources200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources_alpha_output.py b/segment_public_api/models/list_sources_alpha_output.py
index e0ef4101a..d0514a2e4 100644
--- a/segment_public_api/models/list_sources_alpha_output.py
+++ b/segment_public_api/models/list_sources_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources_from_tracking_plan200_response.py b/segment_public_api/models/list_sources_from_tracking_plan200_response.py
index 1b937ad3f..938ac7def 100644
--- a/segment_public_api/models/list_sources_from_tracking_plan200_response.py
+++ b/segment_public_api/models/list_sources_from_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources_from_tracking_plan_v1_output.py b/segment_public_api/models/list_sources_from_tracking_plan_v1_output.py
index d8cdef790..d62978677 100644
--- a/segment_public_api/models/list_sources_from_tracking_plan_v1_output.py
+++ b/segment_public_api/models/list_sources_from_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_sources_v1_output.py b/segment_public_api/models/list_sources_v1_output.py
index a52e03e5b..934ac30c2 100644
--- a/segment_public_api/models/list_sources_v1_output.py
+++ b/segment_public_api/models/list_sources_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_spaces200_response.py b/segment_public_api/models/list_spaces200_response.py
new file mode 100644
index 000000000..aa8c61328
--- /dev/null
+++ b/segment_public_api/models/list_spaces200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.list_spaces_alpha_output import ListSpacesAlphaOutput
+
+class ListSpaces200Response(BaseModel):
+    """
+    ListSpaces200Response
+    """
+    data: Optional[ListSpacesAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListSpaces200Response:
+        """Create an instance of ListSpaces200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListSpaces200Response:
+        """Create an instance of ListSpaces200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListSpaces200Response.parse_obj(obj)
+
+        _obj = ListSpaces200Response.parse_obj({
+            "data": ListSpacesAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_spaces_alpha_output.py b/segment_public_api/models/list_spaces_alpha_output.py
new file mode 100644
index 000000000..8f20417f8
--- /dev/null
+++ b/segment_public_api/models/list_spaces_alpha_output.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List
+from pydantic import BaseModel, Field, conlist
+from segment_public_api.models.pagination_output import PaginationOutput
+from segment_public_api.models.space import Space
+
+class ListSpacesAlphaOutput(BaseModel):
+    """
+    Response for the list spaces endpoint.  # noqa: E501
+    """
+    spaces: conlist(Space) = Field(..., description="A list of spaces.")
+    pagination: PaginationOutput = Field(...)
+    __properties = ["spaces", "pagination"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ListSpacesAlphaOutput:
+        """Create an instance of ListSpacesAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of each item in spaces (list)
+        _items = []
+        if self.spaces:
+            for _item in self.spaces:
+                if _item:
+                    _items.append(_item.to_dict())
+            _dict['spaces'] = _items
+        # override the default output from pydantic by calling `to_dict()` of pagination
+        if self.pagination:
+            _dict['pagination'] = self.pagination.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ListSpacesAlphaOutput:
+        """Create an instance of ListSpacesAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ListSpacesAlphaOutput.parse_obj(obj)
+
+        _obj = ListSpacesAlphaOutput.parse_obj({
+            "spaces": [Space.from_dict(_item) for _item in obj.get("spaces")] if obj.get("spaces") is not None else None,
+            "pagination": PaginationOutput.from_dict(obj.get("pagination")) if obj.get("pagination") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/list_subscriptions_from_destination200_response.py b/segment_public_api/models/list_subscriptions_from_destination200_response.py
index a4de3b63d..30c6f1799 100644
--- a/segment_public_api/models/list_subscriptions_from_destination200_response.py
+++ b/segment_public_api/models/list_subscriptions_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_subscriptions_from_destination_alpha_output.py b/segment_public_api/models/list_subscriptions_from_destination_alpha_output.py
index 5e59a337c..24a025c91 100644
--- a/segment_public_api/models/list_subscriptions_from_destination_alpha_output.py
+++ b/segment_public_api/models/list_subscriptions_from_destination_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_suppressions200_response.py b/segment_public_api/models/list_suppressions200_response.py
index 1fbd05b05..4ef1ed23e 100644
--- a/segment_public_api/models/list_suppressions200_response.py
+++ b/segment_public_api/models/list_suppressions200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_suppressions_v1_output.py b/segment_public_api/models/list_suppressions_v1_output.py
index 080dc3c21..d3acfd028 100644
--- a/segment_public_api/models/list_suppressions_v1_output.py
+++ b/segment_public_api/models/list_suppressions_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_syncs_from_warehouse200_response.py b/segment_public_api/models/list_syncs_from_warehouse200_response.py
index 160e14e23..c789fac27 100644
--- a/segment_public_api/models/list_syncs_from_warehouse200_response.py
+++ b/segment_public_api/models/list_syncs_from_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_syncs_from_warehouse_and_source200_response.py b/segment_public_api/models/list_syncs_from_warehouse_and_source200_response.py
index 7b0ba6a9a..633a88090 100644
--- a/segment_public_api/models/list_syncs_from_warehouse_and_source200_response.py
+++ b/segment_public_api/models/list_syncs_from_warehouse_and_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_syncs_from_warehouse_and_source_v1_output.py b/segment_public_api/models/list_syncs_from_warehouse_and_source_v1_output.py
index b0ba34374..92c1d4060 100644
--- a/segment_public_api/models/list_syncs_from_warehouse_and_source_v1_output.py
+++ b/segment_public_api/models/list_syncs_from_warehouse_and_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_syncs_from_warehouse_v1_output.py b/segment_public_api/models/list_syncs_from_warehouse_v1_output.py
index e8cccfb89..3006ed41c 100644
--- a/segment_public_api/models/list_syncs_from_warehouse_v1_output.py
+++ b/segment_public_api/models/list_syncs_from_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_tracking_plans200_response.py b/segment_public_api/models/list_tracking_plans200_response.py
index 89e73a9bd..0232e713a 100644
--- a/segment_public_api/models/list_tracking_plans200_response.py
+++ b/segment_public_api/models/list_tracking_plans200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_tracking_plans_v1_output.py b/segment_public_api/models/list_tracking_plans_v1_output.py
index 69d7a9f24..534f40f77 100644
--- a/segment_public_api/models/list_tracking_plans_v1_output.py
+++ b/segment_public_api/models/list_tracking_plans_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_transformations200_response.py b/segment_public_api/models/list_transformations200_response.py
index 855293bfc..76fa138f6 100644
--- a/segment_public_api/models/list_transformations200_response.py
+++ b/segment_public_api/models/list_transformations200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_transformations_beta_input.py b/segment_public_api/models/list_transformations_beta_input.py
index 7553ab566..c7b38374b 100644
--- a/segment_public_api/models/list_transformations_beta_input.py
+++ b/segment_public_api/models/list_transformations_beta_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,15 +19,15 @@
 import json
 
 
-
-from pydantic import BaseModel, Field
+from typing import Optional
+from pydantic import BaseModel
 from segment_public_api.models.pagination_input import PaginationInput
 
 class ListTransformationsBetaInput(BaseModel):
     """
     Lists the Transformations associated with the current Workspace.  # noqa: E501
     """
-    pagination: PaginationInput = Field(...)
+    pagination: Optional[PaginationInput] = None
     __properties = ["pagination"]
 
     class Config:
diff --git a/segment_public_api/models/list_transformations_beta_output.py b/segment_public_api/models/list_transformations_beta_output.py
index 7defce3e4..dec43e5be 100644
--- a/segment_public_api/models/list_transformations_beta_output.py
+++ b/segment_public_api/models/list_transformations_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_transformations_v1_output.py b/segment_public_api/models/list_transformations_v1_output.py
index 44ff7de63..75e59277f 100644
--- a/segment_public_api/models/list_transformations_v1_output.py
+++ b/segment_public_api/models/list_transformations_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_user_groups200_response.py b/segment_public_api/models/list_user_groups200_response.py
index 35283bc37..b3310b8fa 100644
--- a/segment_public_api/models/list_user_groups200_response.py
+++ b/segment_public_api/models/list_user_groups200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_user_groups_from_user200_response.py b/segment_public_api/models/list_user_groups_from_user200_response.py
index 99f0e5679..2fa5f5bb5 100644
--- a/segment_public_api/models/list_user_groups_from_user200_response.py
+++ b/segment_public_api/models/list_user_groups_from_user200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_user_groups_from_user_v1_output.py b/segment_public_api/models/list_user_groups_from_user_v1_output.py
index b7df2e921..899305ca3 100644
--- a/segment_public_api/models/list_user_groups_from_user_v1_output.py
+++ b/segment_public_api/models/list_user_groups_from_user_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_user_groups_v1_output.py b/segment_public_api/models/list_user_groups_v1_output.py
index 077707294..8a287c564 100644
--- a/segment_public_api/models/list_user_groups_v1_output.py
+++ b/segment_public_api/models/list_user_groups_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_users200_response.py b/segment_public_api/models/list_users200_response.py
index 9ff2e04ee..3e32ad291 100644
--- a/segment_public_api/models/list_users200_response.py
+++ b/segment_public_api/models/list_users200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_users_from_user_group200_response.py b/segment_public_api/models/list_users_from_user_group200_response.py
index 1303cad73..d2490c392 100644
--- a/segment_public_api/models/list_users_from_user_group200_response.py
+++ b/segment_public_api/models/list_users_from_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_users_from_user_group_v1_output.py b/segment_public_api/models/list_users_from_user_group_v1_output.py
index 88490b984..cd4b939ea 100644
--- a/segment_public_api/models/list_users_from_user_group_v1_output.py
+++ b/segment_public_api/models/list_users_from_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_users_v1_output.py b/segment_public_api/models/list_users_v1_output.py
index 8ffdab8c4..7a01a8f1e 100644
--- a/segment_public_api/models/list_users_v1_output.py
+++ b/segment_public_api/models/list_users_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_warehouses200_response.py b/segment_public_api/models/list_warehouses200_response.py
index 518f42778..64abf1cc6 100644
--- a/segment_public_api/models/list_warehouses200_response.py
+++ b/segment_public_api/models/list_warehouses200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_warehouses_v1_output.py b/segment_public_api/models/list_warehouses_v1_output.py
index f1c965ec3..949d1dd0e 100644
--- a/segment_public_api/models/list_warehouses_v1_output.py
+++ b/segment_public_api/models/list_warehouses_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_workspace_regulations200_response.py b/segment_public_api/models/list_workspace_regulations200_response.py
index 16076a572..794eb1459 100644
--- a/segment_public_api/models/list_workspace_regulations200_response.py
+++ b/segment_public_api/models/list_workspace_regulations200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/list_workspace_regulations_v1_output.py b/segment_public_api/models/list_workspace_regulations_v1_output.py
index 463aa3d6b..4a92c6375 100644
--- a/segment_public_api/models/list_workspace_regulations_v1_output.py
+++ b/segment_public_api/models/list_workspace_regulations_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/logos_beta.py b/segment_public_api/models/logos_beta.py
index 75d277161..38820aec0 100644
--- a/segment_public_api/models/logos_beta.py
+++ b/segment_public_api/models/logos_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/message_subscription_response.py b/segment_public_api/models/message_subscription_response.py
index 163131962..0288d6002 100644
--- a/segment_public_api/models/message_subscription_response.py
+++ b/segment_public_api/models/message_subscription_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/message_subscription_response_error.py b/segment_public_api/models/message_subscription_response_error.py
index bc9667f1c..06770ffd9 100644
--- a/segment_public_api/models/message_subscription_response_error.py
+++ b/segment_public_api/models/message_subscription_response_error.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/messages_subscription_request.py b/segment_public_api/models/messages_subscription_request.py
index 899bac95f..9eedbfd73 100644
--- a/segment_public_api/models/messages_subscription_request.py
+++ b/segment_public_api/models/messages_subscription_request.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/metric_beta.py b/segment_public_api/models/metric_beta.py
index b90b8640c..0614a31a4 100644
--- a/segment_public_api/models/metric_beta.py
+++ b/segment_public_api/models/metric_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/minimal_user_group_v1.py b/segment_public_api/models/minimal_user_group_v1.py
index 44617cb87..bdc7fbb5b 100644
--- a/segment_public_api/models/minimal_user_group_v1.py
+++ b/segment_public_api/models/minimal_user_group_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/minimal_user_v1.py b/segment_public_api/models/minimal_user_v1.py
index 049b7955d..c84a75c35 100644
--- a/segment_public_api/models/minimal_user_v1.py
+++ b/segment_public_api/models/minimal_user_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/mtu_snapshot_v1.py b/segment_public_api/models/mtu_snapshot_v1.py
index 235e51a97..17dc753fb 100644
--- a/segment_public_api/models/mtu_snapshot_v1.py
+++ b/segment_public_api/models/mtu_snapshot_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/pagination_input.py b/segment_public_api/models/pagination_input.py
index 931a25cf0..e92d2a5e0 100644
--- a/segment_public_api/models/pagination_input.py
+++ b/segment_public_api/models/pagination_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,15 +19,15 @@
 import json
 
 
-from typing import Optional, Union
-from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr
+from typing import Optional
+from pydantic import BaseModel, Field, StrictInt, StrictStr
 
 class PaginationInput(BaseModel):
     """
     Pagination parameters.  Every resource that returns a list of items in its `Output` object may contain a `PaginationInput` in its `Input` object. Required, though some of its fields are optional.  # noqa: E501
     """
     cursor: Optional[StrictStr] = Field(None, description="The page to request.  Acceptable values to use here are in PaginationOutput objects, in the `current`, `next`, and `previous` keys.  Consumers of the API must treat this value as opaque.")
-    count: Union[StrictFloat, StrictInt] = Field(..., description="The number of items to retrieve in a page, between 1 and 200.")
+    count: StrictInt = Field(..., description="The number of items to retrieve in a page, between 1 and 1000.")
     __properties = ["cursor", "count"]
 
     class Config:
diff --git a/segment_public_api/models/pagination_output.py b/segment_public_api/models/pagination_output.py
index 8ebf31411..ab51d4bd3 100644
--- a/segment_public_api/models/pagination_output.py
+++ b/segment_public_api/models/pagination_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/periodic_config.py b/segment_public_api/models/periodic_config.py
new file mode 100644
index 000000000..3432eca24
--- /dev/null
+++ b/segment_public_api/models/periodic_config.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class PeriodicConfig(BaseModel):
+    """
+    Configures a periodic schedule interval.  # noqa: E501
+    """
+    interval: StrictStr = Field(..., description="Go duration format string, only supporting units \"day\" (days), \"h\" (hours) and \"m\" (minutes).")
+    __properties = ["interval"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> PeriodicConfig:
+        """Create an instance of PeriodicConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> PeriodicConfig:
+        """Create an instance of PeriodicConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return PeriodicConfig.parse_obj(obj)
+
+        _obj = PeriodicConfig.parse_obj({
+            "interval": obj.get("interval")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/permission_input_v1.py b/segment_public_api/models/permission_input_v1.py
index 76b569756..51e73e7ac 100644
--- a/segment_public_api/models/permission_input_v1.py
+++ b/segment_public_api/models/permission_input_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/permission_resource_v1.py b/segment_public_api/models/permission_resource_v1.py
index 000c80419..ce08cbbca 100644
--- a/segment_public_api/models/permission_resource_v1.py
+++ b/segment_public_api/models/permission_resource_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/permission_v1.py b/segment_public_api/models/permission_v1.py
index 729a58c8a..80a6e63bb 100644
--- a/segment_public_api/models/permission_v1.py
+++ b/segment_public_api/models/permission_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/preview_destination_filter200_response.py b/segment_public_api/models/preview_destination_filter200_response.py
index 85d27e868..e6b248ff3 100644
--- a/segment_public_api/models/preview_destination_filter200_response.py
+++ b/segment_public_api/models/preview_destination_filter200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/preview_destination_filter_v1.py b/segment_public_api/models/preview_destination_filter_v1.py
index 5b838be48..0aa3f1f22 100644
--- a/segment_public_api/models/preview_destination_filter_v1.py
+++ b/segment_public_api/models/preview_destination_filter_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/preview_destination_filter_v1_input.py b/segment_public_api/models/preview_destination_filter_v1_input.py
index 5bc73117c..0af2bd85d 100644
--- a/segment_public_api/models/preview_destination_filter_v1_input.py
+++ b/segment_public_api/models/preview_destination_filter_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/preview_destination_filter_v1_output.py b/segment_public_api/models/preview_destination_filter_v1_output.py
index 7ed30f2a2..14fc7de16 100644
--- a/segment_public_api/models/preview_destination_filter_v1_output.py
+++ b/segment_public_api/models/preview_destination_filter_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/profile.py b/segment_public_api/models/profile.py
new file mode 100644
index 000000000..c935071f8
--- /dev/null
+++ b/segment_public_api/models/profile.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class Profile(BaseModel):
+    """
+    Profile
+    """
+    id: StrictStr = Field(..., description="The id of the profile.")
+    __properties = ["id"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> Profile:
+        """Create an instance of Profile from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> Profile:
+        """Create an instance of Profile from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return Profile.parse_obj(obj)
+
+        _obj = Profile.parse_obj({
+            "id": obj.get("id")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/profiles_warehouse_alpha.py b/segment_public_api/models/profiles_warehouse_alpha.py
index 28987a108..eb483468d 100644
--- a/segment_public_api/models/profiles_warehouse_alpha.py
+++ b/segment_public_api/models/profiles_warehouse_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/property_rename_beta.py b/segment_public_api/models/property_rename_beta.py
index 831cd3099..4f44199bc 100644
--- a/segment_public_api/models/property_rename_beta.py
+++ b/segment_public_api/models/property_rename_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/property_rename_v1.py b/segment_public_api/models/property_rename_v1.py
index d25f21140..1b0a1005a 100644
--- a/segment_public_api/models/property_rename_v1.py
+++ b/segment_public_api/models/property_rename_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/property_value_transformation_beta.py b/segment_public_api/models/property_value_transformation_beta.py
index 1cee1e9c7..d5a10437c 100644
--- a/segment_public_api/models/property_value_transformation_beta.py
+++ b/segment_public_api/models/property_value_transformation_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/property_value_transformation_v1.py b/segment_public_api/models/property_value_transformation_v1.py
index 1c58c09c2..ce06271f0 100644
--- a/segment_public_api/models/property_value_transformation_v1.py
+++ b/segment_public_api/models/property_value_transformation_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/read_audience_preview_options.py b/segment_public_api/models/read_audience_preview_options.py
new file mode 100644
index 000000000..01ebe91a3
--- /dev/null
+++ b/segment_public_api/models/read_audience_preview_options.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Optional, Union
+from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist
+
+class ReadAudiencePreviewOptions(BaseModel):
+    """
+    Options which should be applied when segmenting audience previews.  # noqa: E501
+    """
+    filter_by_external_ids: conlist(StrictStr) = Field(..., alias="filterByExternalIds", description="The set of profile external identifiers being used to determine audience preview membership. Profiles will only be considered for audience preview membership if the profile has at least one external id whose key matches a value in this set.")
+    include_historical_data: StrictBool = Field(..., alias="includeHistoricalData", description="Determines whether data prior to the audience preview being created is included when determining audience preview membership. Note that including historical data may be needed in order to properly handle the definition specified. In these cases, Segment will automatically handle including historical data and the response will return the includeHistoricalData parameter as true.")
+    backfill_event_data_days: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="backfillEventDataDays", description="If specified, the value of this field indicates the number of days (specified from the date the audience preview was created) that event data will be included from when determining audience preview membership. If unspecified, defer to the value of `includeHistoricalData` to determine whether historical data is either entirely included or entirely excluded when determining audience preview membership.")
+    __properties = ["filterByExternalIds", "includeHistoricalData", "backfillEventDataDays"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReadAudiencePreviewOptions:
+        """Create an instance of ReadAudiencePreviewOptions from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReadAudiencePreviewOptions:
+        """Create an instance of ReadAudiencePreviewOptions from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReadAudiencePreviewOptions.parse_obj(obj)
+
+        _obj = ReadAudiencePreviewOptions.parse_obj({
+            "filter_by_external_ids": obj.get("filterByExternalIds"),
+            "include_historical_data": obj.get("includeHistoricalData"),
+            "backfill_event_data_days": obj.get("backfillEventDataDays")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/regulation.py b/segment_public_api/models/regulation.py
index c5aea0164..56f8ad339 100644
--- a/segment_public_api/models/regulation.py
+++ b/segment_public_api/models/regulation.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,7 +19,7 @@
 import json
 
 
-from typing import List
+from typing import List, Optional
 from pydantic import BaseModel, Field, StrictStr, conlist, validator
 from segment_public_api.models.stream_status_v1 import StreamStatusV1
 
@@ -30,7 +30,7 @@ class Regulation(BaseModel):
     id: StrictStr = Field(..., description="The id of the regulate request.")
     workspace_id: StrictStr = Field(..., alias="workspaceId", description="The id of the Workspace that the regulate request belongs to.")
     overall_status: StrictStr = Field(..., alias="overallStatus", description="The current status of the regulate request.")
-    finished_at: StrictStr = Field(..., alias="finishedAt", description="The timestamp of when the request finished.")
+    finished_at: Optional[StrictStr] = Field(None, alias="finishedAt", description="The timestamp of when the request finished.")
     created_at: StrictStr = Field(..., alias="createdAt", description="The timestamp of the creation of the request.")
     stream_status: conlist(StreamStatusV1) = Field(..., alias="streamStatus", description="The status of each stream including all the Destinations that correspond to the stream.")
     __properties = ["id", "workspaceId", "overallStatus", "finishedAt", "createdAt", "streamStatus"]
diff --git a/segment_public_api/models/regulation_list_entry_v1.py b/segment_public_api/models/regulation_list_entry_v1.py
index 07ce3ae68..50852815d 100644
--- a/segment_public_api/models/regulation_list_entry_v1.py
+++ b/segment_public_api/models/regulation_list_entry_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -26,13 +26,14 @@ class RegulationListEntryV1(BaseModel):
     """
     RegulationListEntryV1
     """
-    id: StrictStr = Field(...)
-    subject_type: StrictStr = Field(..., alias="subjectType")
-    subjects: conlist(StrictStr) = Field(...)
-    status: StrictStr = Field(...)
-    created_at: StrictStr = Field(..., alias="createdAt")
-    finished_at: Optional[StrictStr] = Field(None, alias="finishedAt")
-    __properties = ["id", "subjectType", "subjects", "status", "createdAt", "finishedAt"]
+    id: StrictStr = Field(..., description="The id of the regulate request.")
+    subject_type: StrictStr = Field(..., alias="subjectType", description="The subject type.")
+    subjects: conlist(StrictStr) = Field(..., description="The list of `userId` or `objectId` values of the subjects to regulate.")
+    status: StrictStr = Field(..., description="The current status of the regulate request.")
+    created_at: StrictStr = Field(..., alias="createdAt", description="The timestamp of the creation of the request.")
+    regulation_type: StrictStr = Field(..., alias="regulationType", description="The regulation type.")
+    finished_at: Optional[StrictStr] = Field(None, alias="finishedAt", description="The timestamp of when the request finished.")
+    __properties = ["id", "subjectType", "subjects", "status", "createdAt", "regulationType", "finishedAt"]
 
     @validator('status')
     def status_validate_enum(cls, value):
@@ -41,6 +42,13 @@ def status_validate_enum(cls, value):
             raise ValueError("must be one of enum values ('FAILED', 'FINISHED', 'INITIALIZED', 'INVALID', 'NOT_SUPPORTED', 'PARTIAL_SUCCESS', 'RUNNING')")
         return value
 
+    @validator('regulation_type')
+    def regulation_type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('DELETE_ARCHIVE_ONLY', 'DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS'):
+            raise ValueError("must be one of enum values ('DELETE_ARCHIVE_ONLY', 'DELETE_INTERNAL', 'DELETE_ONLY', 'SUPPRESS_ONLY', 'SUPPRESS_WITH_DELETE', 'SUPPRESS_WITH_DELETE_INTERNAL', 'UNSUPPRESS')")
+        return value
+
     class Config:
         """Pydantic configuration"""
         allow_population_by_field_name = True
@@ -82,6 +90,7 @@ def from_dict(cls, obj: dict) -> RegulationListEntryV1:
             "subjects": obj.get("subjects"),
             "status": obj.get("status"),
             "created_at": obj.get("createdAt"),
+            "regulation_type": obj.get("regulationType"),
             "finished_at": obj.get("finishedAt")
         })
         return _obj
diff --git a/segment_public_api/models/remove_activation_from_audience200_response.py b/segment_public_api/models/remove_activation_from_audience200_response.py
new file mode 100644
index 000000000..8d4b24449
--- /dev/null
+++ b/segment_public_api/models/remove_activation_from_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.remove_activation_from_audience_output import RemoveActivationFromAudienceOutput
+
+class RemoveActivationFromAudience200Response(BaseModel):
+    """
+    RemoveActivationFromAudience200Response
+    """
+    data: Optional[RemoveActivationFromAudienceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> RemoveActivationFromAudience200Response:
+        """Create an instance of RemoveActivationFromAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> RemoveActivationFromAudience200Response:
+        """Create an instance of RemoveActivationFromAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return RemoveActivationFromAudience200Response.parse_obj(obj)
+
+        _obj = RemoveActivationFromAudience200Response.parse_obj({
+            "data": RemoveActivationFromAudienceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/remove_activation_from_audience_output.py b/segment_public_api/models/remove_activation_from_audience_output.py
new file mode 100644
index 000000000..4f83a96a6
--- /dev/null
+++ b/segment_public_api/models/remove_activation_from_audience_output.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class RemoveActivationFromAudienceOutput(BaseModel):
+    """
+    Output for removing an activation from audience.  # noqa: E501
+    """
+    status: StrictStr = Field(..., description="Deletion status.")
+    __properties = ["status"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> RemoveActivationFromAudienceOutput:
+        """Create an instance of RemoveActivationFromAudienceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> RemoveActivationFromAudienceOutput:
+        """Create an instance of RemoveActivationFromAudienceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return RemoveActivationFromAudienceOutput.parse_obj(obj)
+
+        _obj = RemoveActivationFromAudienceOutput.parse_obj({
+            "status": obj.get("status")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/remove_audience_from_space200_response.py b/segment_public_api/models/remove_audience_from_space200_response.py
index 1e4ada052..1d52e3440 100644
--- a/segment_public_api/models/remove_audience_from_space200_response.py
+++ b/segment_public_api/models/remove_audience_from_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_audience_from_space_alpha_output.py b/segment_public_api/models/remove_audience_from_space_alpha_output.py
index 001ae64a5..8fa88804c 100644
--- a/segment_public_api/models/remove_audience_from_space_alpha_output.py
+++ b/segment_public_api/models/remove_audience_from_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_computed_trait_from_space200_response.py b/segment_public_api/models/remove_computed_trait_from_space200_response.py
index b6b5bfe29..bfff70308 100644
--- a/segment_public_api/models/remove_computed_trait_from_space200_response.py
+++ b/segment_public_api/models/remove_computed_trait_from_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_computed_trait_from_space_alpha_output.py b/segment_public_api/models/remove_computed_trait_from_space_alpha_output.py
index 09719b4da..42d0f1ca8 100644
--- a/segment_public_api/models/remove_computed_trait_from_space_alpha_output.py
+++ b/segment_public_api/models/remove_computed_trait_from_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_filter_from_destination200_response.py b/segment_public_api/models/remove_filter_from_destination200_response.py
index 56d6640e5..73de5f4a8 100644
--- a/segment_public_api/models/remove_filter_from_destination200_response.py
+++ b/segment_public_api/models/remove_filter_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_filter_from_destination_v1_output.py b/segment_public_api/models/remove_filter_from_destination_v1_output.py
index bd3dfabf4..48841a8b5 100644
--- a/segment_public_api/models/remove_filter_from_destination_v1_output.py
+++ b/segment_public_api/models/remove_filter_from_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_profiles_warehouse_from_space200_response.py b/segment_public_api/models/remove_profiles_warehouse_from_space200_response.py
index 3900198c4..2ad7864a5 100644
--- a/segment_public_api/models/remove_profiles_warehouse_from_space200_response.py
+++ b/segment_public_api/models/remove_profiles_warehouse_from_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_profiles_warehouse_from_space_alpha_output.py b/segment_public_api/models/remove_profiles_warehouse_from_space_alpha_output.py
index b7321c28a..e59794801 100644
--- a/segment_public_api/models/remove_profiles_warehouse_from_space_alpha_output.py
+++ b/segment_public_api/models/remove_profiles_warehouse_from_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_rule_v1.py b/segment_public_api/models/remove_rule_v1.py
index ad9dbaac9..f4160ac6e 100644
--- a/segment_public_api/models/remove_rule_v1.py
+++ b/segment_public_api/models/remove_rule_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_rules_from_tracking_plan200_response.py b/segment_public_api/models/remove_rules_from_tracking_plan200_response.py
index 413967b1c..87a949c7a 100644
--- a/segment_public_api/models/remove_rules_from_tracking_plan200_response.py
+++ b/segment_public_api/models/remove_rules_from_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_rules_from_tracking_plan_v1_output.py b/segment_public_api/models/remove_rules_from_tracking_plan_v1_output.py
index 2c4625949..51f6ec847 100644
--- a/segment_public_api/models/remove_rules_from_tracking_plan_v1_output.py
+++ b/segment_public_api/models/remove_rules_from_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_source_connection_from_warehouse200_response.py b/segment_public_api/models/remove_source_connection_from_warehouse200_response.py
index d7a3e875c..fabee2ff4 100644
--- a/segment_public_api/models/remove_source_connection_from_warehouse200_response.py
+++ b/segment_public_api/models/remove_source_connection_from_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_source_connection_from_warehouse_v1_output.py b/segment_public_api/models/remove_source_connection_from_warehouse_v1_output.py
index 6f3754819..803e53ead 100644
--- a/segment_public_api/models/remove_source_connection_from_warehouse_v1_output.py
+++ b/segment_public_api/models/remove_source_connection_from_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_source_from_tracking_plan200_response.py b/segment_public_api/models/remove_source_from_tracking_plan200_response.py
index dfd38b320..e3b118f5c 100644
--- a/segment_public_api/models/remove_source_from_tracking_plan200_response.py
+++ b/segment_public_api/models/remove_source_from_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_source_from_tracking_plan_v1_output.py b/segment_public_api/models/remove_source_from_tracking_plan_v1_output.py
index c669b03b9..939789de4 100644
--- a/segment_public_api/models/remove_source_from_tracking_plan_v1_output.py
+++ b/segment_public_api/models/remove_source_from_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_subscription_from_destination200_response.py b/segment_public_api/models/remove_subscription_from_destination200_response.py
index bc515b7f2..1d98cd281 100644
--- a/segment_public_api/models/remove_subscription_from_destination200_response.py
+++ b/segment_public_api/models/remove_subscription_from_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_subscription_from_destination_alpha_output.py b/segment_public_api/models/remove_subscription_from_destination_alpha_output.py
index b86d6cdce..aa01148b1 100644
--- a/segment_public_api/models/remove_subscription_from_destination_alpha_output.py
+++ b/segment_public_api/models/remove_subscription_from_destination_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_users_from_user_group200_response.py b/segment_public_api/models/remove_users_from_user_group200_response.py
index 308b6b90f..6cc75f0a1 100644
--- a/segment_public_api/models/remove_users_from_user_group200_response.py
+++ b/segment_public_api/models/remove_users_from_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_users_from_user_group_v1_output.py b/segment_public_api/models/remove_users_from_user_group_v1_output.py
index 2da4989ff..cabdcb634 100644
--- a/segment_public_api/models/remove_users_from_user_group_v1_output.py
+++ b/segment_public_api/models/remove_users_from_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/remove_write_key_from_source200_response.py b/segment_public_api/models/remove_write_key_from_source200_response.py
new file mode 100644
index 000000000..fc247bebe
--- /dev/null
+++ b/segment_public_api/models/remove_write_key_from_source200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.remove_write_key_from_source_alpha_output import RemoveWriteKeyFromSourceAlphaOutput
+
+class RemoveWriteKeyFromSource200Response(BaseModel):
+    """
+    RemoveWriteKeyFromSource200Response
+    """
+    data: Optional[RemoveWriteKeyFromSourceAlphaOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> RemoveWriteKeyFromSource200Response:
+        """Create an instance of RemoveWriteKeyFromSource200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> RemoveWriteKeyFromSource200Response:
+        """Create an instance of RemoveWriteKeyFromSource200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return RemoveWriteKeyFromSource200Response.parse_obj(obj)
+
+        _obj = RemoveWriteKeyFromSource200Response.parse_obj({
+            "data": RemoveWriteKeyFromSourceAlphaOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/remove_write_key_from_source_alpha_output.py b/segment_public_api/models/remove_write_key_from_source_alpha_output.py
new file mode 100644
index 000000000..29aef3007
--- /dev/null
+++ b/segment_public_api/models/remove_write_key_from_source_alpha_output.py
@@ -0,0 +1,79 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class RemoveWriteKeyFromSourceAlphaOutput(BaseModel):
+    """
+    Returns the updated Source.  # noqa: E501
+    """
+    status: StrictStr = Field(..., description="The status of the operation.")
+    __properties = ["status"]
+
+    @validator('status')
+    def status_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('SUCCESS'):
+            raise ValueError("must be one of enum values ('SUCCESS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> RemoveWriteKeyFromSourceAlphaOutput:
+        """Create an instance of RemoveWriteKeyFromSourceAlphaOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> RemoveWriteKeyFromSourceAlphaOutput:
+        """Create an instance of RemoveWriteKeyFromSourceAlphaOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return RemoveWriteKeyFromSourceAlphaOutput.parse_obj(obj)
+
+        _obj = RemoveWriteKeyFromSourceAlphaOutput.parse_obj({
+            "status": obj.get("status")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse200_response.py b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse200_response.py
index 0a90d7f12..5740883dc 100644
--- a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse200_response.py
+++ b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_input.py b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_input.py
index 0bdad7182..8530a6a50 100644
--- a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_input.py
+++ b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_output.py b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_output.py
index 55ab59fd6..53e8c9935 100644
--- a/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_output.py
+++ b/segment_public_api/models/replace_advanced_sync_schedule_for_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source200_response.py b/segment_public_api/models/replace_labels_in_source200_response.py
index 8e34fdd95..bb5debe58 100644
--- a/segment_public_api/models/replace_labels_in_source200_response.py
+++ b/segment_public_api/models/replace_labels_in_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source200_response1.py b/segment_public_api/models/replace_labels_in_source200_response1.py
index e9f73ab15..a29adb811 100644
--- a/segment_public_api/models/replace_labels_in_source200_response1.py
+++ b/segment_public_api/models/replace_labels_in_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source_alpha_input.py b/segment_public_api/models/replace_labels_in_source_alpha_input.py
index d0228365c..104d1ae36 100644
--- a/segment_public_api/models/replace_labels_in_source_alpha_input.py
+++ b/segment_public_api/models/replace_labels_in_source_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source_alpha_output.py b/segment_public_api/models/replace_labels_in_source_alpha_output.py
index 99c87e5c7..1a78b3400 100644
--- a/segment_public_api/models/replace_labels_in_source_alpha_output.py
+++ b/segment_public_api/models/replace_labels_in_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source_v1_input.py b/segment_public_api/models/replace_labels_in_source_v1_input.py
index 6ff38e908..f04f216bf 100644
--- a/segment_public_api/models/replace_labels_in_source_v1_input.py
+++ b/segment_public_api/models/replace_labels_in_source_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_labels_in_source_v1_output.py b/segment_public_api/models/replace_labels_in_source_v1_output.py
index 1befcf81d..45f716a37 100644
--- a/segment_public_api/models/replace_labels_in_source_v1_output.py
+++ b/segment_public_api/models/replace_labels_in_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_messaging_subscriptions_in_spaces200_response.py b/segment_public_api/models/replace_messaging_subscriptions_in_spaces200_response.py
index a7ca9fa2b..5ffd24a4a 100644
--- a/segment_public_api/models/replace_messaging_subscriptions_in_spaces200_response.py
+++ b/segment_public_api/models/replace_messaging_subscriptions_in_spaces200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_input.py b/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_input.py
index 52bd4df1f..da4a960fe 100644
--- a/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_input.py
+++ b/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_output.py b/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_output.py
index 5da51af08..0a4c528db 100644
--- a/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_output.py
+++ b/segment_public_api/models/replace_messaging_subscriptions_in_spaces_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user200_response.py b/segment_public_api/models/replace_permissions_for_user200_response.py
index d3da1a60d..e812778ab 100644
--- a/segment_public_api/models/replace_permissions_for_user200_response.py
+++ b/segment_public_api/models/replace_permissions_for_user200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user_group200_response.py b/segment_public_api/models/replace_permissions_for_user_group200_response.py
index 4dfd4be32..8ef21c547 100644
--- a/segment_public_api/models/replace_permissions_for_user_group200_response.py
+++ b/segment_public_api/models/replace_permissions_for_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user_group_v1_input.py b/segment_public_api/models/replace_permissions_for_user_group_v1_input.py
index 669af770d..a12e57078 100644
--- a/segment_public_api/models/replace_permissions_for_user_group_v1_input.py
+++ b/segment_public_api/models/replace_permissions_for_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user_group_v1_output.py b/segment_public_api/models/replace_permissions_for_user_group_v1_output.py
index 128737867..fb74aa5b1 100644
--- a/segment_public_api/models/replace_permissions_for_user_group_v1_output.py
+++ b/segment_public_api/models/replace_permissions_for_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user_v1_input.py b/segment_public_api/models/replace_permissions_for_user_v1_input.py
index c81a1054c..f066c9ce1 100644
--- a/segment_public_api/models/replace_permissions_for_user_v1_input.py
+++ b/segment_public_api/models/replace_permissions_for_user_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_permissions_for_user_v1_output.py b/segment_public_api/models/replace_permissions_for_user_v1_output.py
index a5c5d99b8..459ce94fe 100644
--- a/segment_public_api/models/replace_permissions_for_user_v1_output.py
+++ b/segment_public_api/models/replace_permissions_for_user_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_rules_in_tracking_plan200_response.py b/segment_public_api/models/replace_rules_in_tracking_plan200_response.py
index 667a53f36..39749e0a8 100644
--- a/segment_public_api/models/replace_rules_in_tracking_plan200_response.py
+++ b/segment_public_api/models/replace_rules_in_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_rules_in_tracking_plan_v1_input.py b/segment_public_api/models/replace_rules_in_tracking_plan_v1_input.py
index 0ce1a6882..79cbe0d29 100644
--- a/segment_public_api/models/replace_rules_in_tracking_plan_v1_input.py
+++ b/segment_public_api/models/replace_rules_in_tracking_plan_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_rules_in_tracking_plan_v1_output.py b/segment_public_api/models/replace_rules_in_tracking_plan_v1_output.py
index 33c8ddd92..8dcce595b 100644
--- a/segment_public_api/models/replace_rules_in_tracking_plan_v1_output.py
+++ b/segment_public_api/models/replace_rules_in_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_users_in_user_group200_response.py b/segment_public_api/models/replace_users_in_user_group200_response.py
index 21491c87f..494e026ff 100644
--- a/segment_public_api/models/replace_users_in_user_group200_response.py
+++ b/segment_public_api/models/replace_users_in_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_users_in_user_group_v1_input.py b/segment_public_api/models/replace_users_in_user_group_v1_input.py
index d3832d4b6..f64b7af9d 100644
--- a/segment_public_api/models/replace_users_in_user_group_v1_input.py
+++ b/segment_public_api/models/replace_users_in_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/replace_users_in_user_group_v1_output.py b/segment_public_api/models/replace_users_in_user_group_v1_output.py
index c1c345508..04fcf0c03 100644
--- a/segment_public_api/models/replace_users_in_user_group_v1_output.py
+++ b/segment_public_api/models/replace_users_in_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/request_error.py b/segment_public_api/models/request_error.py
index 4e59d33e0..eac33bad9 100644
--- a/segment_public_api/models/request_error.py
+++ b/segment_public_api/models/request_error.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/request_error_envelope.py b/segment_public_api/models/request_error_envelope.py
index 1c5fcde8b..f3c821820 100644
--- a/segment_public_api/models/request_error_envelope.py
+++ b/segment_public_api/models/request_error_envelope.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/resource_v1.py b/segment_public_api/models/resource_v1.py
index a2453e0fa..582ad7997 100644
--- a/segment_public_api/models/resource_v1.py
+++ b/segment_public_api/models/resource_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/restore_function_version200_response.py b/segment_public_api/models/restore_function_version200_response.py
index a3a2d2c7a..5bc89aa48 100644
--- a/segment_public_api/models/restore_function_version200_response.py
+++ b/segment_public_api/models/restore_function_version200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/restore_function_version_alpha_input.py b/segment_public_api/models/restore_function_version_alpha_input.py
index 1c48468d7..30a1d17ab 100644
--- a/segment_public_api/models/restore_function_version_alpha_input.py
+++ b/segment_public_api/models/restore_function_version_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/restore_function_version_alpha_output.py b/segment_public_api/models/restore_function_version_alpha_output.py
index 19196bae0..d25335b32 100644
--- a/segment_public_api/models/restore_function_version_alpha_output.py
+++ b/segment_public_api/models/restore_function_version_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/reverse_etl_cron_schedule_config.py b/segment_public_api/models/reverse_etl_cron_schedule_config.py
new file mode 100644
index 000000000..823f736bc
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_cron_schedule_config.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class ReverseEtlCronScheduleConfig(BaseModel):
+    """
+    ReverseEtlCronScheduleConfig
+    """
+    spec: StrictStr = Field(..., description="5 field cron string expression. The cron expression must be larger than 15 minutes.")
+    timezone: StrictStr = Field(..., description="Timezone respected by the cron string. Format must be in IANA Timezone Identifier. Example: 'America/Los_Angeles'.")
+    __properties = ["spec", "timezone"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlCronScheduleConfig:
+        """Create an instance of ReverseEtlCronScheduleConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlCronScheduleConfig:
+        """Create an instance of ReverseEtlCronScheduleConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseEtlCronScheduleConfig.parse_obj(obj)
+
+        _obj = ReverseEtlCronScheduleConfig.parse_obj({
+            "spec": obj.get("spec"),
+            "timezone": obj.get("timezone")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_dbt_cloud_schedule_config.py b/segment_public_api/models/reverse_etl_dbt_cloud_schedule_config.py
new file mode 100644
index 000000000..e46690b4a
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_dbt_cloud_schedule_config.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class ReverseEtlDbtCloudScheduleConfig(BaseModel):
+    """
+    Definition for a schedule triggered by dbt Cloud job events.  # noqa: E501
+    """
+    job_id: StrictStr = Field(..., alias="jobId", description="The dbt Cloud job used to trigger a sync for a Reverse ETL Connection.")
+    account_id: StrictStr = Field(..., alias="accountId", description="The dbt Cloud account where the job belongs to.")
+    __properties = ["jobId", "accountId"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlDbtCloudScheduleConfig:
+        """Create an instance of ReverseEtlDbtCloudScheduleConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlDbtCloudScheduleConfig:
+        """Create an instance of ReverseEtlDbtCloudScheduleConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseEtlDbtCloudScheduleConfig.parse_obj(obj)
+
+        _obj = ReverseEtlDbtCloudScheduleConfig.parse_obj({
+            "job_id": obj.get("jobId"),
+            "account_id": obj.get("accountId")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_manual_sync_job_output.py b/segment_public_api/models/reverse_etl_manual_sync_job_output.py
new file mode 100644
index 000000000..dba1b77eb
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_manual_sync_job_output.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class ReverseETLManualSyncJobOutput(BaseModel):
+    """
+    StartJobOutput returns the result of triggering the specified job.  # noqa: E501
+    """
+    started_at: StrictStr = Field(..., alias="startedAt", description="A datetime that indicates when the job was triggered.")
+    sync_id: StrictStr = Field(..., alias="syncId", description="The unique id for the sync that was triggered.")
+    __properties = ["startedAt", "syncId"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseETLManualSyncJobOutput:
+        """Create an instance of ReverseETLManualSyncJobOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseETLManualSyncJobOutput:
+        """Create an instance of ReverseETLManualSyncJobOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseETLManualSyncJobOutput.parse_obj(obj)
+
+        _obj = ReverseETLManualSyncJobOutput.parse_obj({
+            "started_at": obj.get("startedAt"),
+            "sync_id": obj.get("syncId")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_model.py b/segment_public_api/models/reverse_etl_model.py
index a2d8992e8..3dd44bcbf 100644
--- a/segment_public_api/models/reverse_etl_model.py
+++ b/segment_public_api/models/reverse_etl_model.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,7 +19,7 @@
 import json
 
 
-from typing import Any, Dict
+
 from pydantic import BaseModel, Field, StrictBool, StrictStr
 
 class ReverseEtlModel(BaseModel):
@@ -31,11 +31,9 @@ class ReverseEtlModel(BaseModel):
     name: StrictStr = Field(..., description="A short, human-readable description of the Model.")
     description: StrictStr = Field(..., description="A longer, more descriptive explanation of the Model.")
     enabled: StrictBool = Field(..., description="Indicates whether the Model should have syncs enabled. When disabled, no syncs will be triggered, regardless of the enabled status of the attached destinations/subscriptions.")
-    schedule_strategy: StrictStr = Field(..., alias="scheduleStrategy", description="Determines the strategy used for triggering syncs, which will be used in conjunction with scheduleConfig.  Possible values: \"manual\", \"periodic\", \"specific_days\".")
-    schedule_config: Dict[str, Any] = Field(..., alias="scheduleConfig", description="Defines a configuration object used for scheduling, which can vary depending on the configured strategy, but must always be an object with at least 1 level of keys.")
     query: StrictStr = Field(..., description="The SQL query that will be executed to extract data from the connected Source.")
     query_identifier_column: StrictStr = Field(..., alias="queryIdentifierColumn", description="Indicates the column named in `query` that should be used to uniquely identify the extracted records.")
-    __properties = ["id", "sourceId", "name", "description", "enabled", "scheduleStrategy", "scheduleConfig", "query", "queryIdentifierColumn"]
+    __properties = ["id", "sourceId", "name", "description", "enabled", "query", "queryIdentifierColumn"]
 
     class Config:
         """Pydantic configuration"""
@@ -78,8 +76,6 @@ def from_dict(cls, obj: dict) -> ReverseEtlModel:
             "name": obj.get("name"),
             "description": obj.get("description"),
             "enabled": obj.get("enabled"),
-            "schedule_strategy": obj.get("scheduleStrategy"),
-            "schedule_config": obj.get("scheduleConfig"),
             "query": obj.get("query"),
             "query_identifier_column": obj.get("queryIdentifierColumn")
         })
diff --git a/segment_public_api/models/reverse_etl_periodic_schedule_config.py b/segment_public_api/models/reverse_etl_periodic_schedule_config.py
new file mode 100644
index 000000000..372a24262
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_periodic_schedule_config.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class ReverseEtlPeriodicScheduleConfig(BaseModel):
+    """
+    Definition for periodic interval.  # noqa: E501
+    """
+    interval: StrictStr = Field(..., description="Duration is specified as a string, EG: 15m, 3h25m30s.")
+    __properties = ["interval"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlPeriodicScheduleConfig:
+        """Create an instance of ReverseEtlPeriodicScheduleConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlPeriodicScheduleConfig:
+        """Create an instance of ReverseEtlPeriodicScheduleConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseEtlPeriodicScheduleConfig.parse_obj(obj)
+
+        _obj = ReverseEtlPeriodicScheduleConfig.parse_obj({
+            "interval": obj.get("interval")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_schedule_config.py b/segment_public_api/models/reverse_etl_schedule_config.py
new file mode 100644
index 000000000..d89add18a
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_schedule_config.py
@@ -0,0 +1,165 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re  # noqa: F401
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
+from segment_public_api.models.reverse_etl_cron_schedule_config import ReverseEtlCronScheduleConfig
+from segment_public_api.models.reverse_etl_dbt_cloud_schedule_config import ReverseEtlDbtCloudScheduleConfig
+from segment_public_api.models.reverse_etl_periodic_schedule_config import ReverseEtlPeriodicScheduleConfig
+from segment_public_api.models.reverse_etl_specific_time_schedule_config import ReverseEtlSpecificTimeScheduleConfig
+from typing import Union, Any, List, TYPE_CHECKING
+from pydantic import StrictStr, Field
+
+REVERSEETLSCHEDULECONFIG_ANY_OF_SCHEMAS = ["ReverseEtlCronScheduleConfig", "ReverseEtlDbtCloudScheduleConfig", "ReverseEtlPeriodicScheduleConfig", "ReverseEtlSpecificTimeScheduleConfig"]
+
+class ReverseEtlScheduleConfig(BaseModel):
+    """
+    ReverseEtlScheduleConfig
+    """
+
+    # data type: ReverseEtlPeriodicScheduleConfig
+    anyof_schema_1_validator: Optional[ReverseEtlPeriodicScheduleConfig] = None
+    # data type: ReverseEtlSpecificTimeScheduleConfig
+    anyof_schema_2_validator: Optional[ReverseEtlSpecificTimeScheduleConfig] = None
+    # data type: ReverseEtlCronScheduleConfig
+    anyof_schema_3_validator: Optional[ReverseEtlCronScheduleConfig] = None
+    # data type: ReverseEtlDbtCloudScheduleConfig
+    anyof_schema_4_validator: Optional[ReverseEtlDbtCloudScheduleConfig] = None
+    if TYPE_CHECKING:
+        actual_instance: Union[ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig]
+    else:
+        actual_instance: Any
+    any_of_schemas: List[str] = Field(REVERSEETLSCHEDULECONFIG_ANY_OF_SCHEMAS, const=True)
+
+    class Config:
+        validate_assignment = True
+
+    def __init__(self, *args, **kwargs) -> None:
+        if args:
+            if len(args) > 1:
+                raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+            if kwargs:
+                raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+            super().__init__(actual_instance=args[0])
+        else:
+            super().__init__(**kwargs)
+
+    @validator('actual_instance')
+    def actual_instance_must_validate_anyof(cls, v):
+        instance = ReverseEtlScheduleConfig.construct()
+        error_messages = []
+        # validate data type: ReverseEtlPeriodicScheduleConfig
+        if not isinstance(v, ReverseEtlPeriodicScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlPeriodicScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlSpecificTimeScheduleConfig
+        if not isinstance(v, ReverseEtlSpecificTimeScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlSpecificTimeScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlCronScheduleConfig
+        if not isinstance(v, ReverseEtlCronScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlCronScheduleConfig`")
+        else:
+            return v
+
+        # validate data type: ReverseEtlDbtCloudScheduleConfig
+        if not isinstance(v, ReverseEtlDbtCloudScheduleConfig):
+            error_messages.append(f"Error! Input type `{type(v)}` is not `ReverseEtlDbtCloudScheduleConfig`")
+        else:
+            return v
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when setting the actual_instance in ReverseEtlScheduleConfig with anyOf schemas: ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig. Details: " + ", ".join(error_messages))
+        else:
+            return v
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlScheduleConfig:
+        return cls.from_json(json.dumps(obj))
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlScheduleConfig:
+        """Returns the object represented by the json string"""
+        instance = ReverseEtlScheduleConfig.construct()
+        error_messages = []
+        # anyof_schema_1_validator: Optional[ReverseEtlPeriodicScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlPeriodicScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_2_validator: Optional[ReverseEtlSpecificTimeScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlSpecificTimeScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_3_validator: Optional[ReverseEtlCronScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlCronScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+        # anyof_schema_4_validator: Optional[ReverseEtlDbtCloudScheduleConfig] = None
+        try:
+            instance.actual_instance = ReverseEtlDbtCloudScheduleConfig.from_json(json_str)
+            return instance
+        except (ValidationError, ValueError) as e:
+             error_messages.append(str(e))
+
+        if error_messages:
+            # no match
+            raise ValueError("No match found when deserializing the JSON string into ReverseEtlScheduleConfig with anyOf schemas: ReverseEtlCronScheduleConfig, ReverseEtlDbtCloudScheduleConfig, ReverseEtlPeriodicScheduleConfig, ReverseEtlSpecificTimeScheduleConfig. Details: " + ", ".join(error_messages))
+        else:
+            return instance
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_json()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_dict(self) -> dict:
+        """Returns the dict representation of the actual instance"""
+        if self.actual_instance is None:
+            return "null"
+
+        to_json = getattr(self.actual_instance, "to_json", None)
+        if callable(to_json):
+            return self.actual_instance.to_dict()
+        else:
+            return json.dumps(self.actual_instance)
+
+    def to_str(self) -> str:
+        """Returns the string representation of the actual instance"""
+        return pprint.pformat(self.dict())
+
+
diff --git a/segment_public_api/models/reverse_etl_schedule_definition.py b/segment_public_api/models/reverse_etl_schedule_definition.py
new file mode 100644
index 000000000..fae8b747d
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_schedule_definition.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr, validator
+from segment_public_api.models.config1 import Config1
+
+class ReverseEtlScheduleDefinition(BaseModel):
+    """
+    Defines a configuration object used for scheduling, which can vary depending on the configured strategy.  # noqa: E501
+    """
+    strategy: StrictStr = Field(..., description="Strategy supports: Periodic, Specific Days, Manual, CRON and DBT_CLOUD.")
+    config: Optional[Config1] = None
+    __properties = ["strategy", "config"]
+
+    @validator('strategy')
+    def strategy_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('CRON', 'DBT_CLOUD', 'MANUAL', 'PERIODIC', 'SPECIFIC_DAYS'):
+            raise ValueError("must be one of enum values ('CRON', 'DBT_CLOUD', 'MANUAL', 'PERIODIC', 'SPECIFIC_DAYS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlScheduleDefinition:
+        """Create an instance of ReverseEtlScheduleDefinition from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of config
+        if self.config:
+            _dict['config'] = self.config.to_dict()
+        # set to None if config (nullable) is None
+        # and __fields_set__ contains the field
+        if self.config is None and "config" in self.__fields_set__:
+            _dict['config'] = None
+
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlScheduleDefinition:
+        """Create an instance of ReverseEtlScheduleDefinition from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseEtlScheduleDefinition.parse_obj(obj)
+
+        _obj = ReverseEtlScheduleDefinition.parse_obj({
+            "strategy": obj.get("strategy"),
+            "config": Config1.from_dict(obj.get("config")) if obj.get("config") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_specific_time_schedule_config.py b/segment_public_api/models/reverse_etl_specific_time_schedule_config.py
new file mode 100644
index 000000000..e26a78cfe
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_specific_time_schedule_config.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist
+
+class ReverseEtlSpecificTimeScheduleConfig(BaseModel):
+    """
+    Definition for specific day and time schedule. Days is list of numbered day of the week and hours is a list of hour of the day. The corresponding Timezone is also input as string.  # noqa: E501
+    """
+    days: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Days of the week.")
+    hours: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Hours of the day.")
+    timezone: StrictStr = Field(..., description="Timezone for the specified times.")
+    __properties = ["days", "hours", "timezone"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseEtlSpecificTimeScheduleConfig:
+        """Create an instance of ReverseEtlSpecificTimeScheduleConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseEtlSpecificTimeScheduleConfig:
+        """Create an instance of ReverseEtlSpecificTimeScheduleConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseEtlSpecificTimeScheduleConfig.parse_obj(obj)
+
+        _obj = ReverseEtlSpecificTimeScheduleConfig.parse_obj({
+            "days": obj.get("days"),
+            "hours": obj.get("hours"),
+            "timezone": obj.get("timezone")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/reverse_etl_sync_status.py b/segment_public_api/models/reverse_etl_sync_status.py
new file mode 100644
index 000000000..bffe80e45
--- /dev/null
+++ b/segment_public_api/models/reverse_etl_sync_status.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictStr
+from segment_public_api.models.sync_extract_phase import SyncExtractPhase
+from segment_public_api.models.sync_load_phase import SyncLoadPhase
+
+class ReverseETLSyncStatus(BaseModel):
+    """
+    Defines the result of getting the sync status of a RETL connection.  # noqa: E501
+    """
+    sync_id: StrictStr = Field(..., alias="syncId", description="The id of the sync.")
+    model_id: StrictStr = Field(..., alias="modelId", description="The Model id of the sync.")
+    source_id: StrictStr = Field(..., alias="sourceId", description="The Source id of the sync.")
+    sync_status: StrictStr = Field(..., alias="syncStatus", description="The status of the sync. It currently can be IN_PROGRESS, FAIL, SUCCESS, PARTIAL_SUCCESS.")
+    duration: StrictStr = Field(..., description="The duration of the sync.")
+    started_at: StrictStr = Field(..., alias="startedAt", description="When the sync started.")
+    finished_at: Optional[StrictStr] = Field(None, alias="finishedAt", description="When the sync started.")
+    extract_phase: Optional[SyncExtractPhase] = Field(None, alias="extractPhase")
+    load_phase: Optional[SyncLoadPhase] = Field(None, alias="loadPhase")
+    error: Optional[StrictStr] = Field(None, description="Error message if applicable.")
+    error_code: Optional[StrictStr] = Field(None, alias="errorCode", description="Error code indicates a fatal sync error code, if applicable.")
+    __properties = ["syncId", "modelId", "sourceId", "syncStatus", "duration", "startedAt", "finishedAt", "extractPhase", "loadPhase", "error", "errorCode"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> ReverseETLSyncStatus:
+        """Create an instance of ReverseETLSyncStatus from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of extract_phase
+        if self.extract_phase:
+            _dict['extractPhase'] = self.extract_phase.to_dict()
+        # override the default output from pydantic by calling `to_dict()` of load_phase
+        if self.load_phase:
+            _dict['loadPhase'] = self.load_phase.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> ReverseETLSyncStatus:
+        """Create an instance of ReverseETLSyncStatus from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return ReverseETLSyncStatus.parse_obj(obj)
+
+        _obj = ReverseETLSyncStatus.parse_obj({
+            "sync_id": obj.get("syncId"),
+            "model_id": obj.get("modelId"),
+            "source_id": obj.get("sourceId"),
+            "sync_status": obj.get("syncStatus"),
+            "duration": obj.get("duration"),
+            "started_at": obj.get("startedAt"),
+            "finished_at": obj.get("finishedAt"),
+            "extract_phase": SyncExtractPhase.from_dict(obj.get("extractPhase")) if obj.get("extractPhase") is not None else None,
+            "load_phase": SyncLoadPhase.from_dict(obj.get("loadPhase")) if obj.get("loadPhase") is not None else None,
+            "error": obj.get("error"),
+            "error_code": obj.get("errorCode")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/role_v1.py b/segment_public_api/models/role_v1.py
index 6a1781b3e..00d1bd417 100644
--- a/segment_public_api/models/role_v1.py
+++ b/segment_public_api/models/role_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/rule_input_v1.py b/segment_public_api/models/rule_input_v1.py
index d00b44a14..e83d66e3b 100644
--- a/segment_public_api/models/rule_input_v1.py
+++ b/segment_public_api/models/rule_input_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/rule_v1.py b/segment_public_api/models/rule_v1.py
index 662955c3b..db0837b95 100644
--- a/segment_public_api/models/rule_v1.py
+++ b/segment_public_api/models/rule_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_alpha.py b/segment_public_api/models/source_alpha.py
index 24e1e46fb..97363d9c0 100644
--- a/segment_public_api/models/source_alpha.py
+++ b/segment_public_api/models/source_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_api_call_snapshot_v1.py b/segment_public_api/models/source_api_call_snapshot_v1.py
index 880d82f76..26eb5638c 100644
--- a/segment_public_api/models/source_api_call_snapshot_v1.py
+++ b/segment_public_api/models/source_api_call_snapshot_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_event_volume_datapoint_v1.py b/segment_public_api/models/source_event_volume_datapoint_v1.py
index 9c946b612..dc521b9ce 100644
--- a/segment_public_api/models/source_event_volume_datapoint_v1.py
+++ b/segment_public_api/models/source_event_volume_datapoint_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_event_volume_v1.py b/segment_public_api/models/source_event_volume_v1.py
index 58644b32c..40852e649 100644
--- a/segment_public_api/models/source_event_volume_v1.py
+++ b/segment_public_api/models/source_event_volume_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_metadata_v1.py b/segment_public_api/models/source_metadata_v1.py
index 0563ed660..88a315cb6 100644
--- a/segment_public_api/models/source_metadata_v1.py
+++ b/segment_public_api/models/source_metadata_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,8 +19,8 @@
 import json
 
 
-from typing import List
-from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
+from typing import List, Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist, validator
 from segment_public_api.models.integration_option_beta import IntegrationOptionBeta
 from segment_public_api.models.logos_beta import LogosBeta
 
@@ -36,7 +36,16 @@ class SourceMetadataV1(BaseModel):
     options: conlist(IntegrationOptionBeta) = Field(..., description="Options for this Source.")
     categories: conlist(StrictStr) = Field(..., description="A list of categories this Source belongs to.")
     is_cloud_event_source: StrictBool = Field(..., alias="isCloudEventSource", description="True if this is a Cloud Event Source.")
-    __properties = ["id", "name", "slug", "description", "logos", "options", "categories", "isCloudEventSource"]
+    status: StrictStr = Field(..., description="Support status of the Source.")
+    partner_owned: Optional[StrictBool] = Field(None, alias="partnerOwned", description="Partner Owned flag.")
+    __properties = ["id", "name", "slug", "description", "logos", "options", "categories", "isCloudEventSource", "status", "partnerOwned"]
+
+    @validator('status')
+    def status_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('DEPRECATED', 'PRIVATE_BETA', 'PRIVATE_BUILDING', 'PRIVATE_SUBMITTED', 'PUBLIC', 'PUBLIC_BETA', 'UNAVAILABLE'):
+            raise ValueError("must be one of enum values ('DEPRECATED', 'PRIVATE_BETA', 'PRIVATE_BUILDING', 'PRIVATE_SUBMITTED', 'PUBLIC', 'PUBLIC_BETA', 'UNAVAILABLE')")
+        return value
 
     class Config:
         """Pydantic configuration"""
@@ -91,7 +100,9 @@ def from_dict(cls, obj: dict) -> SourceMetadataV1:
             "logos": LogosBeta.from_dict(obj.get("logos")) if obj.get("logos") is not None else None,
             "options": [IntegrationOptionBeta.from_dict(_item) for _item in obj.get("options")] if obj.get("options") is not None else None,
             "categories": obj.get("categories"),
-            "is_cloud_event_source": obj.get("isCloudEventSource")
+            "is_cloud_event_source": obj.get("isCloudEventSource"),
+            "status": obj.get("status"),
+            "partner_owned": obj.get("partnerOwned")
         })
         return _obj
 
diff --git a/segment_public_api/models/source_settings_output_v1.py b/segment_public_api/models/source_settings_output_v1.py
index 6c6be1c03..4eb9c2b2b 100644
--- a/segment_public_api/models/source_settings_output_v1.py
+++ b/segment_public_api/models/source_settings_output_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/source_v1.py b/segment_public_api/models/source_v1.py
index e6d961e15..d8f72b191 100644
--- a/segment_public_api/models/source_v1.py
+++ b/segment_public_api/models/source_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/space.py b/segment_public_api/models/space.py
index 502604447..885a942a9 100644
--- a/segment_public_api/models/space.py
+++ b/segment_public_api/models/space.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -24,7 +24,7 @@
 
 class Space(BaseModel):
     """
-    Space matching the given id.  # noqa: E501
+    Space
     """
     id: StrictStr = Field(...)
     slug: StrictStr = Field(...)
diff --git a/segment_public_api/models/space_warehouse_schema_override.py b/segment_public_api/models/space_warehouse_schema_override.py
index 651b69f15..a05fad909 100644
--- a/segment_public_api/models/space_warehouse_schema_override.py
+++ b/segment_public_api/models/space_warehouse_schema_override.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/space_warehouse_selective_sync_item_alpha.py b/segment_public_api/models/space_warehouse_selective_sync_item_alpha.py
index ac739fd97..fb7cc0eb9 100644
--- a/segment_public_api/models/space_warehouse_selective_sync_item_alpha.py
+++ b/segment_public_api/models/space_warehouse_selective_sync_item_alpha.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/specific_days_config.py b/segment_public_api/models/specific_days_config.py
new file mode 100644
index 000000000..10754c734
--- /dev/null
+++ b/segment_public_api/models/specific_days_config.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import List, Union
+from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist
+
+class SpecificDaysConfig(BaseModel):
+    """
+    Configures a schedule for specific days and times.  # noqa: E501
+    """
+    days: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Days of week for schedule (0=Sunday, 6=Saturday).")
+    hours: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Hours of day for schedule (0-23).")
+    timezone: StrictStr = Field(..., description="TZ database time zone identifier; for example, America/New_York.")
+    __properties = ["days", "hours", "timezone"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> SpecificDaysConfig:
+        """Create an instance of SpecificDaysConfig from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> SpecificDaysConfig:
+        """Create an instance of SpecificDaysConfig from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return SpecificDaysConfig.parse_obj(obj)
+
+        _obj = SpecificDaysConfig.parse_obj({
+            "days": obj.get("days"),
+            "hours": obj.get("hours"),
+            "timezone": obj.get("timezone")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/stream_status_v1.py b/segment_public_api/models/stream_status_v1.py
index efbcd43d7..aaaa1fc61 100644
--- a/segment_public_api/models/stream_status_v1.py
+++ b/segment_public_api/models/stream_status_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/suppressed_inner.py b/segment_public_api/models/suppressed_inner.py
index 6aae1f8dd..dd50ef833 100644
--- a/segment_public_api/models/suppressed_inner.py
+++ b/segment_public_api/models/suppressed_inner.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/sync_extract_phase.py b/segment_public_api/models/sync_extract_phase.py
new file mode 100644
index 000000000..fa7fd26ae
--- /dev/null
+++ b/segment_public_api/models/sync_extract_phase.py
@@ -0,0 +1,84 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class SyncExtractPhase(BaseModel):
+    """
+    Object representing the extract phase + details.  # noqa: E501
+    """
+    added_count: StrictStr = Field(..., alias="addedCount", description="Counts the subset of records with status=new, which indicates records that were created/inserted/added.")
+    updated_count: StrictStr = Field(..., alias="updatedCount", description="Counts the subset of records with status=updated, which indicates records that were modified/updated.")
+    deleted_count: StrictStr = Field(..., alias="deletedCount", description="Counts the subset of records with status=deleted, which indicates records that were deleted/removed.")
+    extract_count: StrictStr = Field(..., alias="extractCount", description="Counts the total number of records/rows handled by extract, across all statuses.")
+    error_code: StrictStr = Field(..., alias="errorCode", description="Error code indicates a fatal sync error code, if applicable.")
+    started_at: StrictStr = Field(..., alias="startedAt", description="Time that the extract phase started.")
+    finished_at: StrictStr = Field(..., alias="finishedAt", description="Time that the extract phase finished.")
+    __properties = ["addedCount", "updatedCount", "deletedCount", "extractCount", "errorCode", "startedAt", "finishedAt"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> SyncExtractPhase:
+        """Create an instance of SyncExtractPhase from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> SyncExtractPhase:
+        """Create an instance of SyncExtractPhase from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return SyncExtractPhase.parse_obj(obj)
+
+        _obj = SyncExtractPhase.parse_obj({
+            "added_count": obj.get("addedCount"),
+            "updated_count": obj.get("updatedCount"),
+            "deleted_count": obj.get("deletedCount"),
+            "extract_count": obj.get("extractCount"),
+            "error_code": obj.get("errorCode"),
+            "started_at": obj.get("startedAt"),
+            "finished_at": obj.get("finishedAt")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/sync_load_phase.py b/segment_public_api/models/sync_load_phase.py
new file mode 100644
index 000000000..cb0984b74
--- /dev/null
+++ b/segment_public_api/models/sync_load_phase.py
@@ -0,0 +1,80 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr
+
+class SyncLoadPhase(BaseModel):
+    """
+    Object representing the load phase + details.  # noqa: E501
+    """
+    deliver_success_count: StrictStr = Field(..., alias="deliverSuccessCount", description="Counts the subset of records successfully delivered to the downstream Destination.")
+    deliver_failure_count: StrictStr = Field(..., alias="deliverFailureCount", description="Counts the subset of records status that failed to be delivered by either receiving a permanent error (for example, 400 Bad Request) or by exhausting all retries for temporary errors (for example, 429 Too Many Requests).")
+    error_code: StrictStr = Field(..., alias="errorCode", description="Error code indicates a fatal sync error code, if applicable.")
+    started_at: StrictStr = Field(..., alias="startedAt", description="Time that the load phase started.")
+    finished_at: StrictStr = Field(..., alias="finishedAt", description="Time that the load phase finished.")
+    __properties = ["deliverSuccessCount", "deliverFailureCount", "errorCode", "startedAt", "finishedAt"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> SyncLoadPhase:
+        """Create an instance of SyncLoadPhase from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> SyncLoadPhase:
+        """Create an instance of SyncLoadPhase from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return SyncLoadPhase.parse_obj(obj)
+
+        _obj = SyncLoadPhase.parse_obj({
+            "deliver_success_count": obj.get("deliverSuccessCount"),
+            "deliver_failure_count": obj.get("deliverFailureCount"),
+            "error_code": obj.get("errorCode"),
+            "started_at": obj.get("startedAt"),
+            "finished_at": obj.get("finishedAt")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/sync_notice_v1.py b/segment_public_api/models/sync_notice_v1.py
index 3d5615c84..0d80b185e 100644
--- a/segment_public_api/models/sync_notice_v1.py
+++ b/segment_public_api/models/sync_notice_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/sync_v1.py b/segment_public_api/models/sync_v1.py
index 2c32009e9..ff3d49541 100644
--- a/segment_public_api/models/sync_v1.py
+++ b/segment_public_api/models/sync_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/track_source_settings_v1.py b/segment_public_api/models/track_source_settings_v1.py
index ceaf3edc6..bbe4f1845 100644
--- a/segment_public_api/models/track_source_settings_v1.py
+++ b/segment_public_api/models/track_source_settings_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/tracking_plan_v1.py b/segment_public_api/models/tracking_plan_v1.py
index 76b35878a..a4157ef97 100644
--- a/segment_public_api/models/tracking_plan_v1.py
+++ b/segment_public_api/models/tracking_plan_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/trait_definition.py b/segment_public_api/models/trait_definition.py
new file mode 100644
index 000000000..1f45fe3e2
--- /dev/null
+++ b/segment_public_api/models/trait_definition.py
@@ -0,0 +1,81 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field, StrictStr, validator
+
+class TraitDefinition(BaseModel):
+    """
+    TraitDefinition
+    """
+    type: StrictStr = Field(..., description="The underlying data type being aggregated for this computed trait.  Possible values: users, accounts.")
+    query: StrictStr = Field(..., description="The query language string defining the computed trait aggregation criteria. For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
+    __properties = ["type", "query"]
+
+    @validator('type')
+    def type_validate_enum(cls, value):
+        """Validates the enum"""
+        if value not in ('ACCOUNTS', 'USERS'):
+            raise ValueError("must be one of enum values ('ACCOUNTS', 'USERS')")
+        return value
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> TraitDefinition:
+        """Create an instance of TraitDefinition from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> TraitDefinition:
+        """Create an instance of TraitDefinition from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return TraitDefinition.parse_obj(obj)
+
+        _obj = TraitDefinition.parse_obj({
+            "type": obj.get("type"),
+            "query": obj.get("query")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/trait_options.py b/segment_public_api/models/trait_options.py
new file mode 100644
index 000000000..3c7399ff0
--- /dev/null
+++ b/segment_public_api/models/trait_options.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool
+
+class TraitOptions(BaseModel):
+    """
+    TraitOptions
+    """
+    include_historical_data: Optional[StrictBool] = Field(None, alias="includeHistoricalData", description="Determines whether data prior to the computed trait being created is included when determining the computed trait value. Note that including historical data may be needed in order to properly handle the definition specified. In these cases, Segment will automatically handle including historical data and the response will return the includeHistoricalData parameter as true.")
+    include_anonymous_users: Optional[StrictBool] = Field(None, alias="includeAnonymousUsers", description="Determines whether anonymous users should be included when determining the computed trait value.")
+    __properties = ["includeHistoricalData", "includeAnonymousUsers"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> TraitOptions:
+        """Create an instance of TraitOptions from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> TraitOptions:
+        """Create an instance of TraitOptions from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return TraitOptions.parse_obj(obj)
+
+        _obj = TraitOptions.parse_obj({
+            "include_historical_data": obj.get("includeHistoricalData"),
+            "include_anonymous_users": obj.get("includeAnonymousUsers")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/transformation_beta.py b/segment_public_api/models/transformation_beta.py
index 4ccefdba1..d783a9c53 100644
--- a/segment_public_api/models/transformation_beta.py
+++ b/segment_public_api/models/transformation_beta.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -33,7 +33,7 @@ class TransformationBeta(BaseModel):
     source_id: StrictStr = Field(..., alias="sourceId", description="The Source associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata associated with the Transformation.")
     enabled: StrictBool = Field(..., description="If the Transformation is enabled.")
-    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameBeta)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationBeta)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
diff --git a/segment_public_api/models/transformation_v1.py b/segment_public_api/models/transformation_v1.py
index 16dbc16e0..a2933846e 100644
--- a/segment_public_api/models/transformation_v1.py
+++ b/segment_public_api/models/transformation_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,7 @@
 from typing import List, Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
 from segment_public_api.models.fql_defined_property_v1 import FQLDefinedPropertyV1
+from segment_public_api.models.hash_properties_configuration import HashPropertiesConfiguration
 from segment_public_api.models.property_rename_v1 import PropertyRenameV1
 from segment_public_api.models.property_value_transformation_v1 import PropertyValueTransformationV1
 
@@ -34,12 +35,15 @@ class TransformationV1(BaseModel):
     source_id: StrictStr = Field(..., alias="sourceId", description="The Source associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata associated with the Transformation.")
     enabled: StrictBool = Field(..., description="If the Transformation is enabled.")
-    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: StrictStr = Field(..., alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
+    drop: Optional[StrictBool] = Field(None, description="Optional boolean value if the Transformation should drop the event entirely when the if statement matches, ignores all other transforms.")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameV1)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationV1)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
     fql_defined_properties: Optional[conlist(FQLDefinedPropertyV1)] = Field(None, alias="fqlDefinedProperties", description="Optional array for defining new properties in FQL. Limited to 1 property right now.")
-    __properties = ["id", "name", "sourceId", "destinationMetadataId", "enabled", "if", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties"]
+    allow_properties: Optional[conlist(StrictStr)] = Field(None, alias="allowProperties", description="Optional array for allowing properties from your events.")
+    hash_properties_configuration: Optional[HashPropertiesConfiguration] = Field(None, alias="hashPropertiesConfiguration")
+    __properties = ["id", "name", "sourceId", "destinationMetadataId", "enabled", "if", "drop", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties", "allowProperties", "hashPropertiesConfiguration"]
 
     class Config:
         """Pydantic configuration"""
@@ -86,6 +90,9 @@ def to_dict(self):
                 if _item:
                     _items.append(_item.to_dict())
             _dict['fqlDefinedProperties'] = _items
+        # override the default output from pydantic by calling `to_dict()` of hash_properties_configuration
+        if self.hash_properties_configuration:
+            _dict['hashPropertiesConfiguration'] = self.hash_properties_configuration.to_dict()
         return _dict
 
     @classmethod
@@ -104,10 +111,13 @@ def from_dict(cls, obj: dict) -> TransformationV1:
             "destination_metadata_id": obj.get("destinationMetadataId"),
             "enabled": obj.get("enabled"),
             "var_if": obj.get("if"),
+            "drop": obj.get("drop"),
             "new_event_name": obj.get("newEventName"),
             "property_renames": [PropertyRenameV1.from_dict(_item) for _item in obj.get("propertyRenames")] if obj.get("propertyRenames") is not None else None,
             "property_value_transformations": [PropertyValueTransformationV1.from_dict(_item) for _item in obj.get("propertyValueTransformations")] if obj.get("propertyValueTransformations") is not None else None,
-            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None
+            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None,
+            "allow_properties": obj.get("allowProperties"),
+            "hash_properties_configuration": HashPropertiesConfiguration.from_dict(obj.get("hashPropertiesConfiguration")) if obj.get("hashPropertiesConfiguration") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/update_activation_for_audience200_response.py b/segment_public_api/models/update_activation_for_audience200_response.py
new file mode 100644
index 000000000..ca8f03257
--- /dev/null
+++ b/segment_public_api/models/update_activation_for_audience200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.update_activation_for_audience_output import UpdateActivationForAudienceOutput
+
+class UpdateActivationForAudience200Response(BaseModel):
+    """
+    UpdateActivationForAudience200Response
+    """
+    data: Optional[UpdateActivationForAudienceOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateActivationForAudience200Response:
+        """Create an instance of UpdateActivationForAudience200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateActivationForAudience200Response:
+        """Create an instance of UpdateActivationForAudience200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateActivationForAudience200Response.parse_obj(obj)
+
+        _obj = UpdateActivationForAudience200Response.parse_obj({
+            "data": UpdateActivationForAudienceOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_activation_for_audience_alpha_input.py b/segment_public_api/models/update_activation_for_audience_alpha_input.py
new file mode 100644
index 000000000..5c3508575
--- /dev/null
+++ b/segment_public_api/models/update_activation_for_audience_alpha_input.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Any, Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class UpdateActivationForAudienceAlphaInput(BaseModel):
+    """
+    Input to update an activation.  # noqa: E501
+    """
+    workspace_id: StrictStr = Field(..., alias="workspaceId", description="The Workspace id.")
+    enabled: Optional[StrictBool] = Field(None, description="Determines whether an activation is enabled.")
+    event_emitter: Optional[Any] = Field(..., alias="eventEmitter", description="Configuration settings for the event emitter to be created.")
+    subscription: Optional[Any] = Field(..., description="Subscription info to connect the event emitter to a Destination attached to the audience.")
+    __properties = ["workspaceId", "enabled", "eventEmitter", "subscription"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateActivationForAudienceAlphaInput:
+        """Create an instance of UpdateActivationForAudienceAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # set to None if event_emitter (nullable) is None
+        # and __fields_set__ contains the field
+        if self.event_emitter is None and "event_emitter" in self.__fields_set__:
+            _dict['eventEmitter'] = None
+
+        # set to None if subscription (nullable) is None
+        # and __fields_set__ contains the field
+        if self.subscription is None and "subscription" in self.__fields_set__:
+            _dict['subscription'] = None
+
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateActivationForAudienceAlphaInput:
+        """Create an instance of UpdateActivationForAudienceAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateActivationForAudienceAlphaInput.parse_obj(obj)
+
+        _obj = UpdateActivationForAudienceAlphaInput.parse_obj({
+            "workspace_id": obj.get("workspaceId"),
+            "enabled": obj.get("enabled"),
+            "event_emitter": obj.get("eventEmitter"),
+            "subscription": obj.get("subscription")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_activation_for_audience_output.py b/segment_public_api/models/update_activation_for_audience_output.py
new file mode 100644
index 000000000..c71956f26
--- /dev/null
+++ b/segment_public_api/models/update_activation_for_audience_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.activation_summary_output import ActivationSummaryOutput
+
+class UpdateActivationForAudienceOutput(BaseModel):
+    """
+    Output for updating an activation for audience.  # noqa: E501
+    """
+    activation: ActivationSummaryOutput = Field(...)
+    __properties = ["activation"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateActivationForAudienceOutput:
+        """Create an instance of UpdateActivationForAudienceOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of activation
+        if self.activation:
+            _dict['activation'] = self.activation.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateActivationForAudienceOutput:
+        """Create an instance of UpdateActivationForAudienceOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateActivationForAudienceOutput.parse_obj(obj)
+
+        _obj = UpdateActivationForAudienceOutput.parse_obj({
+            "activation": ActivationSummaryOutput.from_dict(obj.get("activation")) if obj.get("activation") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_audience_for_space200_response.py b/segment_public_api/models/update_audience_for_space200_response.py
index 104f394d9..32a515734 100644
--- a/segment_public_api/models/update_audience_for_space200_response.py
+++ b/segment_public_api/models/update_audience_for_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_audience_for_space_alpha_input.py b/segment_public_api/models/update_audience_for_space_alpha_input.py
new file mode 100644
index 000000000..5df2e17be
--- /dev/null
+++ b/segment_public_api/models/update_audience_for_space_alpha_input.py
@@ -0,0 +1,82 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.audience_definition import AudienceDefinition
+
+class UpdateAudienceForSpaceAlphaInput(BaseModel):
+    """
+    Input to update an audience.  # noqa: E501
+    """
+    enabled: Optional[StrictBool] = Field(None, description="Enabled/disabled status for the audience.")
+    name: Optional[StrictStr] = Field(None, description="The name of the computation.")
+    description: Optional[StrictStr] = Field(None, description="The description of the computation.")
+    definition: Optional[AudienceDefinition] = None
+    __properties = ["enabled", "name", "description", "definition"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateAudienceForSpaceAlphaInput:
+        """Create an instance of UpdateAudienceForSpaceAlphaInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateAudienceForSpaceAlphaInput:
+        """Create an instance of UpdateAudienceForSpaceAlphaInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateAudienceForSpaceAlphaInput.parse_obj(obj)
+
+        _obj = UpdateAudienceForSpaceAlphaInput.parse_obj({
+            "enabled": obj.get("enabled"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "definition": AudienceDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_audience_for_space_alpha_output.py b/segment_public_api/models/update_audience_for_space_alpha_output.py
index 1b7edb12f..4986dade8 100644
--- a/segment_public_api/models/update_audience_for_space_alpha_output.py
+++ b/segment_public_api/models/update_audience_for_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -25,7 +25,7 @@
 
 class UpdateAudienceForSpaceAlphaOutput(BaseModel):
     """
-    Audience output for get.  # noqa: E501
+    Audience output for update.  # noqa: E501
     """
     audience: AudienceSummary = Field(...)
     __properties = ["audience"]
diff --git a/segment_public_api/models/update_computed_trait_for_space200_response.py b/segment_public_api/models/update_computed_trait_for_space200_response.py
index 3ef1f0fd0..b8b04183e 100644
--- a/segment_public_api/models/update_computed_trait_for_space200_response.py
+++ b/segment_public_api/models/update_computed_trait_for_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_computed_trait_for_space_alpha_input.py b/segment_public_api/models/update_computed_trait_for_space_alpha_input.py
index 7e0b8112d..5cfad3935 100644
--- a/segment_public_api/models/update_computed_trait_for_space_alpha_input.py
+++ b/segment_public_api/models/update_computed_trait_for_space_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,15 +19,19 @@
 import json
 
 
-
-from pydantic import BaseModel, Field, StrictBool
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+from segment_public_api.models.trait_definition import TraitDefinition
 
 class UpdateComputedTraitForSpaceAlphaInput(BaseModel):
     """
     Input to update a computed trait.  # noqa: E501
     """
-    enabled: StrictBool = Field(..., description="Enabled/disabled status for the computed trait.")
-    __properties = ["enabled"]
+    enabled: Optional[StrictBool] = Field(None, description="Enabled/disabled status for the computed trait.")
+    name: Optional[StrictStr] = Field(None, description="The name of the computation.")
+    description: Optional[StrictStr] = Field(None, description="The description of the computation.")
+    definition: Optional[TraitDefinition] = None
+    __properties = ["enabled", "name", "description", "definition"]
 
     class Config:
         """Pydantic configuration"""
@@ -53,6 +57,9 @@ def to_dict(self):
                           exclude={
                           },
                           exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of definition
+        if self.definition:
+            _dict['definition'] = self.definition.to_dict()
         return _dict
 
     @classmethod
@@ -65,7 +72,10 @@ def from_dict(cls, obj: dict) -> UpdateComputedTraitForSpaceAlphaInput:
             return UpdateComputedTraitForSpaceAlphaInput.parse_obj(obj)
 
         _obj = UpdateComputedTraitForSpaceAlphaInput.parse_obj({
-            "enabled": obj.get("enabled")
+            "enabled": obj.get("enabled"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "definition": TraitDefinition.from_dict(obj.get("definition")) if obj.get("definition") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/update_computed_trait_for_space_alpha_output.py b/segment_public_api/models/update_computed_trait_for_space_alpha_output.py
index 2346d84cb..4e963915c 100644
--- a/segment_public_api/models/update_computed_trait_for_space_alpha_output.py
+++ b/segment_public_api/models/update_computed_trait_for_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_destination200_response.py b/segment_public_api/models/update_destination200_response.py
index dd452706c..ca9d01e9d 100644
--- a/segment_public_api/models/update_destination200_response.py
+++ b/segment_public_api/models/update_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_destination_v1_input.py b/segment_public_api/models/update_destination_v1_input.py
index 4b8acd6d6..b0a1c035c 100644
--- a/segment_public_api/models/update_destination_v1_input.py
+++ b/segment_public_api/models/update_destination_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_destination_v1_output.py b/segment_public_api/models/update_destination_v1_output.py
index 2b96084e4..f65e506e8 100644
--- a/segment_public_api/models/update_destination_v1_output.py
+++ b/segment_public_api/models/update_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_filter_by_id200_response.py b/segment_public_api/models/update_filter_by_id200_response.py
new file mode 100644
index 000000000..96ae57a19
--- /dev/null
+++ b/segment_public_api/models/update_filter_by_id200_response.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel
+from segment_public_api.models.update_filter_by_id_output import UpdateFilterByIdOutput
+
+class UpdateFilterById200Response(BaseModel):
+    """
+    UpdateFilterById200Response
+    """
+    data: Optional[UpdateFilterByIdOutput] = None
+    __properties = ["data"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateFilterById200Response:
+        """Create an instance of UpdateFilterById200Response from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of data
+        if self.data:
+            _dict['data'] = self.data.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateFilterById200Response:
+        """Create an instance of UpdateFilterById200Response from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateFilterById200Response.parse_obj(obj)
+
+        _obj = UpdateFilterById200Response.parse_obj({
+            "data": UpdateFilterByIdOutput.from_dict(obj.get("data")) if obj.get("data") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_filter_by_id_input.py b/segment_public_api/models/update_filter_by_id_input.py
new file mode 100644
index 000000000..fdcbf5fad
--- /dev/null
+++ b/segment_public_api/models/update_filter_by_id_input.py
@@ -0,0 +1,82 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
+
+class UpdateFilterByIdInput(BaseModel):
+    """
+    Input for UpdateFilterById.  # noqa: E501
+    """
+    integration_id: StrictStr = Field(..., alias="integrationId", description="The Integration id of the resource.")
+    enabled: Optional[StrictBool] = Field(None, description="Whether the filter is enabled.")
+    name: Optional[StrictStr] = Field(None, description="The name of the filter.")
+    description: Optional[StrictStr] = Field(None, description="The description of the filter.")
+    var_if: Optional[StrictStr] = Field(None, alias="if", description="The \"if\" statement for a filter.")
+    drop: Optional[StrictBool] = Field(None, description="Whether the event is dropped.")
+    __properties = ["integrationId", "enabled", "name", "description", "if", "drop"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateFilterByIdInput:
+        """Create an instance of UpdateFilterByIdInput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateFilterByIdInput:
+        """Create an instance of UpdateFilterByIdInput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateFilterByIdInput.parse_obj(obj)
+
+        _obj = UpdateFilterByIdInput.parse_obj({
+            "integration_id": obj.get("integrationId"),
+            "enabled": obj.get("enabled"),
+            "name": obj.get("name"),
+            "description": obj.get("description"),
+            "var_if": obj.get("if"),
+            "drop": obj.get("drop")
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_filter_by_id_output.py b/segment_public_api/models/update_filter_by_id_output.py
new file mode 100644
index 000000000..27060cb3e
--- /dev/null
+++ b/segment_public_api/models/update_filter_by_id_output.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+"""
+    Segment Public API
+
+    The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
+
+    The version of the OpenAPI document: 58.13.0
+    Contact: friends@segment.com
+    Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+    Do not edit the class manually.
+"""  # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re  # noqa: F401
+import json
+
+
+
+from pydantic import BaseModel, Field
+from segment_public_api.models.filter import Filter
+
+class UpdateFilterByIdOutput(BaseModel):
+    """
+    Output for UpdateFilterById.  # noqa: E501
+    """
+    filter: Filter = Field(...)
+    __properties = ["filter"]
+
+    class Config:
+        """Pydantic configuration"""
+        allow_population_by_field_name = True
+        validate_assignment = True
+
+    def to_str(self) -> str:
+        """Returns the string representation of the model using alias"""
+        return pprint.pformat(self.dict(by_alias=True))
+
+    def to_json(self) -> str:
+        """Returns the JSON representation of the model using alias"""
+        return json.dumps(self.to_dict())
+
+    @classmethod
+    def from_json(cls, json_str: str) -> UpdateFilterByIdOutput:
+        """Create an instance of UpdateFilterByIdOutput from a JSON string"""
+        return cls.from_dict(json.loads(json_str))
+
+    def to_dict(self):
+        """Returns the dictionary representation of the model using alias"""
+        _dict = self.dict(by_alias=True,
+                          exclude={
+                          },
+                          exclude_none=True)
+        # override the default output from pydantic by calling `to_dict()` of filter
+        if self.filter:
+            _dict['filter'] = self.filter.to_dict()
+        return _dict
+
+    @classmethod
+    def from_dict(cls, obj: dict) -> UpdateFilterByIdOutput:
+        """Create an instance of UpdateFilterByIdOutput from a dict"""
+        if obj is None:
+            return None
+
+        if not isinstance(obj, dict):
+            return UpdateFilterByIdOutput.parse_obj(obj)
+
+        _obj = UpdateFilterByIdOutput.parse_obj({
+            "filter": Filter.from_dict(obj.get("filter")) if obj.get("filter") is not None else None
+        })
+        return _obj
+
+
diff --git a/segment_public_api/models/update_filter_for_destination200_response.py b/segment_public_api/models/update_filter_for_destination200_response.py
index d41cb7281..7e63eb217 100644
--- a/segment_public_api/models/update_filter_for_destination200_response.py
+++ b/segment_public_api/models/update_filter_for_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_filter_for_destination_v1_input.py b/segment_public_api/models/update_filter_for_destination_v1_input.py
index 509f99de1..368e9a92d 100644
--- a/segment_public_api/models/update_filter_for_destination_v1_input.py
+++ b/segment_public_api/models/update_filter_for_destination_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_filter_for_destination_v1_output.py b/segment_public_api/models/update_filter_for_destination_v1_output.py
index 23fb3bc95..c28938fd7 100644
--- a/segment_public_api/models/update_filter_for_destination_v1_output.py
+++ b/segment_public_api/models/update_filter_for_destination_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_function200_response.py b/segment_public_api/models/update_function200_response.py
index 9907affed..c0e3b3257 100644
--- a/segment_public_api/models/update_function200_response.py
+++ b/segment_public_api/models/update_function200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_function_v1_input.py b/segment_public_api/models/update_function_v1_input.py
index c37193eb0..0dacf1993 100644
--- a/segment_public_api/models/update_function_v1_input.py
+++ b/segment_public_api/models/update_function_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_function_v1_output.py b/segment_public_api/models/update_function_v1_output.py
index 300784e13..1a8aa5bb6 100644
--- a/segment_public_api/models/update_function_v1_output.py
+++ b/segment_public_api/models/update_function_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_group_subscription_status_response.py b/segment_public_api/models/update_group_subscription_status_response.py
index 8352d0a6c..5c5094c80 100644
--- a/segment_public_api/models/update_group_subscription_status_response.py
+++ b/segment_public_api/models/update_group_subscription_status_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_insert_function_instance200_response.py b/segment_public_api/models/update_insert_function_instance200_response.py
index 44a0d540d..dac4f34b9 100644
--- a/segment_public_api/models/update_insert_function_instance200_response.py
+++ b/segment_public_api/models/update_insert_function_instance200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_insert_function_instance_alpha_input.py b/segment_public_api/models/update_insert_function_instance_alpha_input.py
index cb01006dd..40347b227 100644
--- a/segment_public_api/models/update_insert_function_instance_alpha_input.py
+++ b/segment_public_api/models/update_insert_function_instance_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_insert_function_instance_alpha_output.py b/segment_public_api/models/update_insert_function_instance_alpha_output.py
index a2f10e27f..82f91366d 100644
--- a/segment_public_api/models/update_insert_function_instance_alpha_output.py
+++ b/segment_public_api/models/update_insert_function_instance_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse200_response.py b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse200_response.py
index 9c5a03ef0..9d33606f3 100644
--- a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse200_response.py
+++ b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_input.py b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_input.py
index 4c77e916b..aafcfe354 100644
--- a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_input.py
+++ b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_output.py b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_output.py
index ddcb3904c..9d7996b4f 100644
--- a/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_output.py
+++ b/segment_public_api/models/update_profiles_warehouse_for_space_warehouse_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_reverse_etl_model200_response.py b/segment_public_api/models/update_reverse_etl_model200_response.py
index 6e6b16ce7..8d40b3d35 100644
--- a/segment_public_api/models/update_reverse_etl_model200_response.py
+++ b/segment_public_api/models/update_reverse_etl_model200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_reverse_etl_model_input.py b/segment_public_api/models/update_reverse_etl_model_input.py
index a5f932550..b45a29dac 100644
--- a/segment_public_api/models/update_reverse_etl_model_input.py
+++ b/segment_public_api/models/update_reverse_etl_model_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -19,8 +19,8 @@
 import json
 
 
-from typing import Any, Dict, Optional
-from pydantic import BaseModel, Field, StrictBool, StrictStr, validator
+from typing import Optional
+from pydantic import BaseModel, Field, StrictBool, StrictStr
 
 class UpdateReverseEtlModelInput(BaseModel):
     """
@@ -29,21 +29,9 @@ class UpdateReverseEtlModelInput(BaseModel):
     name: Optional[StrictStr] = Field(None, description="A short, human-readable description of the Model.")
     description: Optional[StrictStr] = Field(None, description="A longer, more descriptive explanation of the Model.")
     enabled: Optional[StrictBool] = Field(None, description="Indicates whether the Model should have syncs enabled. When disabled, no syncs will be triggered, regardless of the enabled status of the attached destinations/subscriptions.")
-    schedule_strategy: Optional[StrictStr] = Field(None, alias="scheduleStrategy", description="Determines the strategy used for triggering syncs, which will be used in conjunction with scheduleConfig.")
-    schedule_config: Optional[Dict[str, Any]] = Field(None, alias="scheduleConfig", description="Defines a configuration object used for scheduling, which can vary depending on the configured strategy, but must always be an object with at least 1 level of keys.")
     query: Optional[StrictStr] = Field(None, description="The SQL query that will be executed to extract data from the connected Source.")
     query_identifier_column: Optional[StrictStr] = Field(None, alias="queryIdentifierColumn", description="Indicates the column named in `query` that should be used to uniquely identify the extracted records.")
-    __properties = ["name", "description", "enabled", "scheduleStrategy", "scheduleConfig", "query", "queryIdentifierColumn"]
-
-    @validator('schedule_strategy')
-    def schedule_strategy_validate_enum(cls, value):
-        """Validates the enum"""
-        if value is None:
-            return value
-
-        if value not in ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS'):
-            raise ValueError("must be one of enum values ('MANUAL', 'PERIODIC', 'SPECIFIC_DAYS')")
-        return value
+    __properties = ["name", "description", "enabled", "query", "queryIdentifierColumn"]
 
     class Config:
         """Pydantic configuration"""
@@ -84,8 +72,6 @@ def from_dict(cls, obj: dict) -> UpdateReverseEtlModelInput:
             "name": obj.get("name"),
             "description": obj.get("description"),
             "enabled": obj.get("enabled"),
-            "schedule_strategy": obj.get("scheduleStrategy"),
-            "schedule_config": obj.get("scheduleConfig"),
             "query": obj.get("query"),
             "query_identifier_column": obj.get("queryIdentifierColumn")
         })
diff --git a/segment_public_api/models/update_reverse_etl_model_output.py b/segment_public_api/models/update_reverse_etl_model_output.py
index b4efbb29a..00063d69d 100644
--- a/segment_public_api/models/update_reverse_etl_model_output.py
+++ b/segment_public_api/models/update_reverse_etl_model_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_rules_in_tracking_plan200_response.py b/segment_public_api/models/update_rules_in_tracking_plan200_response.py
index a24a6db34..1e8979791 100644
--- a/segment_public_api/models/update_rules_in_tracking_plan200_response.py
+++ b/segment_public_api/models/update_rules_in_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_rules_in_tracking_plan_v1_input.py b/segment_public_api/models/update_rules_in_tracking_plan_v1_input.py
index b5b943fa0..9cc4e7cfd 100644
--- a/segment_public_api/models/update_rules_in_tracking_plan_v1_input.py
+++ b/segment_public_api/models/update_rules_in_tracking_plan_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_rules_in_tracking_plan_v1_output.py b/segment_public_api/models/update_rules_in_tracking_plan_v1_output.py
index 6b476772a..fc901c092 100644
--- a/segment_public_api/models/update_rules_in_tracking_plan_v1_output.py
+++ b/segment_public_api/models/update_rules_in_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_schema_settings_in_source200_response.py b/segment_public_api/models/update_schema_settings_in_source200_response.py
index 8a447c1d3..b44c1a8f3 100644
--- a/segment_public_api/models/update_schema_settings_in_source200_response.py
+++ b/segment_public_api/models/update_schema_settings_in_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_schema_settings_in_source_v1_input.py b/segment_public_api/models/update_schema_settings_in_source_v1_input.py
index 019f477fd..5eb033dd8 100644
--- a/segment_public_api/models/update_schema_settings_in_source_v1_input.py
+++ b/segment_public_api/models/update_schema_settings_in_source_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_schema_settings_in_source_v1_output.py b/segment_public_api/models/update_schema_settings_in_source_v1_output.py
index 3dd4632cc..5d3893ec7 100644
--- a/segment_public_api/models/update_schema_settings_in_source_v1_output.py
+++ b/segment_public_api/models/update_schema_settings_in_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse200_response.py b/segment_public_api/models/update_selective_sync_for_warehouse200_response.py
index c328c1c4d..dea22b559 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse200_response.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse_and_space200_response.py b/segment_public_api/models/update_selective_sync_for_warehouse_and_space200_response.py
index f0daa6ba8..21331ab7a 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse_and_space200_response.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse_and_space200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_input.py b/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_input.py
index ba83bbbea..538f9cb0e 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_input.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_output.py b/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_output.py
index 6751d3db8..602434089 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_output.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse_and_space_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse_v1_input.py b/segment_public_api/models/update_selective_sync_for_warehouse_v1_input.py
index 0977b6218..33ae7a52d 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse_v1_input.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_selective_sync_for_warehouse_v1_output.py b/segment_public_api/models/update_selective_sync_for_warehouse_v1_output.py
index 9b08c8bef..cf873f56e 100644
--- a/segment_public_api/models/update_selective_sync_for_warehouse_v1_output.py
+++ b/segment_public_api/models/update_selective_sync_for_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source200_response.py b/segment_public_api/models/update_source200_response.py
index b1f25b1a3..b29869768 100644
--- a/segment_public_api/models/update_source200_response.py
+++ b/segment_public_api/models/update_source200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source200_response1.py b/segment_public_api/models/update_source200_response1.py
index 46600e757..58f0c54d4 100644
--- a/segment_public_api/models/update_source200_response1.py
+++ b/segment_public_api/models/update_source200_response1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source_alpha_input.py b/segment_public_api/models/update_source_alpha_input.py
index 477b4f006..5f4e6324e 100644
--- a/segment_public_api/models/update_source_alpha_input.py
+++ b/segment_public_api/models/update_source_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source_alpha_output.py b/segment_public_api/models/update_source_alpha_output.py
index 3f7f34cde..165c71944 100644
--- a/segment_public_api/models/update_source_alpha_output.py
+++ b/segment_public_api/models/update_source_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source_v1_input.py b/segment_public_api/models/update_source_v1_input.py
index 4eb3fe4cd..0ca213673 100644
--- a/segment_public_api/models/update_source_v1_input.py
+++ b/segment_public_api/models/update_source_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_source_v1_output.py b/segment_public_api/models/update_source_v1_output.py
index 83994785d..bc2c8815d 100644
--- a/segment_public_api/models/update_source_v1_output.py
+++ b/segment_public_api/models/update_source_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_subscription_for_destination200_response.py b/segment_public_api/models/update_subscription_for_destination200_response.py
index 90103201c..57b398835 100644
--- a/segment_public_api/models/update_subscription_for_destination200_response.py
+++ b/segment_public_api/models/update_subscription_for_destination200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_subscription_for_destination_alpha_input.py b/segment_public_api/models/update_subscription_for_destination_alpha_input.py
index 40bd621dc..5cc42c5ee 100644
--- a/segment_public_api/models/update_subscription_for_destination_alpha_input.py
+++ b/segment_public_api/models/update_subscription_for_destination_alpha_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_subscription_for_destination_alpha_output.py b/segment_public_api/models/update_subscription_for_destination_alpha_output.py
index f66493378..c32fbd64d 100644
--- a/segment_public_api/models/update_subscription_for_destination_alpha_output.py
+++ b/segment_public_api/models/update_subscription_for_destination_alpha_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_tracking_plan200_response.py b/segment_public_api/models/update_tracking_plan200_response.py
index e5f0932c5..4006636ba 100644
--- a/segment_public_api/models/update_tracking_plan200_response.py
+++ b/segment_public_api/models/update_tracking_plan200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_tracking_plan_v1_input.py b/segment_public_api/models/update_tracking_plan_v1_input.py
index 38d470df4..5facfeb1a 100644
--- a/segment_public_api/models/update_tracking_plan_v1_input.py
+++ b/segment_public_api/models/update_tracking_plan_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_tracking_plan_v1_output.py b/segment_public_api/models/update_tracking_plan_v1_output.py
index ee00b96f9..49572099f 100644
--- a/segment_public_api/models/update_tracking_plan_v1_output.py
+++ b/segment_public_api/models/update_tracking_plan_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_transformation200_response.py b/segment_public_api/models/update_transformation200_response.py
index aec78b629..c83ee543e 100644
--- a/segment_public_api/models/update_transformation200_response.py
+++ b/segment_public_api/models/update_transformation200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_transformation_beta_input.py b/segment_public_api/models/update_transformation_beta_input.py
index a5a87c1ae..af17e72c0 100644
--- a/segment_public_api/models/update_transformation_beta_input.py
+++ b/segment_public_api/models/update_transformation_beta_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -33,7 +33,7 @@ class UpdateTransformationBetaInput(BaseModel):
     source_id: Optional[StrictStr] = Field(None, alias="sourceId", description="The optional Source to be associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata to be associated with the Transformation.")
     enabled: Optional[StrictBool] = Field(None, description="If the Transformation should be enabled.")
-    var_if: Optional[StrictStr] = Field(None, alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: Optional[StrictStr] = Field(None, alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameBeta)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationBeta)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
diff --git a/segment_public_api/models/update_transformation_beta_output.py b/segment_public_api/models/update_transformation_beta_output.py
index b582f3996..a691b77e9 100644
--- a/segment_public_api/models/update_transformation_beta_output.py
+++ b/segment_public_api/models/update_transformation_beta_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_transformation_v1_input.py b/segment_public_api/models/update_transformation_v1_input.py
index 7e7f64903..e8694e2b4 100644
--- a/segment_public_api/models/update_transformation_v1_input.py
+++ b/segment_public_api/models/update_transformation_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,6 +22,7 @@
 from typing import List, Optional
 from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
 from segment_public_api.models.fql_defined_property_v1 import FQLDefinedPropertyV1
+from segment_public_api.models.hash_properties_configuration import HashPropertiesConfiguration
 from segment_public_api.models.property_rename_v1 import PropertyRenameV1
 from segment_public_api.models.property_value_transformation_v1 import PropertyValueTransformationV1
 
@@ -33,12 +34,15 @@ class UpdateTransformationV1Input(BaseModel):
     source_id: Optional[StrictStr] = Field(None, alias="sourceId", description="The optional Source to be associated with the Transformation.")
     destination_metadata_id: Optional[StrictStr] = Field(None, alias="destinationMetadataId", description="The optional Destination metadata to be associated with the Transformation.")
     enabled: Optional[StrictBool] = Field(None, description="If the Transformation should be enabled.")
-    var_if: Optional[StrictStr] = Field(None, alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:   Track -\\> \"event='\\<eventName\\>'\"   Identify -\\> \"type='identify'\"   Group -\\> \"type='group'\"")
+    var_if: Optional[StrictStr] = Field(None, alias="if", description="If statement ([FQL](https://segment.com/docs/config-api/fql/)) to match events.  For standard event matchers, use the following:  Track -\\> \"event='\\<eventName\\>'\"  Identify -\\> \"type='identify'\"  Group -\\> \"type='group'\"")
+    drop: Optional[StrictBool] = Field(None, description="Optional boolean value if the Transformation should drop the event entirely when the if statement matches, ignores all other transforms.")
     new_event_name: Optional[StrictStr] = Field(None, alias="newEventName", description="Optional new event name for renaming events. Works only for 'track' event type.")
     property_renames: Optional[conlist(PropertyRenameV1)] = Field(None, alias="propertyRenames", description="Optional array for renaming properties collected by your events.")
     property_value_transformations: Optional[conlist(PropertyValueTransformationV1)] = Field(None, alias="propertyValueTransformations", description="Optional array for transforming properties and values collected by your events. Limited to 10 properties.")
     fql_defined_properties: Optional[conlist(FQLDefinedPropertyV1)] = Field(None, alias="fqlDefinedProperties", description="Optional array for updating properties defined in [FQL](https://segment.com/docs/config-api/fql/). Currently limited to 1 property.")
-    __properties = ["name", "sourceId", "destinationMetadataId", "enabled", "if", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties"]
+    allow_properties: Optional[conlist(StrictStr)] = Field(None, alias="allowProperties", description="Optional array for allowing properties from your events.")
+    hash_properties_configuration: Optional[HashPropertiesConfiguration] = Field(None, alias="hashPropertiesConfiguration")
+    __properties = ["name", "sourceId", "destinationMetadataId", "enabled", "if", "drop", "newEventName", "propertyRenames", "propertyValueTransformations", "fqlDefinedProperties", "allowProperties", "hashPropertiesConfiguration"]
 
     class Config:
         """Pydantic configuration"""
@@ -85,6 +89,9 @@ def to_dict(self):
                 if _item:
                     _items.append(_item.to_dict())
             _dict['fqlDefinedProperties'] = _items
+        # override the default output from pydantic by calling `to_dict()` of hash_properties_configuration
+        if self.hash_properties_configuration:
+            _dict['hashPropertiesConfiguration'] = self.hash_properties_configuration.to_dict()
         return _dict
 
     @classmethod
@@ -102,10 +109,13 @@ def from_dict(cls, obj: dict) -> UpdateTransformationV1Input:
             "destination_metadata_id": obj.get("destinationMetadataId"),
             "enabled": obj.get("enabled"),
             "var_if": obj.get("if"),
+            "drop": obj.get("drop"),
             "new_event_name": obj.get("newEventName"),
             "property_renames": [PropertyRenameV1.from_dict(_item) for _item in obj.get("propertyRenames")] if obj.get("propertyRenames") is not None else None,
             "property_value_transformations": [PropertyValueTransformationV1.from_dict(_item) for _item in obj.get("propertyValueTransformations")] if obj.get("propertyValueTransformations") is not None else None,
-            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None
+            "fql_defined_properties": [FQLDefinedPropertyV1.from_dict(_item) for _item in obj.get("fqlDefinedProperties")] if obj.get("fqlDefinedProperties") is not None else None,
+            "allow_properties": obj.get("allowProperties"),
+            "hash_properties_configuration": HashPropertiesConfiguration.from_dict(obj.get("hashPropertiesConfiguration")) if obj.get("hashPropertiesConfiguration") is not None else None
         })
         return _obj
 
diff --git a/segment_public_api/models/update_transformation_v1_output.py b/segment_public_api/models/update_transformation_v1_output.py
index c20c9ecce..3e8bda05d 100644
--- a/segment_public_api/models/update_transformation_v1_output.py
+++ b/segment_public_api/models/update_transformation_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_user_group200_response.py b/segment_public_api/models/update_user_group200_response.py
index 0239fe07a..64b60426f 100644
--- a/segment_public_api/models/update_user_group200_response.py
+++ b/segment_public_api/models/update_user_group200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_user_group_v1_input.py b/segment_public_api/models/update_user_group_v1_input.py
index b37188cc5..7be88d913 100644
--- a/segment_public_api/models/update_user_group_v1_input.py
+++ b/segment_public_api/models/update_user_group_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_user_group_v1_output.py b/segment_public_api/models/update_user_group_v1_output.py
index d20999213..b3ce48b49 100644
--- a/segment_public_api/models/update_user_group_v1_output.py
+++ b/segment_public_api/models/update_user_group_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_warehouse200_response.py b/segment_public_api/models/update_warehouse200_response.py
index c36304b56..98057e41a 100644
--- a/segment_public_api/models/update_warehouse200_response.py
+++ b/segment_public_api/models/update_warehouse200_response.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_warehouse_v1_input.py b/segment_public_api/models/update_warehouse_v1_input.py
index 5b90184d4..22f426e94 100644
--- a/segment_public_api/models/update_warehouse_v1_input.py
+++ b/segment_public_api/models/update_warehouse_v1_input.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/update_warehouse_v1_output.py b/segment_public_api/models/update_warehouse_v1_output.py
index febbdf443..4eeedd503 100644
--- a/segment_public_api/models/update_warehouse_v1_output.py
+++ b/segment_public_api/models/update_warehouse_v1_output.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/upsert_rule_v1.py b/segment_public_api/models/upsert_rule_v1.py
index 4546a1820..5a1148848 100644
--- a/segment_public_api/models/upsert_rule_v1.py
+++ b/segment_public_api/models/upsert_rule_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/user_group_v1.py b/segment_public_api/models/user_group_v1.py
index eafed2f80..8cfed1903 100644
--- a/segment_public_api/models/user_group_v1.py
+++ b/segment_public_api/models/user_group_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/user_v1.py b/segment_public_api/models/user_v1.py
index 83624615a..c778c2421 100644
--- a/segment_public_api/models/user_v1.py
+++ b/segment_public_api/models/user_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/users_per_source_snapshot_v1.py b/segment_public_api/models/users_per_source_snapshot_v1.py
index 85b18e5b1..438a924bf 100644
--- a/segment_public_api/models/users_per_source_snapshot_v1.py
+++ b/segment_public_api/models/users_per_source_snapshot_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/version.py b/segment_public_api/models/version.py
index e60765af6..9bcad471d 100644
--- a/segment_public_api/models/version.py
+++ b/segment_public_api/models/version.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/warehouse_advanced_sync_v1.py b/segment_public_api/models/warehouse_advanced_sync_v1.py
index 930e0ad4b..906d81b12 100644
--- a/segment_public_api/models/warehouse_advanced_sync_v1.py
+++ b/segment_public_api/models/warehouse_advanced_sync_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/warehouse_metadata_v1.py b/segment_public_api/models/warehouse_metadata_v1.py
index c0b3c8b89..4e5532bac 100644
--- a/segment_public_api/models/warehouse_metadata_v1.py
+++ b/segment_public_api/models/warehouse_metadata_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/warehouse_selective_sync_item_v1.py b/segment_public_api/models/warehouse_selective_sync_item_v1.py
index 8e8d91d61..52539e908 100644
--- a/segment_public_api/models/warehouse_selective_sync_item_v1.py
+++ b/segment_public_api/models/warehouse_selective_sync_item_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -20,7 +20,7 @@
 
 
 from typing import Any, Dict
-from pydantic import BaseModel, Field, StrictStr
+from pydantic import BaseModel, Field, StrictBool, StrictStr
 
 class WarehouseSelectiveSyncItemV1(BaseModel):
     """
@@ -29,8 +29,9 @@ class WarehouseSelectiveSyncItemV1(BaseModel):
     source_id: StrictStr = Field(..., alias="sourceId", description="The Source id attached to this Warehouse.")
     collection: StrictStr = Field(..., description="The collection within the Source.")
     warehouse_id: StrictStr = Field(..., alias="warehouseId", description="The id of the Warehouse this sync belongs to.")
+    enabled: StrictBool = Field(..., description="Whether this Selective Sync item is enabled.")
     properties: Dict[str, Any] = Field(..., description="A map that contains the properties within the collection to which the Warehouse should sync.")
-    __properties = ["sourceId", "collection", "warehouseId", "properties"]
+    __properties = ["sourceId", "collection", "warehouseId", "enabled", "properties"]
 
     class Config:
         """Pydantic configuration"""
@@ -71,6 +72,7 @@ def from_dict(cls, obj: dict) -> WarehouseSelectiveSyncItemV1:
             "source_id": obj.get("sourceId"),
             "collection": obj.get("collection"),
             "warehouse_id": obj.get("warehouseId"),
+            "enabled": obj.get("enabled"),
             "properties": obj.get("properties")
         })
         return _obj
diff --git a/segment_public_api/models/warehouse_sync_override_v1.py b/segment_public_api/models/warehouse_sync_override_v1.py
index f2e07e592..6565f8f88 100644
--- a/segment_public_api/models/warehouse_sync_override_v1.py
+++ b/segment_public_api/models/warehouse_sync_override_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/warehouse_v1.py b/segment_public_api/models/warehouse_v1.py
index e85e659e3..48925a039 100644
--- a/segment_public_api/models/warehouse_v1.py
+++ b/segment_public_api/models/warehouse_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/models/workspace_v1.py b/segment_public_api/models/workspace_v1.py
index 5d7cf25e5..d791663ba 100644
--- a/segment_public_api/models/workspace_v1.py
+++ b/segment_public_api/models/workspace_v1.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/segment_public_api/rest.py b/segment_public_api/rest.py
index e9cf9236e..0d2127d26 100644
--- a/segment_public_api/rest.py
+++ b/segment_public_api/rest.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
diff --git a/setup.py b/setup.py
index 4d06f4f9b..cb5df0813 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@
 
     The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs.  All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace.  See the next sections for more information on how to use the Segment Public API. 
 
-    The version of the OpenAPI document: 37.2.0
+    The version of the OpenAPI document: 58.13.0
     Contact: friends@segment.com
     Generated by OpenAPI Generator (https://openapi-generator.tech)
 
@@ -22,7 +22,7 @@
 # prerequisite: setuptools
 # http://pypi.python.org/pypi/setuptools
 NAME = "segment-public-api"
-VERSION = "37.2.0"
+VERSION = "58.13.0"
 PYTHON_REQUIRES = ">=3.7"
 REQUIRES = [
     "urllib3 >= 1.25.3, < 2.1.0",
