Skip to content

Standardize pagination operations and collection option types#1152

Open
christothes wants to merge 5 commits into
openai:mainfrom
christothes:chriss/paginationFixes2
Open

Standardize pagination operations and collection option types#1152
christothes wants to merge 5 commits into
openai:mainfrom
christothes:chriss/paginationFixes2

Conversation

@christothes
Copy link
Copy Markdown
Collaborator

closes #1110

Copilot AI review requested due to automatic review settings May 1, 2026 22:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Standardizes pagination across the TypeSpec surface by reusing shared “collection options” models (with REST-accurate names) and applying .NET-friendly renames in the client customization layer, then regenerates the affected SDK code and public API exports.

Changes:

  • Replaced inline pagination query parameters in several operations with spreads of shared *CollectionOptions models.
  • Renamed shared pagination fields in base TypeSpec models to REST names (limit, after, before) and added/updated @@clientName mappings for .NET naming.
  • Updated codegen pagination visitor and regenerated SDK code / API exports; adjusted impacted tests.

Reviewed changes

Copilot reviewed 37 out of 124 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/Batch/BatchTests.cs Updates test call sites to renamed pagination parameters.
specification/client/vector-stores.client.tsp Adds .NET @@clientName mappings for vector store pagination options.
specification/client/runs.client.tsp Adds .NET @@clientName mappings for run pagination options.
specification/client/responses.client.tsp Adds .NET @@clientName mappings for response item pagination options.
specification/client/models/vector-stores.models.tsp Removes client-side pagination option models (moved to base) and keeps vector store client models.
specification/client/models/chat.models.tsp Removes client-side pagination option model (moved to base).
specification/client/models/batch.models.tsp Removes client-side pagination option model (moved to base).
specification/client/models/assistants.models.tsp Removes client-side pagination option models (moved to base).
specification/client/messages.client.tsp Adds .NET @@clientName mappings for message pagination options.
specification/client/containers.client.tsp Adds .NET @@clientName mappings for container pagination options.
specification/client/chat.client.tsp Adds .NET @@clientName mappings for chat pagination options.
specification/client/batch.client.tsp Adds .NET @@clientName mappings for batch pagination options.
specification/client/assistants.client.tsp Adds .NET @@clientName mappings for assistant pagination options.
specification/base/typespec/vector-stores/operations.tsp Replaces inline pagination query params with ...VectorStore*CollectionOptions.
specification/base/typespec/vector-stores/models.tsp Introduces REST-shaped vector store pagination option models.
specification/base/typespec/runs/operations.tsp Replaces inline pagination query params with ...Run*CollectionOptions.
specification/base/typespec/runs/models.tsp Introduces REST-shaped run pagination option models.
specification/base/typespec/responses/operations.tsp Replaces inline pagination query params with ...DotNetResponseItemCollectionOptions.
specification/base/typespec/responses/models.tsp Renames response item pagination fields to REST names and adjusts model shape/order.
specification/base/typespec/messages/operations.tsp Replaces inline pagination query params with ...MessageCollectionOptions.
specification/base/typespec/messages/models.tsp Introduces REST-shaped message pagination option model.
specification/base/typespec/containers/operations.tsp Replaces inline pagination query params with ...Container*CollectionOptions.
specification/base/typespec/containers/models.tsp Renames container pagination fields to REST names and adjusts model shape.
specification/base/typespec/chat/operations.tsp Replaces inline pagination query params with ...ChatCompletion*CollectionOptions.
specification/base/typespec/chat/models.tsp Introduces REST-shaped chat pagination option models and renames fields to REST names.
specification/base/typespec/batch/operations.tsp Replaces inline pagination query params with ...BatchCollectionOptions.
specification/base/typespec/batch/models.tsp Introduces REST-shaped batch pagination option model.
specification/base/typespec/assistants/operations.tsp Replaces inline pagination query params with ...AssistantCollectionOptions.
specification/base/typespec/assistants/models.tsp Introduces REST-shaped assistant pagination option model.
codegen/generator/src/Visitors/PaginationVisitor.cs Updates pagination parameter replacement logic to recognize additional param names (e.g., beforeId) case-insensitively.
api/OpenAI.netstandard2.0.cs Updates public API export parameter names for pagination overloads.
api/OpenAI.net8.0.cs Updates public API export parameter names for pagination overloads.
api/OpenAI.net10.0.cs Updates public API export parameter names for pagination overloads.
api/OpenAI.Responses.netstandard2.0.cs Updates Responses public API export for pagination model factory signature.
api/OpenAI.Responses.net8.0.cs Updates Responses public API export for pagination model factory signature.
api/OpenAI.Responses.net10.0.cs Updates Responses public API export for pagination model factory signature.
OpenAI/src/Generated/VectorStoreClient.cs Regenerated vector store client overloads to use updated parameter naming.
OpenAI/src/Generated/VectorStoreClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/OpenAIModelFactory.cs Regenerated model factory methods for pagination option models (new/updated signatures).
OpenAI/src/Generated/Models/VectorStores/VectorStoreFileCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/VectorStores/VectorStoreFileCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/VectorStores/VectorStoreCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/VectorStores/VectorStoreCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Containers/ContainerFileCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Containers/ContainerFileCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Containers/ContainerCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Containers/ContainerCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Assistants/RunStepCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Assistants/RunStepCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Assistants/RunCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Assistants/RunCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Assistants/MessageCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Assistants/MessageCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/Models/Assistants/AssistantCollectionOptions.cs Regenerated model to reflect new parameter ordering/names.
OpenAI/src/Generated/Models/Assistants/AssistantCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI/src/Generated/InternalAssistantRunClient.cs Regenerated internal run client overloads to use updated parameter naming.
OpenAI/src/Generated/InternalAssistantRunClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/InternalAssistantMessageClient.cs Regenerated internal message client overloads to use updated parameter naming.
OpenAI/src/Generated/InternalAssistantMessageClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/ContainerClient.cs Regenerated container client overloads to use updated parameter naming.
OpenAI/src/Generated/ContainerClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoresCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoresCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoresAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoresAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesInBatchCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesInBatchCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesInBatchAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesInBatchAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/VectorStoreClientGetVectorStoreFilesAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunsCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunsCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunsAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunsAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunStepsCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunStepsCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunStepsAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantRunClientGetRunStepsAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantMessageClientGetMessagesCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantMessageClientGetMessagesCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantMessageClientGetMessagesAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/InternalAssistantMessageClientGetMessagesAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainersCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainersCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainersAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainersAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainerFilesCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainerFilesCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainerFilesAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ContainerClientGetContainerFilesAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionsCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionsCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionsAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionsAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionMessagesCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionMessagesCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionMessagesAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/ChatClientGetChatCompletionMessagesAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/BatchClientGetBatchesCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/BatchClientGetBatchesCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/BatchClientGetBatchesAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/BatchClientGetBatchesAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/AssistantClientGetAssistantsCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/AssistantClientGetAssistantsCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/AssistantClientGetAssistantsAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/CollectionResults/AssistantClientGetAssistantsAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI/src/Generated/ChatClient.cs Regenerated chat client pagination overloads to use updated parameter naming.
OpenAI/src/Generated/ChatClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/BatchClient.cs Regenerated batch client pagination overloads to use updated parameter naming.
OpenAI/src/Generated/BatchClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI/src/Generated/AssistantClient.cs Regenerated assistant client pagination overloads to use updated parameter naming.
OpenAI/src/Generated/AssistantClient.RestClient.cs Regenerated request builders to use renamed pagination parameters.
OpenAI.Responses/src/Generated/ResponsesClient.RestClient.cs Regenerated Responses request builder to use renamed pagination parameters.
OpenAI.Responses/src/Generated/OpenAIResponsesModelFactory.cs Regenerated Responses model factory signature/order for pagination options.
OpenAI.Responses/src/Generated/Models/ResponseItemCollectionOptions.cs Regenerated pagination options model to reflect new parameter ordering/names.
OpenAI.Responses/src/Generated/Models/ResponseItemCollectionOptions.Serialization.cs Regenerated serialization ctor calls to match new parameter ordering.
OpenAI.Responses/src/Generated/CollectionResults/ResponsesClientGetResponseInputItemsCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI.Responses/src/Generated/CollectionResults/ResponsesClientGetResponseInputItemsCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI.Responses/src/Generated/CollectionResults/ResponsesClientGetResponseInputItemsAsyncCollectionResultOfT.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI.Responses/src/Generated/CollectionResults/ResponsesClientGetResponseInputItemsAsyncCollectionResult.cs Regenerated pagination state fields/ctor args to match renamed params.
OpenAI.Responses/src/Custom/ResponsesClient.cs Updates custom pagination plumbing to match renamed request-builder parameters.

