// GENERATED by tools/gen — DO NOT EDIT.
///|
fn[T : ToJson] parameter_value(value : T) -> String {
match Json(value) {
String(value) => value
True => "true"
False => "false"
Number(value, repr~) =>
match repr {
Some(text) => text
None => value.to_string()
}
other => other.stringify()
}
}
///|
fn parse_json_body(body : Bytes) -> Json raise {
@json.parse(@utf8.decode(body))
}
///|
fn[T : @json.FromJson] decode_response(
head : @http.ResponseHead,
body : Bytes,
) -> Result[T, @client.ResponseFailure] {
Ok(@json.from_json(parse_json_body(body))) catch {
error =>
Err(
@client.Deserialization(
head,
message=error.to_string(),
body=body[:body.length().min(@client.max_error_body)].to_owned(),
),
)
}
}
///|
///
/// Create a Message
pub fn messages_post_request(
body : CreateMessageParams,
anthropic_version? : String,
anthropic_user_profile_id? : String,
anthropic_workspace_id? : String,
) -> @http.Request {
let mut request = @http.Request::post("/v1/messages").body_json(Json(body))
match anthropic_version {
Some(value) =>
request = request.header("anthropic-version", parameter_value(value))
None => ()
}
match anthropic_user_profile_id {
Some(value) =>
request = request.header(
"anthropic-user-profile-id",
parameter_value(value),
)
None => ()
}
match anthropic_workspace_id {
Some(value) =>
request = request.header("anthropic-workspace-id", parameter_value(value))
None => ()
}
request
}
///|
///
/// Decodes a parsed successful messages_post response.
pub fn messages_post_decode_json(
value : Json,
) -> Message raise @json.JsonDecodeError {
@json.from_json(value)
}
///|
///
/// Decodes a successful messages_post response.
pub fn messages_post_decode(
head : @http.ResponseHead,
body : Bytes,
) -> Result[Message, @client.ResponseFailure] {
decode_response(head, body)
}
///|
///
/// List Models
pub fn models_list_request(
before_id? : String,
after_id? : String,
limit? : Int32,
lifecycle? : Array[ModelsListLifecycleItem],
anthropic_version? : String,
anthropic_workspace_id? : String,
) -> @http.Request {
let mut url = "/v1/models"
match before_id {
Some(value) =>
url = @http.append_query(url, "before_id", parameter_value(value))
None => ()
}
match after_id {
Some(value) =>
url = @http.append_query(url, "after_id", parameter_value(value))
None => ()
}
match limit {
Some(value) =>
url = @http.append_query(url, "limit", parameter_value(value))
None => ()
}
match lifecycle {
Some(values) =>
for value in values {
url = @http.append_query(url, "lifecycle[]", parameter_value(value))
}
None => ()
}
let mut request = @http.Request::get(url)
match anthropic_version {
Some(value) =>
request = request.header("anthropic-version", parameter_value(value))
None => ()
}
match anthropic_workspace_id {
Some(value) =>
request = request.header("anthropic-workspace-id", parameter_value(value))
None => ()
}
request
}
///|
///
/// Decodes a parsed successful models_list response.
pub fn models_list_decode_json(
value : Json,
) -> ListResponseModelInfo raise @json.JsonDecodeError {
@json.from_json(value)
}
///|
///
/// Decodes a successful models_list response.
pub fn models_list_decode(
head : @http.ResponseHead,
body : Bytes,
) -> Result[ListResponseModelInfo, @client.ResponseFailure] {
decode_response(head, body)
}
///|
///
/// Get a Model
pub fn models_get_request(
model_id : String,
anthropic_version? : String,
anthropic_workspace_id? : String,
) -> @http.Request {
let mut request = @http.Request::get(
"/v1/models/" + @http.percent_encode(parameter_value(model_id)),
)
match anthropic_version {
Some(value) =>
request = request.header("anthropic-version", parameter_value(value))
None => ()
}
match anthropic_workspace_id {
Some(value) =>
request = request.header("anthropic-workspace-id", parameter_value(value))
None => ()
}
request
}
///|
///
/// Decodes a parsed successful models_get response.
pub fn models_get_decode_json(
value : Json,
) -> ModelInfo raise @json.JsonDecodeError {
@json.from_json(value)
}
///|
///
/// Decodes a successful models_get response.
pub fn models_get_decode(
head : @http.ResponseHead,
body : Bytes,
) -> Result[ModelInfo, @client.ResponseFailure] {
decode_response(head, body)
}
///|
///
/// Count tokens in a Message
pub fn messages_count_tokens_post_request(
body : CountMessageTokensParams,
anthropic_version? : String,
anthropic_user_profile_id? : String,
anthropic_workspace_id? : String,
) -> @http.Request {
let mut request = @http.Request::post("/v1/messages/count_tokens").body_json(
Json(body),
)
match anthropic_version {
Some(value) =>
request = request.header("anthropic-version", parameter_value(value))
None => ()
}
match anthropic_user_profile_id {
Some(value) =>
request = request.header(
"anthropic-user-profile-id",
parameter_value(value),
)
None => ()
}
match anthropic_workspace_id {
Some(value) =>
request = request.header("anthropic-workspace-id", parameter_value(value))
None => ()
}
request
}
///|
///
/// Decodes a parsed successful messages_count_tokens_post response.
pub fn messages_count_tokens_post_decode_json(
value : Json,
) -> CountMessageTokensResponse raise @json.JsonDecodeError {
@json.from_json(value)
}
///|
///
/// Decodes a successful messages_count_tokens_post response.
pub fn messages_count_tokens_post_decode(
head : @http.ResponseHead,
body : Bytes,
) -> Result[CountMessageTokensResponse, @client.ResponseFailure] {
decode_response(head, body)
}