openai_core/resources/
skills.rs1use http::Method;
4
5use crate::generated::endpoints;
6
7use super::{
8 BytesRequestBuilder, DeleteResponse, JsonRequestBuilder, ListRequestBuilder, Skill,
9 SkillVersion, SkillVersionsContentResource, SkillVersionsResource, SkillsContentResource,
10 SkillsResource, encode_path_segment,
11};
12
13impl SkillsResource {
14 pub fn create(&self) -> JsonRequestBuilder<Skill> {
16 let endpoint = endpoints::skills::SKILLS_CREATE;
17 JsonRequestBuilder::new(
18 self.client.clone(),
19 endpoint.id,
20 Method::POST,
21 endpoint.template,
22 )
23 }
24
25 pub fn retrieve(&self, skill_id: impl Into<String>) -> JsonRequestBuilder<Skill> {
27 let skill_id = encode_path_segment(skill_id.into());
28 let endpoint = endpoints::skills::SKILLS_RETRIEVE;
29 JsonRequestBuilder::new(
30 self.client.clone(),
31 endpoint.id,
32 Method::GET,
33 endpoint.render(&[("skill_id", &skill_id)]),
34 )
35 }
36
37 pub fn update(&self, skill_id: impl Into<String>) -> JsonRequestBuilder<Skill> {
39 let skill_id = encode_path_segment(skill_id.into());
40 let endpoint = endpoints::skills::SKILLS_UPDATE;
41 JsonRequestBuilder::new(
42 self.client.clone(),
43 endpoint.id,
44 Method::POST,
45 endpoint.render(&[("skill_id", &skill_id)]),
46 )
47 }
48
49 pub fn list(&self) -> ListRequestBuilder<Skill> {
51 let endpoint = endpoints::skills::SKILLS_LIST;
52 ListRequestBuilder::new(self.client.clone(), endpoint.id, endpoint.template)
53 }
54
55 pub fn delete(&self, skill_id: impl Into<String>) -> JsonRequestBuilder<DeleteResponse> {
57 let skill_id = encode_path_segment(skill_id.into());
58 let endpoint = endpoints::skills::SKILLS_DELETE;
59 JsonRequestBuilder::new(
60 self.client.clone(),
61 endpoint.id,
62 Method::DELETE,
63 endpoint.render(&[("skill_id", &skill_id)]),
64 )
65 }
66
67 pub fn content(&self) -> SkillsContentResource {
69 SkillsContentResource::new(self.client.clone())
70 }
71
72 pub fn versions(&self) -> SkillVersionsResource {
74 SkillVersionsResource::new(self.client.clone())
75 }
76}
77
78impl SkillsContentResource {
79 pub fn retrieve(&self, skill_id: impl Into<String>) -> BytesRequestBuilder {
81 let skill_id = encode_path_segment(skill_id.into());
82 let endpoint = endpoints::skills::SKILLS_CONTENT_RETRIEVE;
83 BytesRequestBuilder::new(
84 self.client.clone(),
85 endpoint.id,
86 Method::GET,
87 endpoint.render(&[("skill_id", &skill_id)]),
88 )
89 }
90}
91
92impl SkillVersionsResource {
93 pub fn create(&self, skill_id: impl Into<String>) -> JsonRequestBuilder<SkillVersion> {
95 let skill_id = encode_path_segment(skill_id.into());
96 let endpoint = endpoints::skills::SKILLS_VERSIONS_CREATE;
97 JsonRequestBuilder::new(
98 self.client.clone(),
99 endpoint.id,
100 Method::POST,
101 endpoint.render(&[("skill_id", &skill_id)]),
102 )
103 }
104
105 pub fn retrieve(
107 &self,
108 skill_id: impl Into<String>,
109 version_id: impl Into<String>,
110 ) -> JsonRequestBuilder<SkillVersion> {
111 let skill_id = encode_path_segment(skill_id.into());
112 let version_id = encode_path_segment(version_id.into());
113 let endpoint = endpoints::skills::SKILLS_VERSIONS_RETRIEVE;
114 JsonRequestBuilder::new(
115 self.client.clone(),
116 endpoint.id,
117 Method::GET,
118 endpoint.render(&[("skill_id", &skill_id), ("version_id", &version_id)]),
119 )
120 }
121
122 pub fn list(&self, skill_id: impl Into<String>) -> ListRequestBuilder<SkillVersion> {
124 let skill_id = encode_path_segment(skill_id.into());
125 let endpoint = endpoints::skills::SKILLS_VERSIONS_LIST;
126 ListRequestBuilder::new(
127 self.client.clone(),
128 endpoint.id,
129 endpoint.render(&[("skill_id", &skill_id)]),
130 )
131 }
132
133 pub fn delete(
135 &self,
136 skill_id: impl Into<String>,
137 version_id: impl Into<String>,
138 ) -> JsonRequestBuilder<DeleteResponse> {
139 let skill_id = encode_path_segment(skill_id.into());
140 let version_id = encode_path_segment(version_id.into());
141 let endpoint = endpoints::skills::SKILLS_VERSIONS_DELETE;
142 JsonRequestBuilder::new(
143 self.client.clone(),
144 endpoint.id,
145 Method::DELETE,
146 endpoint.render(&[("skill_id", &skill_id), ("version_id", &version_id)]),
147 )
148 }
149
150 pub fn content(&self) -> SkillVersionsContentResource {
152 SkillVersionsContentResource::new(self.client.clone())
153 }
154}
155
156impl SkillVersionsContentResource {
157 pub fn retrieve(
159 &self,
160 skill_id: impl Into<String>,
161 version_id: impl Into<String>,
162 ) -> BytesRequestBuilder {
163 let skill_id = encode_path_segment(skill_id.into());
164 let version_id = encode_path_segment(version_id.into());
165 let endpoint = endpoints::skills::SKILLS_VERSIONS_CONTENT_RETRIEVE;
166 BytesRequestBuilder::new(
167 self.client.clone(),
168 endpoint.id,
169 Method::GET,
170 endpoint.render(&[("skill_id", &skill_id), ("version_id", &version_id)]),
171 )
172 }
173}