Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#nullable enable

namespace ResembleAI
{
public partial interface IDeepfakeDetectionClient
{
/// <summary>
/// Submit detection feedback<br/>
/// Tell Resemble whether a detection verdict was right — and when it wasn't, what it<br/>
/// should have been. The answer is stored with a snapshot of what the model said at the<br/>
/// time of submission (verdict, score, media type, raw metrics), so it stays interpretable<br/>
/// even if the detect is later re-run or deleted.<br/>
/// Upserts on `(detect, user)`: re-posting edits your existing answer rather than adding a<br/>
/// second one. There is no separate update call. Feedback is per user, not per team — a<br/>
/// teammate's answer on the same detect is invisible to you.<br/>
/// The detect must have completed processing; feedback on a pending or failed detect is<br/>
/// rejected with 400. Teams without Detect access also receive 400 (not 403).
/// </summary>
/// <param name="uuid"></param>
/// <param name="request"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.DeepfakeDetectionCreateDetectFeedbackResponse200> CreateDetectFeedbackAsync(
string uuid,

global::ResembleAI.CreateDetectFeedbackRequest request,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
/// <summary>
/// Submit detection feedback<br/>
/// Tell Resemble whether a detection verdict was right — and when it wasn't, what it<br/>
/// should have been. The answer is stored with a snapshot of what the model said at the<br/>
/// time of submission (verdict, score, media type, raw metrics), so it stays interpretable<br/>
/// even if the detect is later re-run or deleted.<br/>
/// Upserts on `(detect, user)`: re-posting edits your existing answer rather than adding a<br/>
/// second one. There is no separate update call. Feedback is per user, not per team — a<br/>
/// teammate's answer on the same detect is invisible to you.<br/>
/// The detect must have completed processing; feedback on a pending or failed detect is<br/>
/// rejected with 400. Teams without Detect access also receive 400 (not 403).
/// </summary>
/// <param name="uuid"></param>
/// <param name="request"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.AutoSDKHttpResponse<global::ResembleAI.DeepfakeDetectionCreateDetectFeedbackResponse200>> CreateDetectFeedbackAsResponseAsync(
string uuid,

global::ResembleAI.CreateDetectFeedbackRequest request,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
/// <summary>
/// Submit detection feedback<br/>
/// Tell Resemble whether a detection verdict was right — and when it wasn't, what it<br/>
/// should have been. The answer is stored with a snapshot of what the model said at the<br/>
/// time of submission (verdict, score, media type, raw metrics), so it stays interpretable<br/>
/// even if the detect is later re-run or deleted.<br/>
/// Upserts on `(detect, user)`: re-posting edits your existing answer rather than adding a<br/>
/// second one. There is no separate update call. Feedback is per user, not per team — a<br/>
/// teammate's answer on the same detect is invisible to you.<br/>
/// The detect must have completed processing; feedback on a pending or failed detect is<br/>
/// rejected with 400. Teams without Detect access also receive 400 (not 403).
/// </summary>
/// <param name="uuid"></param>
/// <param name="type">
/// What the verdict should have been.<br/>
/// - `correct` — the verdict was right.<br/>
/// - `should_be_ai_generated` — we said authentic; it is AI-generated.<br/>
/// - `should_be_authentic` — we said AI-generated; it is genuine and unaltered.<br/>
/// - `should_be_non_ai` — no model generated it, but it may still be edited, spliced, or a human impersonation.<br/>
/// - `should_be_neutral` — neither call is right; the media is genuinely ambiguous.<br/>
/// - `skipped` — the verdict was wrong, but the reviewer didn't say how.
/// </param>
/// <param name="comment">
/// Free text, up to 1000 characters. Trimmed; blank becomes `null`.
/// </param>
/// <param name="source">
/// Where the answer came from. Use a stable, aggregatable value such as a product<br/>
/// or queue name — not a per-request identifier. Truncated to 64 characters<br/>
/// rather than rejected.<br/>
/// Default Value: api
/// </param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::System.InvalidOperationException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.DeepfakeDetectionCreateDetectFeedbackResponse200> CreateDetectFeedbackAsync(
string uuid,
global::ResembleAI.DetectUuidFeedbackPostRequestBodyContentApplicationJsonSchemaType type,
string? comment = default,
string? source = default,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#nullable enable

namespace ResembleAI
{
public partial interface IDeepfakeDetectionClient
{
/// <summary>
/// Delete detection feedback<br/>
/// Retract your own feedback. Idempotent — returns 200 whether or not a row existed. Only<br/>
/// your row is removed; a teammate's answer on the same detect is untouched. Works even on<br/>
/// a detect that later failed.
/// </summary>
/// <param name="uuid"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.DeepfakeDetectionDeleteDetectFeedbackResponse200> DeleteDetectFeedbackAsync(
string uuid,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
/// <summary>
/// Delete detection feedback<br/>
/// Retract your own feedback. Idempotent — returns 200 whether or not a row existed. Only<br/>
/// your row is removed; a teammate's answer on the same detect is untouched. Works even on<br/>
/// a detect that later failed.
/// </summary>
/// <param name="uuid"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.AutoSDKHttpResponse<global::ResembleAI.DeepfakeDetectionDeleteDetectFeedbackResponse200>> DeleteDetectFeedbackAsResponseAsync(
string uuid,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#nullable enable

namespace ResembleAI
{
public partial interface IDeepfakeDetectionClient
{
/// <summary>
/// Get detection feedback<br/>
/// Retrieve your own feedback for a detect. Returns 404 when *you* haven't answered this<br/>
/// detect, even if the detect exists and a teammate has answered it.
/// </summary>
/// <param name="uuid"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.DeepfakeDetectionGetDetectFeedbackResponse200> GetDetectFeedbackAsync(
string uuid,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
/// <summary>
/// Get detection feedback<br/>
/// Retrieve your own feedback for a detect. Returns 404 when *you* haven't answered this<br/>
/// detect, even if the detect exists and a teammate has answered it.
/// </summary>
/// <param name="uuid"></param>
/// <param name="requestOptions">Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.</param>
/// <param name="cancellationToken">The token to cancel the operation with</param>
/// <exception cref="global::ResembleAI.ApiException"></exception>
global::System.Threading.Tasks.Task<global::ResembleAI.AutoSDKHttpResponse<global::ResembleAI.DeepfakeDetectionGetDetectFeedbackResponse200>> GetDetectFeedbackAsResponseAsync(
string uuid,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#nullable enable

namespace ResembleAI.JsonConverters
{
/// <inheritdoc />
public sealed class DetectFeedbackMediaTypeJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::ResembleAI.DetectFeedbackMediaType>
{
/// <inheritdoc />
public override global::ResembleAI.DetectFeedbackMediaType Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
{
switch (reader.TokenType)
{
case global::System.Text.Json.JsonTokenType.String:
{
var stringValue = reader.GetString();
if (stringValue != null)
{
return global::ResembleAI.DetectFeedbackMediaTypeExtensions.ToEnum(stringValue) ?? default;
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::ResembleAI.DetectFeedbackMediaType)numValue;
}
case global::System.Text.Json.JsonTokenType.Null:
{
return default(global::ResembleAI.DetectFeedbackMediaType);
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
}

return default;
}

/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::ResembleAI.DetectFeedbackMediaType value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));

writer.WriteStringValue(global::ResembleAI.DetectFeedbackMediaTypeExtensions.ToValueString(value));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#nullable enable

namespace ResembleAI.JsonConverters
{
/// <inheritdoc />
public sealed class DetectFeedbackMediaTypeNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::ResembleAI.DetectFeedbackMediaType?>
{
/// <inheritdoc />
public override global::ResembleAI.DetectFeedbackMediaType? Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
{
switch (reader.TokenType)
{
case global::System.Text.Json.JsonTokenType.String:
{
var stringValue = reader.GetString();
if (stringValue != null)
{
return global::ResembleAI.DetectFeedbackMediaTypeExtensions.ToEnum(stringValue);
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::ResembleAI.DetectFeedbackMediaType)numValue;
}
case global::System.Text.Json.JsonTokenType.Null:
{
return default(global::ResembleAI.DetectFeedbackMediaType?);
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
}

return default;
}

/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::ResembleAI.DetectFeedbackMediaType? value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));

if (value == null)
{
writer.WriteNullValue();
}
else
{
writer.WriteStringValue(global::ResembleAI.DetectFeedbackMediaTypeExtensions.ToValueString(value.Value));
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#nullable enable

namespace ResembleAI.JsonConverters
{
/// <inheritdoc />
public sealed class DetectFeedbackTypeJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::ResembleAI.DetectFeedbackType>
{
/// <inheritdoc />
public override global::ResembleAI.DetectFeedbackType Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
{
switch (reader.TokenType)
{
case global::System.Text.Json.JsonTokenType.String:
{
var stringValue = reader.GetString();
if (stringValue != null)
{
return global::ResembleAI.DetectFeedbackTypeExtensions.ToEnum(stringValue) ?? default;
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::ResembleAI.DetectFeedbackType)numValue;
}
case global::System.Text.Json.JsonTokenType.Null:
{
return default(global::ResembleAI.DetectFeedbackType);
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
}

return default;
}

/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::ResembleAI.DetectFeedbackType value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));

writer.WriteStringValue(global::ResembleAI.DetectFeedbackTypeExtensions.ToValueString(value));
}
}
}
Loading
Loading