Skip to content

Commit 75ec790

Browse files
authored
Generate container convenience APIs including paginated APIs (#624)
1 parent 9a979ad commit 75ec790

File tree

114 files changed

+15401
-12568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+15401
-12568
lines changed

api/OpenAI.net8.0.cs

Lines changed: 113 additions & 39 deletions
Large diffs are not rendered by default.

api/OpenAI.netstandard2.0.cs

Lines changed: 100 additions & 37 deletions
Large diffs are not rendered by default.

codegen/generator/src/OpenAILibraryGenerator.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ protected override void Configure()
3333
AddVisitor(new OpenAILibraryVisitor());
3434
AddVisitor(new VirtualMessageCreationVisitor());
3535
AddVisitor(new ProhibitedNamespaceVisitor());
36-
AddVisitor(new ExplicitConversionFromClientResultVisitor());
3736
AddVisitor(new ImplicitConversionToBinaryContentVisitor());
3837
AddVisitor(new ModelSerializationVisitor());
3938
AddVisitor(new ExperimentalAttributeVisitor());

codegen/generator/src/Visitors/ExplicitConversionFromClientResultVisitor.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.

codegen/generator/src/Visitors/PaginationVisitor.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,22 @@ public class PaginationVisitor : ScmLibraryVisitor
4646
"GetChatCompletionMessagesAsync",
4747
("ChatCompletionMessageListDatum", "ChatCompletionMessageCollectionOptions", _chatParamsToReplace)
4848
},
49+
{
50+
"GetContainers",
51+
("ContainerResource", "ContainerCollectionOptions", _chatParamsToReplace)
52+
},
53+
{
54+
"GetContainersAsync",
55+
("ContainerResource", "ContainerCollectionOptions", _chatParamsToReplace)
56+
},
57+
{
58+
"GetContainerFiles",
59+
("ContainerFileResource", "ContainerFileCollectionOptions", _chatParamsToReplace)
60+
},
61+
{
62+
"GetContainerFilesAsync",
63+
("ContainerFileResource", "ContainerFileCollectionOptions", _chatParamsToReplace)
64+
},
4965
{
5066
"GetInputItems",
5167
("ResponseItem", "ResponseItemCollectionOptions", _chatParamsToReplace)

specification/base/typespec/containers/models.tsp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ model ContainerFileListResource {
1313
object: "list";
1414

1515
/** A list of container files. */
16-
data: ContainerFileResource[];
16+
@pageItems data: ContainerFileResource[];
1717

1818
/** The ID of the first file in the list. */
1919
first_id: string;
2020

2121
/** The ID of the last file in the list. */
22-
last_id: string;
22+
@continuationToken last_id: string;
2323

2424
/** Whether there are more files available. */
2525
has_more: boolean;
@@ -59,13 +59,13 @@ model ContainerListResource {
5959
object: "list";
6060

6161
/** A list of containers. */
62-
data: ContainerResource[];
62+
@pageItems data: ContainerResource[];
6363

6464
/** The ID of the first container in the list. */
6565
first_id: string;
6666

6767
/** The ID of the last container in the list. */
68-
last_id: string;
68+
@continuationToken last_id: string;
6969

7070
/** Whether there are more containers available. */
7171
has_more: boolean;

specification/base/typespec/containers/operations.tsp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ namespace OpenAI;
1414
interface Containers {
1515
@get
1616
@operationId("ListContainers")
17+
@list
1718
listContainers(
1819
...PageLimitQueryParameter,
1920
...PageOrderQueryParameter,
@@ -64,6 +65,7 @@ interface Containers {
6465
@get
6566
@route("{container_id}/files")
6667
@operationId("ListContainerFiles")
68+
@list
6769
listContainerFiles(
6870
@path
6971
container_id: string,

specification/client/containers.client.tsp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,6 @@ import "@azure-tools/typespec-client-generator-core";
44
using OpenAI;
55
using Azure.ClientGenerator.Core;
66

7-
@@convenientAPI(Containers.listContainers, false);
8-
@@convenientAPI(Containers.createContainer, false);
9-
@@convenientAPI(Containers.retrieveContainer, false);
10-
@@convenientAPI(Containers.deleteContainer, false);
11-
@@convenientAPI(Containers.createContainerFile, false);
12-
@@convenientAPI(Containers.listContainerFiles, false);
13-
@@convenientAPI(Containers.retrieveContainerFile, false);
14-
@@convenientAPI(Containers.deleteContainerFile, false);
15-
@@convenientAPI(Containers.retrieveContainerFileContent, false);
16-
177
@@clientName(Containers.retrieveContainer, "GetContainer");
188
@@clientName(Containers.retrieveContainerFile, "GetContainerFile");
199
@@clientName(Containers.retrieveContainerFileContent, "GetContainerFileContent");
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import "../../base/typespec/containers/main.tsp";
2+
import "@azure-tools/typespec-client-generator-core";
3+
4+
using Azure.ClientGenerator.Core;
5+
using TypeSpec.Http;
6+
7+
namespace OpenAI;
8+
9+
alias ContainerCollectionOrderQueryParameter = {
10+
/**
11+
* Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`
12+
* for descending order.
13+
*/
14+
@query order?: ContainerCollectionOrder;
15+
};
16+
17+
union ContainerCollectionOrder {
18+
string,
19+
Ascending: "asc",
20+
Descending: "desc",
21+
}
22+
23+
@access(Access.public)
24+
@usage(Usage.input)
25+
model ContainerCollectionOptions {
26+
...CollectionAfterQueryParameter,
27+
...CollectionLimitQueryParameter,
28+
...ContainerCollectionOrderQueryParameter,
29+
}
30+
31+
alias ContainerFileCollectionOrderQueryParameter = {
32+
/**
33+
* Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`
34+
* for descending order.
35+
*/
36+
@query order?: ContainerCollectionOrder;
37+
};
38+
39+
union ContainerFileCollectionOrder {
40+
string,
41+
Ascending: "asc",
42+
Descending: "desc",
43+
}
44+
45+
@access(Access.public)
46+
@usage(Usage.input)
47+
model ContainerFileCollectionOptions {
48+
...CollectionAfterQueryParameter,
49+
...CollectionLimitQueryParameter,
50+
...ContainerFileCollectionOrderQueryParameter,
51+
}

specification/main.tsp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import "./client/vector-stores.client.tsp";
1616

1717
import "./client/models/audio.models.tsp";
1818
import "./client/models/chat.models.tsp";
19+
import "./client/models/container.models.tsp";
1920
import "./client/models/common.models.tsp";
2021
import "./client/models/responses.models.tsp";
2122
import "./client/models/vector-stores.models.tsp";

0 commit comments

Comments
 (0)