Skip to content
Open
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
2 changes: 1 addition & 1 deletion packages/stream_video/lib/globals.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'protobuf/video/sfu/models/models.pb.dart';

const String streamSdkName = 'stream-flutter';
const String streamVideoVersion = '1.2.4';
const String openapiModelsVersion = '202.0.0';
const String openapiModelsVersion = '219.11.0';
const String protocolModelsVersion = '1.40.1';
const String androidWebRTCVersion = webrtc.androidWebRTCVersion;
const String iosWebRTCVersion = webrtc.iosWebRTCVersion;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ part 'model/call_member_removed_event.dart';
part 'model/call_member_updated_event.dart';
part 'model/call_member_updated_permission_event.dart';
part 'model/call_missed_event.dart';
part 'model/call_moderation_blur_event.dart';
part 'model/call_moderation_warning_event.dart';
part 'model/call_notification_event.dart';
part 'model/call_participant_count_report.dart';
part 'model/call_participant_count_report_response.dart';
Expand Down Expand Up @@ -135,6 +137,7 @@ part 'model/egress_hls_response.dart';
part 'model/egress_rtmp_response.dart';
part 'model/egress_response.dart';
part 'model/end_call_response.dart';
part 'model/feeds_preferences_response.dart';
part 'model/file_upload_config.dart';
part 'model/frame_recording_response.dart';
part 'model/frame_recording_settings_request.dart';
Expand All @@ -153,6 +156,9 @@ part 'model/hls_settings_request.dart';
part 'model/hls_settings_response.dart';
part 'model/health_check_event.dart';
part 'model/ice_server.dart';
part 'model/individual_recording_response.dart';
part 'model/individual_recording_settings_request.dart';
part 'model/individual_recording_settings_response.dart';
part 'model/ingress_audio_encoding_options_request.dart';
part 'model/ingress_audio_encoding_response.dart';
part 'model/ingress_settings_request.dart';
Expand Down Expand Up @@ -191,7 +197,7 @@ part 'model/pin_response.dart';
part 'model/privacy_settings.dart';
part 'model/published_track_flags.dart';
part 'model/publisher_stats_response.dart';
part 'model/push_preferences.dart';
part 'model/push_preferences_response.dart';
part 'model/quality_score_report.dart';
part 'model/quality_score_report_response.dart';
part 'model/query_aggregate_call_stats_request.dart';
Expand All @@ -208,6 +214,8 @@ part 'model/rtmp_broadcast_request.dart';
part 'model/rtmp_ingress.dart';
part 'model/rtmp_settings_request.dart';
part 'model/rtmp_settings_response.dart';
part 'model/raw_recording_settings_request.dart';
part 'model/raw_recording_settings_response.dart';
part 'model/reaction_response.dart';
part 'model/read_receipts.dart';
part 'model/record_settings_request.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2765,17 +2765,21 @@ class ProductvideoApi {
///
/// * [String] id (required):
///
/// * [String] recordingType (required):
///
/// * [StartRecordingRequest] startRecordingRequest (required):
/// StartRecordingRequest
Future<Response> startRecordingWithHttpInfo(
String type,
String id,
String recordingType,
StartRecordingRequest startRecordingRequest,
) async {
// ignore: prefer_const_declarations
final path = r'/video/call/{type}/{id}/start_recording'
final path = r'/video/call/{type}/{id}/recordings/{recording_type}/start'
.replaceAll('{type}', type)
.replaceAll('{id}', id);
.replaceAll('{id}', id)
.replaceAll('{recording_type}', recordingType);

// ignore: prefer_final_locals
Object? postBody = startRecordingRequest;
Expand Down Expand Up @@ -2807,16 +2811,20 @@ class ProductvideoApi {
///
/// * [String] id (required):
///
/// * [String] recordingType (required):
///
/// * [StartRecordingRequest] startRecordingRequest (required):
/// StartRecordingRequest
Future<StartRecordingResponse?> startRecording(
String type,
String id,
String recordingType,
StartRecordingRequest startRecordingRequest,
) async {
final response = await startRecordingWithHttpInfo(
type,
id,
recordingType,
startRecordingRequest,
);
if (response.statusCode >= HttpStatus.badRequest) {
Expand Down Expand Up @@ -3397,23 +3405,30 @@ class ProductvideoApi {
/// * [String] type (required):
///
/// * [String] id (required):
///
/// * [String] recordingType (required):
///
/// * [Object] body (required):
Future<Response> stopRecordingWithHttpInfo(
String type,
String id,
String recordingType,
Object body,
) async {
// ignore: prefer_const_declarations
final path = r'/video/call/{type}/{id}/stop_recording'
final path = r'/video/call/{type}/{id}/recordings/{recording_type}/stop'
.replaceAll('{type}', type)
.replaceAll('{id}', id);
.replaceAll('{id}', id)
.replaceAll('{recording_type}', recordingType);

// ignore: prefer_final_locals
Object? postBody;
Object? postBody = body;

final queryParams = <QueryParam>[];
final headerParams = <String, String>{};
final formParams = <String, String>{};

const contentTypes = <String>[];
const contentTypes = <String>['application/json'];

return apiClient.invokeAPI(
path,
Expand All @@ -3435,13 +3450,21 @@ class ProductvideoApi {
/// * [String] type (required):
///
/// * [String] id (required):
///
/// * [String] recordingType (required):
///
/// * [Object] body (required):
Future<StopRecordingResponse?> stopRecording(
String type,
String id,
String recordingType,
Object body,
) async {
final response = await stopRecordingWithHttpInfo(
type,
id,
recordingType,
body,
);
if (response.statusCode >= HttpStatus.badRequest) {
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,10 @@ class ApiClient {
return CallMemberUpdatedPermissionEvent.fromJson(value);
case 'CallMissedEvent':
return CallMissedEvent.fromJson(value);
case 'CallModerationBlurEvent':
return CallModerationBlurEvent.fromJson(value);
case 'CallModerationWarningEvent':
return CallModerationWarningEvent.fromJson(value);
case 'CallNotificationEvent':
return CallNotificationEvent.fromJson(value);
case 'CallParticipantCountReport':
Expand Down Expand Up @@ -476,6 +480,12 @@ class ApiClient {
return HealthCheckEvent.fromJson(value);
case 'ICEServer':
return ICEServer.fromJson(value);
case 'IndividualRecordingResponse':
return IndividualRecordingResponse.fromJson(value);
case 'IndividualRecordingSettingsRequest':
return IndividualRecordingSettingsRequest.fromJson(value);
case 'IndividualRecordingSettingsResponse':
return IndividualRecordingSettingsResponse.fromJson(value);
case 'IngressAudioEncodingOptionsRequest':
return IngressAudioEncodingOptionsRequest.fromJson(value);
case 'IngressAudioEncodingResponse':
Expand Down Expand Up @@ -552,8 +562,8 @@ class ApiClient {
return PublishedTrackFlags.fromJson(value);
case 'PublisherStatsResponse':
return PublisherStatsResponse.fromJson(value);
case 'PushPreferences':
return PushPreferences.fromJson(value);
case 'PushPreferencesResponse':
return PushPreferencesResponse.fromJson(value);
case 'QualityScoreReport':
return QualityScoreReport.fromJson(value);
case 'QualityScoreReportResponse':
Expand Down Expand Up @@ -586,6 +596,10 @@ class ApiClient {
return RTMPSettingsRequest.fromJson(value);
case 'RTMPSettingsResponse':
return RTMPSettingsResponse.fromJson(value);
case 'RawRecordingSettingsRequest':
return RawRecordingSettingsRequest.fromJson(value);
case 'RawRecordingSettingsResponse':
return RawRecordingSettingsResponse.fromJson(value);
case 'ReactionResponse':
return ReactionResponse.fromJson(value);
case 'ReadReceipts':
Expand All @@ -606,6 +620,7 @@ class ApiClient {
return RequestPermissionRequest.fromJson(value);
case 'RequestPermissionResponse':
return RequestPermissionResponse.fromJson(value);
//MANUAL_EDIT
case 'DurationResponse':
return DurationResponse.fromJson(value);
case 'RingCallRequest':
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.18

// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars

part of openapi.api;

class CallModerationBlurEvent {
/// Returns a new [CallModerationBlurEvent] instance.
CallModerationBlurEvent({
required this.callCid,
required this.createdAt,
this.custom = const {},
this.type = 'call.moderation_blur',
required this.userId,
});

String callCid;

DateTime createdAt;

/// Custom data associated with the moderation action
Map<String, Object> custom;

/// The type of event: \"call.moderation_blur\" in this case
String type;

/// The user ID whose video stream is being blurred
String userId;

@override
bool operator ==(Object other) =>
identical(this, other) ||
other is CallModerationBlurEvent &&
other.callCid == callCid &&
other.createdAt == createdAt &&
_deepEquality.equals(other.custom, custom) &&
other.type == type &&
other.userId == userId;

@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(callCid.hashCode) +
(createdAt.hashCode) +
(custom.hashCode) +
(type.hashCode) +
(userId.hashCode);

@override
String toString() =>
'CallModerationBlurEvent[callCid=$callCid, createdAt=$createdAt, custom=$custom, type=$type, userId=$userId]';

Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
json[r'call_cid'] = this.callCid;
json[r'created_at'] = this.createdAt.toUtc().toIso8601String();
json[r'custom'] = this.custom;
json[r'type'] = this.type;
json[r'user_id'] = this.userId;
return json;
}

/// Returns a new [CallModerationBlurEvent] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static CallModerationBlurEvent? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();

// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key),
'Required key "CallModerationBlurEvent[$key]" is missing from JSON.');
assert(json[key] != null,
'Required key "CallModerationBlurEvent[$key]" has a null value in JSON.');
});
return true;
}());

return CallModerationBlurEvent(
callCid: mapValueOfType<String>(json, r'call_cid')!,
createdAt: mapDateTime(json, r'created_at', r'')!,
custom: mapCastOfType<String, Object>(json, r'custom')!,
type: mapValueOfType<String>(json, r'type')!,
userId: mapValueOfType<String>(json, r'user_id')!,
);
}
return null;
}

static List<CallModerationBlurEvent> listFromJson(
dynamic json, {
bool growable = false,
}) {
final result = <CallModerationBlurEvent>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = CallModerationBlurEvent.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}

static Map<String, CallModerationBlurEvent> mapFromJson(dynamic json) {
final map = <String, CallModerationBlurEvent>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = CallModerationBlurEvent.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}

// maps a json object with a list of CallModerationBlurEvent-objects as value to a dart map
static Map<String, List<CallModerationBlurEvent>> mapListFromJson(
dynamic json, {
bool growable = false,
}) {
final map = <String, List<CallModerationBlurEvent>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = CallModerationBlurEvent.listFromJson(
entry.value,
growable: growable,
);
}
}
return map;
}

/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
'call_cid',
'created_at',
'custom',
'type',
'user_id',
};
}
Loading