Comment thread specification/client/vector-stores.client.tsp Outdated
Comment thread specification/base/typespec/vector-stores/models.tsp
Comment thread codegen/generator/src/Visitors/PaginationVisitor.cs Outdated
Comment thread specification/client/vector-stores.client.tsp Outdated
Comment thread specification/client/vector-stores.client.tsp Outdated
Comment thread codegen/generator/src/Visitors/PaginationVisitor.cs
Copilot AI review requested due to automatic review settings May 4, 2026 22:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 34 out of 121 changed files in this pull request and generated 9 comments.

Comment on lines +44 to +47
@query(#{ explode: true })
@continuationToken
@extension("x-ms-list-continuation-token", true)
after?: string;
Comment on lines +54 to +55
@query(#{ explode: true })
before?: string;
Comment on lines +65 to +66
@query(#{ explode: true })
limit?: int32 = 20;
Comment on lines +72 to +73
@query(#{ explode: true })
order?: VectorStoreFileCollectionOrder = VectorStoreFileCollectionOrder.Descending;
Comment on lines +80 to +83
@query(#{ explode: true })
@continuationToken
@extension("x-ms-list-continuation-token", true)
after?: string;
Comment on lines +90 to +91
@query(#{ explode: true })
before?: string;
Comment on lines +93 to +95
/** Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. */
@query(#{ explode: true })
filter?: ListVectorStoreFilesFilter;
Comment on lines +1071 to 1074
public static AssistantCollectionOptions AssistantCollectionOptions(int? pageSizeLimit = default, AssistantCollectionOrder? order = default, string afterId = default, string beforeId = default)
{
return new AssistantCollectionOptions(afterId, beforeId, pageSizeLimit, order, additionalBinaryDataProperties: null);
return new AssistantCollectionOptions(pageSizeLimit, order, afterId, beforeId, additionalBinaryDataProperties: null);
}
Comment on lines +236 to 245
public static ResponseItemCollectionOptions ResponseItemCollectionOptions(string responseId = default, int? pageSizeLimit = default, ResponseItemCollectionOrder? order = default, string afterId = default, string beforeId = default)
{
return new ResponseItemCollectionOptions(
responseId,
afterId,
beforeId,
pageSizeLimit,
order,
afterId,
beforeId,
additionalBinaryDataProperties: null);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use shared pagination option models instead of redeclaring pagination parameters in TypeSpec

3 participants