aws-sdk-connect 1.187.0 → 1.189.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-connect/client.rb +483 -189
- data/lib/aws-sdk-connect/client_api.rb +75 -0
- data/lib/aws-sdk-connect/types.rb +519 -182
- data/lib/aws-sdk-connect.rb +1 -1
- data/sig/client.rbs +61 -13
- data/sig/types.rbs +55 -10
- metadata +2 -2
@@ -178,6 +178,7 @@ module Aws::Connect
|
|
178
178
|
ConnectionData = Shapes::StructureShape.new(name: 'ConnectionData')
|
179
179
|
Contact = Shapes::StructureShape.new(name: 'Contact')
|
180
180
|
ContactAnalysis = Shapes::StructureShape.new(name: 'ContactAnalysis')
|
181
|
+
ContactConfiguration = Shapes::StructureShape.new(name: 'ContactConfiguration')
|
181
182
|
ContactDataRequest = Shapes::StructureShape.new(name: 'ContactDataRequest')
|
182
183
|
ContactDataRequestList = Shapes::ListShape.new(name: 'ContactDataRequestList')
|
183
184
|
ContactFilter = Shapes::StructureShape.new(name: 'ContactFilter')
|
@@ -215,6 +216,7 @@ module Aws::Connect
|
|
215
216
|
ContactId = Shapes::StringShape.new(name: 'ContactId')
|
216
217
|
ContactInitiationMethod = Shapes::StringShape.new(name: 'ContactInitiationMethod')
|
217
218
|
ContactNotFoundException = Shapes::StructureShape.new(name: 'ContactNotFoundException')
|
219
|
+
ContactRecordingType = Shapes::StringShape.new(name: 'ContactRecordingType')
|
218
220
|
ContactReferences = Shapes::MapShape.new(name: 'ContactReferences')
|
219
221
|
ContactSearchSummary = Shapes::StructureShape.new(name: 'ContactSearchSummary')
|
220
222
|
ContactSearchSummaryAgentInfo = Shapes::StructureShape.new(name: 'ContactSearchSummaryAgentInfo')
|
@@ -261,6 +263,8 @@ module Aws::Connect
|
|
261
263
|
CreatePredefinedAttributeRequest = Shapes::StructureShape.new(name: 'CreatePredefinedAttributeRequest')
|
262
264
|
CreatePromptRequest = Shapes::StructureShape.new(name: 'CreatePromptRequest')
|
263
265
|
CreatePromptResponse = Shapes::StructureShape.new(name: 'CreatePromptResponse')
|
266
|
+
CreatePushNotificationRegistrationRequest = Shapes::StructureShape.new(name: 'CreatePushNotificationRegistrationRequest')
|
267
|
+
CreatePushNotificationRegistrationResponse = Shapes::StructureShape.new(name: 'CreatePushNotificationRegistrationResponse')
|
264
268
|
CreateQueueRequest = Shapes::StructureShape.new(name: 'CreateQueueRequest')
|
265
269
|
CreateQueueResponse = Shapes::StructureShape.new(name: 'CreateQueueResponse')
|
266
270
|
CreateQuickConnectRequest = Shapes::StructureShape.new(name: 'CreateQuickConnectRequest')
|
@@ -327,6 +331,8 @@ module Aws::Connect
|
|
327
331
|
DeleteIntegrationAssociationRequest = Shapes::StructureShape.new(name: 'DeleteIntegrationAssociationRequest')
|
328
332
|
DeletePredefinedAttributeRequest = Shapes::StructureShape.new(name: 'DeletePredefinedAttributeRequest')
|
329
333
|
DeletePromptRequest = Shapes::StructureShape.new(name: 'DeletePromptRequest')
|
334
|
+
DeletePushNotificationRegistrationRequest = Shapes::StructureShape.new(name: 'DeletePushNotificationRegistrationRequest')
|
335
|
+
DeletePushNotificationRegistrationResponse = Shapes::StructureShape.new(name: 'DeletePushNotificationRegistrationResponse')
|
330
336
|
DeleteQueueRequest = Shapes::StructureShape.new(name: 'DeleteQueueRequest')
|
331
337
|
DeleteQuickConnectRequest = Shapes::StructureShape.new(name: 'DeleteQuickConnectRequest')
|
332
338
|
DeleteRoutingProfileRequest = Shapes::StructureShape.new(name: 'DeleteRoutingProfileRequest')
|
@@ -402,6 +408,8 @@ module Aws::Connect
|
|
402
408
|
DestinationId = Shapes::StringShape.new(name: 'DestinationId')
|
403
409
|
DestinationNotAllowedException = Shapes::StructureShape.new(name: 'DestinationNotAllowedException')
|
404
410
|
DeviceInfo = Shapes::StructureShape.new(name: 'DeviceInfo')
|
411
|
+
DeviceToken = Shapes::StringShape.new(name: 'DeviceToken')
|
412
|
+
DeviceType = Shapes::StringShape.new(name: 'DeviceType')
|
405
413
|
Dimensions = Shapes::StructureShape.new(name: 'Dimensions')
|
406
414
|
DimensionsV2Key = Shapes::StringShape.new(name: 'DimensionsV2Key')
|
407
415
|
DimensionsV2Map = Shapes::MapShape.new(name: 'DimensionsV2Map')
|
@@ -638,6 +646,7 @@ module Aws::Connect
|
|
638
646
|
InboundMessageSourceType = Shapes::StringShape.new(name: 'InboundMessageSourceType')
|
639
647
|
InboundRawMessage = Shapes::StructureShape.new(name: 'InboundRawMessage')
|
640
648
|
InboundSubject = Shapes::StringShape.new(name: 'InboundSubject')
|
649
|
+
IncludeRawMessage = Shapes::BooleanShape.new(name: 'IncludeRawMessage')
|
641
650
|
Index = Shapes::IntegerShape.new(name: 'Index')
|
642
651
|
InitiateAs = Shapes::StringShape.new(name: 'InitiateAs')
|
643
652
|
InitiationMethodList = Shapes::ListShape.new(name: 'InitiationMethodList')
|
@@ -673,6 +682,7 @@ module Aws::Connect
|
|
673
682
|
InvisibleTaskTemplateFields = Shapes::ListShape.new(name: 'InvisibleTaskTemplateFields')
|
674
683
|
IpCidr = Shapes::StringShape.new(name: 'IpCidr')
|
675
684
|
IpCidrList = Shapes::ListShape.new(name: 'IpCidrList')
|
685
|
+
IvrRecordingTrack = Shapes::StringShape.new(name: 'IvrRecordingTrack')
|
676
686
|
JoinToken = Shapes::StringShape.new(name: 'JoinToken')
|
677
687
|
KeyId = Shapes::StringShape.new(name: 'KeyId')
|
678
688
|
KinesisFirehoseConfig = Shapes::StructureShape.new(name: 'KinesisFirehoseConfig')
|
@@ -939,6 +949,7 @@ module Aws::Connect
|
|
939
949
|
QueueId = Shapes::StringShape.new(name: 'QueueId')
|
940
950
|
QueueIdList = Shapes::ListShape.new(name: 'QueueIdList')
|
941
951
|
QueueInfo = Shapes::StructureShape.new(name: 'QueueInfo')
|
952
|
+
QueueInfoInput = Shapes::StructureShape.new(name: 'QueueInfoInput')
|
942
953
|
QueueMaxContacts = Shapes::IntegerShape.new(name: 'QueueMaxContacts')
|
943
954
|
QueueName = Shapes::StringShape.new(name: 'QueueName')
|
944
955
|
QueuePriority = Shapes::IntegerShape.new(name: 'QueuePriority')
|
@@ -1024,6 +1035,7 @@ module Aws::Connect
|
|
1024
1035
|
ReferenceValue = Shapes::StringShape.new(name: 'ReferenceValue')
|
1025
1036
|
RefreshTokenDuration = Shapes::IntegerShape.new(name: 'RefreshTokenDuration')
|
1026
1037
|
RegionName = Shapes::StringShape.new(name: 'RegionName')
|
1038
|
+
RegistrationId = Shapes::StringShape.new(name: 'RegistrationId')
|
1027
1039
|
RehydrationType = Shapes::StringShape.new(name: 'RehydrationType')
|
1028
1040
|
ReleasePhoneNumberRequest = Shapes::StructureShape.new(name: 'ReleasePhoneNumberRequest')
|
1029
1041
|
ReplicateInstanceRequest = Shapes::StructureShape.new(name: 'ReplicateInstanceRequest')
|
@@ -1960,6 +1972,11 @@ module Aws::Connect
|
|
1960
1972
|
ContactAnalysis.add_member(:transcript, Shapes::ShapeRef.new(shape: Transcript, location_name: "Transcript"))
|
1961
1973
|
ContactAnalysis.struct_class = Types::ContactAnalysis
|
1962
1974
|
|
1975
|
+
ContactConfiguration.add_member(:contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "ContactId"))
|
1976
|
+
ContactConfiguration.add_member(:participant_role, Shapes::ShapeRef.new(shape: ParticipantRole, location_name: "ParticipantRole"))
|
1977
|
+
ContactConfiguration.add_member(:include_raw_message, Shapes::ShapeRef.new(shape: IncludeRawMessage, location_name: "IncludeRawMessage"))
|
1978
|
+
ContactConfiguration.struct_class = Types::ContactConfiguration
|
1979
|
+
|
1963
1980
|
ContactDataRequest.add_member(:system_endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "SystemEndpoint"))
|
1964
1981
|
ContactDataRequest.add_member(:customer_endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "CustomerEndpoint"))
|
1965
1982
|
ContactDataRequest.add_member(:request_identifier, Shapes::ShapeRef.new(shape: RequestIdentifier, location_name: "RequestIdentifier"))
|
@@ -2286,6 +2303,17 @@ module Aws::Connect
|
|
2286
2303
|
CreatePromptResponse.add_member(:prompt_id, Shapes::ShapeRef.new(shape: PromptId, location_name: "PromptId"))
|
2287
2304
|
CreatePromptResponse.struct_class = Types::CreatePromptResponse
|
2288
2305
|
|
2306
|
+
CreatePushNotificationRegistrationRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location: "uri", location_name: "InstanceId"))
|
2307
|
+
CreatePushNotificationRegistrationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
|
2308
|
+
CreatePushNotificationRegistrationRequest.add_member(:pinpoint_app_arn, Shapes::ShapeRef.new(shape: ARN, required: true, location_name: "PinpointAppArn"))
|
2309
|
+
CreatePushNotificationRegistrationRequest.add_member(:device_token, Shapes::ShapeRef.new(shape: DeviceToken, required: true, location_name: "DeviceToken"))
|
2310
|
+
CreatePushNotificationRegistrationRequest.add_member(:device_type, Shapes::ShapeRef.new(shape: DeviceType, required: true, location_name: "DeviceType"))
|
2311
|
+
CreatePushNotificationRegistrationRequest.add_member(:contact_configuration, Shapes::ShapeRef.new(shape: ContactConfiguration, required: true, location_name: "ContactConfiguration"))
|
2312
|
+
CreatePushNotificationRegistrationRequest.struct_class = Types::CreatePushNotificationRegistrationRequest
|
2313
|
+
|
2314
|
+
CreatePushNotificationRegistrationResponse.add_member(:registration_id, Shapes::ShapeRef.new(shape: RegistrationId, required: true, location_name: "RegistrationId"))
|
2315
|
+
CreatePushNotificationRegistrationResponse.struct_class = Types::CreatePushNotificationRegistrationResponse
|
2316
|
+
|
2289
2317
|
CreateQueueRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location: "uri", location_name: "InstanceId"))
|
2290
2318
|
CreateQueueRequest.add_member(:name, Shapes::ShapeRef.new(shape: CommonNameLength127, required: true, location_name: "Name"))
|
2291
2319
|
CreateQueueRequest.add_member(:description, Shapes::ShapeRef.new(shape: QueueDescription, location_name: "Description"))
|
@@ -2581,6 +2609,13 @@ module Aws::Connect
|
|
2581
2609
|
DeletePromptRequest.add_member(:prompt_id, Shapes::ShapeRef.new(shape: PromptId, required: true, location: "uri", location_name: "PromptId"))
|
2582
2610
|
DeletePromptRequest.struct_class = Types::DeletePromptRequest
|
2583
2611
|
|
2612
|
+
DeletePushNotificationRegistrationRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location: "uri", location_name: "InstanceId"))
|
2613
|
+
DeletePushNotificationRegistrationRequest.add_member(:registration_id, Shapes::ShapeRef.new(shape: RegistrationId, required: true, location: "uri", location_name: "RegistrationId"))
|
2614
|
+
DeletePushNotificationRegistrationRequest.add_member(:contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location: "querystring", location_name: "contactId"))
|
2615
|
+
DeletePushNotificationRegistrationRequest.struct_class = Types::DeletePushNotificationRegistrationRequest
|
2616
|
+
|
2617
|
+
DeletePushNotificationRegistrationResponse.struct_class = Types::DeletePushNotificationRegistrationResponse
|
2618
|
+
|
2584
2619
|
DeleteQueueRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location: "uri", location_name: "InstanceId"))
|
2585
2620
|
DeleteQueueRequest.add_member(:queue_id, Shapes::ShapeRef.new(shape: QueueId, required: true, location: "uri", location_name: "QueueId"))
|
2586
2621
|
DeleteQueueRequest.struct_class = Types::DeleteQueueRequest
|
@@ -4488,6 +4523,9 @@ module Aws::Connect
|
|
4488
4523
|
QueueInfo.add_member(:enqueue_timestamp, Shapes::ShapeRef.new(shape: timestamp, location_name: "EnqueueTimestamp"))
|
4489
4524
|
QueueInfo.struct_class = Types::QueueInfo
|
4490
4525
|
|
4526
|
+
QueueInfoInput.add_member(:id, Shapes::ShapeRef.new(shape: QueueId, location_name: "Id"))
|
4527
|
+
QueueInfoInput.struct_class = Types::QueueInfoInput
|
4528
|
+
|
4491
4529
|
QueueQuickConnectConfig.add_member(:queue_id, Shapes::ShapeRef.new(shape: QueueId, required: true, location_name: "QueueId"))
|
4492
4530
|
QueueQuickConnectConfig.add_member(:contact_flow_id, Shapes::ShapeRef.new(shape: ContactFlowId, required: true, location_name: "ContactFlowId"))
|
4493
4531
|
QueueQuickConnectConfig.struct_class = Types::QueueQuickConnectConfig
|
@@ -4762,6 +4800,7 @@ module Aws::Connect
|
|
4762
4800
|
ResumeContactRecordingRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
|
4763
4801
|
ResumeContactRecordingRequest.add_member(:contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "ContactId"))
|
4764
4802
|
ResumeContactRecordingRequest.add_member(:initial_contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "InitialContactId"))
|
4803
|
+
ResumeContactRecordingRequest.add_member(:contact_recording_type, Shapes::ShapeRef.new(shape: ContactRecordingType, location_name: "ContactRecordingType"))
|
4765
4804
|
ResumeContactRecordingRequest.struct_class = Types::ResumeContactRecordingRequest
|
4766
4805
|
|
4767
4806
|
ResumeContactRecordingResponse.struct_class = Types::ResumeContactRecordingResponse
|
@@ -5462,6 +5501,7 @@ module Aws::Connect
|
|
5462
5501
|
StopContactRecordingRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
|
5463
5502
|
StopContactRecordingRequest.add_member(:contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "ContactId"))
|
5464
5503
|
StopContactRecordingRequest.add_member(:initial_contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "InitialContactId"))
|
5504
|
+
StopContactRecordingRequest.add_member(:contact_recording_type, Shapes::ShapeRef.new(shape: ContactRecordingType, location_name: "ContactRecordingType"))
|
5465
5505
|
StopContactRecordingRequest.struct_class = Types::StopContactRecordingRequest
|
5466
5506
|
|
5467
5507
|
StopContactRecordingResponse.struct_class = Types::StopContactRecordingResponse
|
@@ -5513,6 +5553,7 @@ module Aws::Connect
|
|
5513
5553
|
SuspendContactRecordingRequest.add_member(:instance_id, Shapes::ShapeRef.new(shape: InstanceId, required: true, location_name: "InstanceId"))
|
5514
5554
|
SuspendContactRecordingRequest.add_member(:contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "ContactId"))
|
5515
5555
|
SuspendContactRecordingRequest.add_member(:initial_contact_id, Shapes::ShapeRef.new(shape: ContactId, required: true, location_name: "InitialContactId"))
|
5556
|
+
SuspendContactRecordingRequest.add_member(:contact_recording_type, Shapes::ShapeRef.new(shape: ContactRecordingType, location_name: "ContactRecordingType"))
|
5516
5557
|
SuspendContactRecordingRequest.struct_class = Types::SuspendContactRecordingRequest
|
5517
5558
|
|
5518
5559
|
SuspendContactRecordingResponse.struct_class = Types::SuspendContactRecordingResponse
|
@@ -5768,6 +5809,10 @@ module Aws::Connect
|
|
5768
5809
|
UpdateContactRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
|
5769
5810
|
UpdateContactRequest.add_member(:references, Shapes::ShapeRef.new(shape: ContactReferences, location_name: "References"))
|
5770
5811
|
UpdateContactRequest.add_member(:segment_attributes, Shapes::ShapeRef.new(shape: SegmentAttributes, location_name: "SegmentAttributes"))
|
5812
|
+
UpdateContactRequest.add_member(:queue_info, Shapes::ShapeRef.new(shape: QueueInfoInput, location_name: "QueueInfo"))
|
5813
|
+
UpdateContactRequest.add_member(:user_info, Shapes::ShapeRef.new(shape: UserInfo, location_name: "UserInfo"))
|
5814
|
+
UpdateContactRequest.add_member(:customer_endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "CustomerEndpoint"))
|
5815
|
+
UpdateContactRequest.add_member(:system_endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "SystemEndpoint"))
|
5771
5816
|
UpdateContactRequest.struct_class = Types::UpdateContactRequest
|
5772
5817
|
|
5773
5818
|
UpdateContactResponse.struct_class = Types::UpdateContactResponse
|
@@ -6278,6 +6323,7 @@ module Aws::Connect
|
|
6278
6323
|
VocabularySummaryList.member = Shapes::ShapeRef.new(shape: VocabularySummary)
|
6279
6324
|
|
6280
6325
|
VoiceRecordingConfiguration.add_member(:voice_recording_track, Shapes::ShapeRef.new(shape: VoiceRecordingTrack, location_name: "VoiceRecordingTrack"))
|
6326
|
+
VoiceRecordingConfiguration.add_member(:ivr_recording_track, Shapes::ShapeRef.new(shape: IvrRecordingTrack, location_name: "IvrRecordingTrack"))
|
6281
6327
|
VoiceRecordingConfiguration.struct_class = Types::VoiceRecordingConfiguration
|
6282
6328
|
|
6283
6329
|
WisdomInfo.add_member(:session_arn, Shapes::ShapeRef.new(shape: ARN, location_name: "SessionArn"))
|
@@ -6819,6 +6865,20 @@ module Aws::Connect
|
|
6819
6865
|
o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
|
6820
6866
|
end)
|
6821
6867
|
|
6868
|
+
api.add_operation(:create_push_notification_registration, Seahorse::Model::Operation.new.tap do |o|
|
6869
|
+
o.name = "CreatePushNotificationRegistration"
|
6870
|
+
o.http_method = "PUT"
|
6871
|
+
o.http_request_uri = "/push-notification/{InstanceId}/registrations"
|
6872
|
+
o.input = Shapes::ShapeRef.new(shape: CreatePushNotificationRegistrationRequest)
|
6873
|
+
o.output = Shapes::ShapeRef.new(shape: CreatePushNotificationRegistrationResponse)
|
6874
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
|
6875
|
+
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
6876
|
+
o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
|
6877
|
+
o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
|
6878
|
+
o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
|
6879
|
+
o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
|
6880
|
+
end)
|
6881
|
+
|
6822
6882
|
api.add_operation(:create_queue, Seahorse::Model::Operation.new.tap do |o|
|
6823
6883
|
o.name = "CreateQueue"
|
6824
6884
|
o.http_method = "PUT"
|
@@ -7173,6 +7233,19 @@ module Aws::Connect
|
|
7173
7233
|
o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
|
7174
7234
|
end)
|
7175
7235
|
|
7236
|
+
api.add_operation(:delete_push_notification_registration, Seahorse::Model::Operation.new.tap do |o|
|
7237
|
+
o.name = "DeletePushNotificationRegistration"
|
7238
|
+
o.http_method = "DELETE"
|
7239
|
+
o.http_request_uri = "/push-notification/{InstanceId}/registrations/{RegistrationId}"
|
7240
|
+
o.input = Shapes::ShapeRef.new(shape: DeletePushNotificationRegistrationRequest)
|
7241
|
+
o.output = Shapes::ShapeRef.new(shape: DeletePushNotificationRegistrationResponse)
|
7242
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
|
7243
|
+
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
7244
|
+
o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
|
7245
|
+
o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
|
7246
|
+
o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
|
7247
|
+
end)
|
7248
|
+
|
7176
7249
|
api.add_operation(:delete_queue, Seahorse::Model::Operation.new.tap do |o|
|
7177
7250
|
o.name = "DeleteQueue"
|
7178
7251
|
o.http_method = "DELETE"
|
@@ -9702,6 +9775,8 @@ module Aws::Connect
|
|
9702
9775
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
9703
9776
|
o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
|
9704
9777
|
o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
|
9778
|
+
o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
|
9779
|
+
o.errors << Shapes::ShapeRef.new(shape: ConflictException)
|
9705
9780
|
end)
|
9706
9781
|
|
9707
9782
|
api.add_operation(:update_contact_attributes, Seahorse::Model::Operation.new.tap do |o|
|