aws-sdk-bedrockagentruntime 1.5.0 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24e10fc42b8ea0b4e35d44ca0c691949feaab6fe28ebe2a12c290ea005730c27
4
- data.tar.gz: 7239ae58b7fc4a5343de154490f9c81eb7011fdd9a1be9472fc64575f6b4f803
3
+ metadata.gz: 3a7807ae877e929d1ebf772ede849e026038aef63d4cab849617d61b17ca4ab2
4
+ data.tar.gz: 65456ef078ed1cf91f3f6bb9771417e2a8754a9112f73f40a967c8e2d931a04c
5
5
  SHA512:
6
- metadata.gz: 3f4d8ef61cdf0882cea1ab50df77212c91dda6f4a9457ad6632702c328f21fa20c1ff2dcff52544e935f747bb7b973c65f68ee40d77c63342c14f079599be7d7
7
- data.tar.gz: 7b77085b8fe83e0f72e6276a82403b2a891515a51c3f2957860d516cb4b9657ea8be881250cda8abe01cd5417ef783b2ee499b8a84484bf72ca3f82f2e483ae6
6
+ metadata.gz: c87fb48cd5dca38d6bc19cab8ffd706e48d38b824eb5fab4bcada125e8c03de0b2bf8e9fa2952390d2b3a52b5f9691a9c4ef1dbfd41750f7841d9ae1af99b0b7
7
+ data.tar.gz: 5c541812632089ec05e6323e2297a14795fd4964742bd7fab30c5ca2d365828c62c9babe1460cbcd9d0aa866364692cf21fafdc191e81fcad22b5362b8672258
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.7.0 (2024-04-25)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.6.0 (2024-04-23)
10
+ ------------------
11
+
12
+ * Feature - This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base.
13
+
4
14
  1.5.0 (2024-03-27)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.0
1
+ 1.7.0
@@ -22,6 +22,7 @@ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
22
  require 'aws-sdk-core/plugins/response_paging.rb'
23
23
  require 'aws-sdk-core/plugins/stub_responses.rb'
24
24
  require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
25
26
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
27
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
28
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
@@ -73,6 +74,7 @@ module Aws::BedrockAgentRuntime
73
74
  add_plugin(Aws::Plugins::ResponsePaging)
74
75
  add_plugin(Aws::Plugins::StubResponses)
75
76
  add_plugin(Aws::Plugins::IdempotencyToken)
77
+ add_plugin(Aws::Plugins::InvocationId)
76
78
  add_plugin(Aws::Plugins::JsonvalueConverter)
77
79
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
80
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
@@ -198,10 +200,17 @@ module Aws::BedrockAgentRuntime
198
200
  # When set to 'true' the request body will not be compressed
199
201
  # for supported operations.
200
202
  #
201
- # @option options [String] :endpoint
202
- # The client endpoint is normally constructed from the `:region`
203
- # option. You should only configure an `:endpoint` when connecting
204
- # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
204
+ # Normally you should not configure the `:endpoint` option
205
+ # directly. This is normally constructed from the `:region`
206
+ # option. Configuring `:endpoint` is normally reserved for
207
+ # connecting to test or custom endpoints. The endpoint should
208
+ # be a URI formatted like:
209
+ #
210
+ # 'http://example.com'
211
+ # 'https://example.com'
212
+ # 'http://example.com:123'
213
+ #
205
214
  #
206
215
  # @option options [Integer] :endpoint_cache_max_entries (1000)
207
216
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -348,50 +357,65 @@ module Aws::BedrockAgentRuntime
348
357
  # @option options [Aws::BedrockAgentRuntime::EndpointProvider] :endpoint_provider
349
358
  # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::BedrockAgentRuntime::EndpointParameters`
350
359
  #
351
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
352
- # requests through. Formatted like 'http://proxy.com:123'.
353
- #
354
- # @option options [Float] :http_open_timeout (15) The number of
355
- # seconds to wait when opening a HTTP session before raising a
356
- # `Timeout::Error`.
357
- #
358
- # @option options [Float] :http_read_timeout (60) The default
359
- # number of seconds to wait for response data. This value can
360
- # safely be set per-request on the session.
361
- #
362
- # @option options [Float] :http_idle_timeout (5) The number of
363
- # seconds a connection is allowed to sit idle before it is
364
- # considered stale. Stale connections are closed and removed
365
- # from the pool before making a request.
366
- #
367
- # @option options [Float] :http_continue_timeout (1) The number of
368
- # seconds to wait for a 100-continue response before sending the
369
- # request body. This option has no effect unless the request has
370
- # "Expect" header set to "100-continue". Defaults to `nil` which
371
- # disables this behaviour. This value can safely be set per
372
- # request on the session.
373
- #
374
- # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
375
- # in seconds.
360
+ # @option options [Float] :http_continue_timeout (1)
361
+ # The number of seconds to wait for a 100-continue response before sending the
362
+ # request body. This option has no effect unless the request has "Expect"
363
+ # header set to "100-continue". Defaults to `nil` which disables this
364
+ # behaviour. This value can safely be set per request on the session.
365
+ #
366
+ # @option options [Float] :http_idle_timeout (5)
367
+ # The number of seconds a connection is allowed to sit idle before it
368
+ # is considered stale. Stale connections are closed and removed from the
369
+ # pool before making a request.
370
+ #
371
+ # @option options [Float] :http_open_timeout (15)
372
+ # The default number of seconds to wait for response data.
373
+ # This value can safely be set per-request on the session.
374
+ #
375
+ # @option options [URI::HTTP,String] :http_proxy
376
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
377
+ #
378
+ # @option options [Float] :http_read_timeout (60)
379
+ # The default number of seconds to wait for response data.
380
+ # This value can safely be set per-request on the session.
381
+ #
382
+ # @option options [Boolean] :http_wire_trace (false)
383
+ # When `true`, HTTP debug output will be sent to the `:logger`.
384
+ #
385
+ # @option options [Proc] :on_chunk_received
386
+ # When a Proc object is provided, it will be used as callback when each chunk
387
+ # of the response body is received. It provides three arguments: the chunk,
388
+ # the number of bytes received, and the total number of
389
+ # bytes in the response (or nil if the server did not send a `content-length`).
390
+ #
391
+ # @option options [Proc] :on_chunk_sent
392
+ # When a Proc object is provided, it will be used as callback when each chunk
393
+ # of the request body is sent. It provides three arguments: the chunk,
394
+ # the number of bytes read from the body, and the total number of
395
+ # bytes in the body.
396
+ #
397
+ # @option options [Boolean] :raise_response_errors (true)
398
+ # When `true`, response errors are raised.
399
+ #
400
+ # @option options [String] :ssl_ca_bundle
401
+ # Full path to the SSL certificate authority bundle file that should be used when
402
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
403
+ # `:ssl_ca_directory` the the system default will be used if available.
404
+ #
405
+ # @option options [String] :ssl_ca_directory
406
+ # Full path of the directory that contains the unbundled SSL certificate
407
+ # authority files for verifying peer certificates. If you do
408
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
409
+ # default will be used if available.
376
410
  #
377
- # @option options [Boolean] :http_wire_trace (false) When `true`,
378
- # HTTP debug output will be sent to the `:logger`.
411
+ # @option options [String] :ssl_ca_store
412
+ # Sets the X509::Store to verify peer certificate.
379
413
  #
380
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
381
- # SSL peer certificates are verified when establishing a
382
- # connection.
414
+ # @option options [Float] :ssl_timeout
415
+ # Sets the SSL timeout in seconds
383
416
  #
384
- # @option options [String] :ssl_ca_bundle Full path to the SSL
385
- # certificate authority bundle file that should be used when
386
- # verifying peer certificates. If you do not pass
387
- # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
388
- # will be used if available.
389
- #
390
- # @option options [String] :ssl_ca_directory Full path of the
391
- # directory that contains the unbundled SSL certificate
392
- # authority files for verifying peer certificates. If you do
393
- # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
394
- # system default will be used if available.
417
+ # @option options [Boolean] :ssl_verify_peer (true)
418
+ # When `true`, SSL peer certificates are verified when establishing a connection.
395
419
  #
396
420
  def initialize(*args)
397
421
  super
@@ -399,7 +423,8 @@ module Aws::BedrockAgentRuntime
399
423
 
400
424
  # @!group API Operations
401
425
 
402
- # Sends a prompt for the agent to process and respond to.
426
+ # Sends a prompt for the agent to process and respond to. Use return
427
+ # control event type for function calling.
403
428
  #
404
429
  # <note markdown="1"> The CLI doesn't support `InvokeAgent`.
405
430
  #
@@ -416,8 +441,10 @@ module Aws::BedrockAgentRuntime
416
441
  #
417
442
  # * End a conversation by setting `endSession` to `true`.
418
443
  #
419
- # * Include attributes for the session or prompt in the `sessionState`
420
- # object.
444
+ # * In the `sessionState` object, you can include attributes for the
445
+ # session or prompt or parameters returned from the action group.
446
+ #
447
+ # * Use return control event type for function calling.
421
448
  #
422
449
  # The response is returned in the `bytes` field of the `chunk` object.
423
450
  #
@@ -450,7 +477,7 @@ module Aws::BedrockAgentRuntime
450
477
  # @option params [Boolean] :end_session
451
478
  # Specifies whether to end the session with the agent or not.
452
479
  #
453
- # @option params [required, String] :input_text
480
+ # @option params [String] :input_text
454
481
  # The prompt text to send the agent.
455
482
  #
456
483
  # @option params [required, String] :session_id
@@ -473,22 +500,22 @@ module Aws::BedrockAgentRuntime
473
500
  #
474
501
  # @example EventStream Operation Example
475
502
  #
476
- # You can process event once it arrives immediately, or wait until
477
- # full response complete and iterate through eventstream enumerator.
503
+ # You can process the event once it arrives immediately, or wait until the
504
+ # full response is complete and iterate through the eventstream enumerator.
478
505
  #
479
506
  # To interact with event immediately, you need to register #invoke_agent
480
- # with callbacks, callbacks can be register for specifc events or for all events,
481
- # callback for errors in the event stream is also available for register.
507
+ # with callbacks. Callbacks can be registered for specific events or for all
508
+ # events, including error events.
482
509
  #
483
- # Callbacks can be passed in by `:event_stream_handler` option or within block
484
- # statement attached to #invoke_agent call directly. Hybrid pattern of both
485
- # is also supported.
510
+ # Callbacks can be passed into the `:event_stream_handler` option or within a
511
+ # block statement attached to the #invoke_agent call directly. Hybrid
512
+ # pattern of both is also supported.
486
513
  #
487
- # `:event_stream_handler` option takes in either Proc object or
514
+ # `:event_stream_handler` option takes in either a Proc object or
488
515
  # Aws::BedrockAgentRuntime::EventStreams::ResponseStream object.
489
516
  #
490
- # Usage pattern a): callbacks with a block attached to #invoke_agent
491
- # Example for registering callbacks for all event types and error event
517
+ # Usage pattern a): Callbacks with a block attached to #invoke_agent
518
+ # Example for registering callbacks for all event types and an error event
492
519
  #
493
520
  # client.invoke_agent( # params input# ) do |stream|
494
521
  # stream.on_error_event do |event|
@@ -508,9 +535,9 @@ module Aws::BedrockAgentRuntime
508
535
  #
509
536
  # end
510
537
  #
511
- # Usage pattern b): pass in `:event_stream_handler` for #invoke_agent
538
+ # Usage pattern b): Pass in `:event_stream_handler` for #invoke_agent
512
539
  #
513
- # 1) create a Aws::BedrockAgentRuntime::EventStreams::ResponseStream object
540
+ # 1) Create a Aws::BedrockAgentRuntime::EventStreams::ResponseStream object
514
541
  # Example for registering callbacks with specific events
515
542
  #
516
543
  # handler = Aws::BedrockAgentRuntime::EventStreams::ResponseStream.new
@@ -535,6 +562,9 @@ module Aws::BedrockAgentRuntime
535
562
  # handler.on_resource_not_found_exception_event do |event|
536
563
  # event # => Aws::BedrockAgentRuntime::Types::resourceNotFoundException
537
564
  # end
565
+ # handler.on_return_control_event do |event|
566
+ # event # => Aws::BedrockAgentRuntime::Types::returnControl
567
+ # end
538
568
  # handler.on_service_quota_exceeded_exception_event do |event|
539
569
  # event # => Aws::BedrockAgentRuntime::Types::serviceQuotaExceededException
540
570
  # end
@@ -550,7 +580,7 @@ module Aws::BedrockAgentRuntime
550
580
  #
551
581
  # client.invoke_agent( # params input #, event_stream_handler: handler)
552
582
  #
553
- # 2) use a Ruby Proc object
583
+ # 2) Use a Ruby Proc object
554
584
  # Example for registering callbacks with specific events
555
585
  #
556
586
  # handler = Proc.new do |stream|
@@ -575,6 +605,9 @@ module Aws::BedrockAgentRuntime
575
605
  # stream.on_resource_not_found_exception_event do |event|
576
606
  # event # => Aws::BedrockAgentRuntime::Types::resourceNotFoundException
577
607
  # end
608
+ # stream.on_return_control_event do |event|
609
+ # event # => Aws::BedrockAgentRuntime::Types::returnControl
610
+ # end
578
611
  # stream.on_service_quota_exceeded_exception_event do |event|
579
612
  # event # => Aws::BedrockAgentRuntime::Types::serviceQuotaExceededException
580
613
  # end
@@ -591,7 +624,7 @@ module Aws::BedrockAgentRuntime
591
624
  #
592
625
  # client.invoke_agent( # params input #, event_stream_handler: handler)
593
626
  #
594
- # Usage pattern c): hybird pattern of a) and b)
627
+ # Usage pattern c): Hybrid pattern of a) and b)
595
628
  #
596
629
  # handler = Aws::BedrockAgentRuntime::EventStreams::ResponseStream.new
597
630
  # handler.on_access_denied_exception_event do |event|
@@ -615,6 +648,9 @@ module Aws::BedrockAgentRuntime
615
648
  # handler.on_resource_not_found_exception_event do |event|
616
649
  # event # => Aws::BedrockAgentRuntime::Types::resourceNotFoundException
617
650
  # end
651
+ # handler.on_return_control_event do |event|
652
+ # event # => Aws::BedrockAgentRuntime::Types::returnControl
653
+ # end
618
654
  # handler.on_service_quota_exceeded_exception_event do |event|
619
655
  # event # => Aws::BedrockAgentRuntime::Types::serviceQuotaExceededException
620
656
  # end
@@ -639,8 +675,7 @@ module Aws::BedrockAgentRuntime
639
675
  # end
640
676
  # end
641
677
  #
642
- # Besides above usage patterns for process events when they arrive immediately, you can also
643
- # iterate through events after response complete.
678
+ # You can also iterate through events after the response complete.
644
679
  #
645
680
  # Events are available at resp.completion # => Enumerator
646
681
  # For parameter input example, please refer to following request syntax
@@ -652,12 +687,39 @@ module Aws::BedrockAgentRuntime
652
687
  # agent_id: "AgentId", # required
653
688
  # enable_trace: false,
654
689
  # end_session: false,
655
- # input_text: "InputText", # required
690
+ # input_text: "InputText",
656
691
  # session_id: "SessionId", # required
657
692
  # session_state: {
693
+ # invocation_id: "String",
658
694
  # prompt_session_attributes: {
659
695
  # "String" => "String",
660
696
  # },
697
+ # return_control_invocation_results: [
698
+ # {
699
+ # api_result: {
700
+ # action_group: "String", # required
701
+ # api_path: "ApiPath",
702
+ # http_method: "String",
703
+ # http_status_code: 1,
704
+ # response_body: {
705
+ # "String" => {
706
+ # body: "String",
707
+ # },
708
+ # },
709
+ # response_state: "FAILURE", # accepts FAILURE, REPROMPT
710
+ # },
711
+ # function_result: {
712
+ # action_group: "String", # required
713
+ # function: "String",
714
+ # response_body: {
715
+ # "String" => {
716
+ # body: "String",
717
+ # },
718
+ # },
719
+ # response_state: "FAILURE", # accepts FAILURE, REPROMPT
720
+ # },
721
+ # },
722
+ # ],
661
723
  # session_attributes: {
662
724
  # "String" => "String",
663
725
  # },
@@ -668,7 +730,7 @@ module Aws::BedrockAgentRuntime
668
730
  #
669
731
  # All events are available at resp.completion:
670
732
  # resp.completion #=> Enumerator
671
- # resp.completion.event_types #=> [:access_denied_exception, :bad_gateway_exception, :chunk, :conflict_exception, :dependency_failed_exception, :internal_server_exception, :resource_not_found_exception, :service_quota_exceeded_exception, :throttling_exception, :trace, :validation_exception]
733
+ # resp.completion.event_types #=> [:access_denied_exception, :bad_gateway_exception, :chunk, :conflict_exception, :dependency_failed_exception, :internal_server_exception, :resource_not_found_exception, :return_control, :service_quota_exceeded_exception, :throttling_exception, :trace, :validation_exception]
672
734
  #
673
735
  # For :access_denied_exception event available at #on_access_denied_exception_event callback and response eventstream enumerator:
674
736
  # event.message #=> String
@@ -702,6 +764,28 @@ module Aws::BedrockAgentRuntime
702
764
  # For :resource_not_found_exception event available at #on_resource_not_found_exception_event callback and response eventstream enumerator:
703
765
  # event.message #=> String
704
766
  #
767
+ # For :return_control event available at #on_return_control_event callback and response eventstream enumerator:
768
+ # event.invocation_id #=> String
769
+ # event.invocation_inputs #=> Array
770
+ # event.invocation_inputs[0].api_invocation_input.action_group #=> String
771
+ # event.invocation_inputs[0].api_invocation_input.api_path #=> String
772
+ # event.invocation_inputs[0].api_invocation_input.http_method #=> String
773
+ # event.invocation_inputs[0].api_invocation_input.parameters #=> Array
774
+ # event.invocation_inputs[0].api_invocation_input.parameters[0].name #=> String
775
+ # event.invocation_inputs[0].api_invocation_input.parameters[0].type #=> String
776
+ # event.invocation_inputs[0].api_invocation_input.parameters[0].value #=> String
777
+ # event.invocation_inputs[0].api_invocation_input.request_body.content #=> Hash
778
+ # event.invocation_inputs[0].api_invocation_input.request_body.content["String"].properties #=> Array
779
+ # event.invocation_inputs[0].api_invocation_input.request_body.content["String"].properties[0].name #=> String
780
+ # event.invocation_inputs[0].api_invocation_input.request_body.content["String"].properties[0].type #=> String
781
+ # event.invocation_inputs[0].api_invocation_input.request_body.content["String"].properties[0].value #=> String
782
+ # event.invocation_inputs[0].function_invocation_input.action_group #=> String
783
+ # event.invocation_inputs[0].function_invocation_input.function #=> String
784
+ # event.invocation_inputs[0].function_invocation_input.parameters #=> Array
785
+ # event.invocation_inputs[0].function_invocation_input.parameters[0].name #=> String
786
+ # event.invocation_inputs[0].function_invocation_input.parameters[0].type #=> String
787
+ # event.invocation_inputs[0].function_invocation_input.parameters[0].value #=> String
788
+ #
705
789
  # For :service_quota_exceeded_exception event available at #on_service_quota_exceeded_exception_event callback and response eventstream enumerator:
706
790
  # event.message #=> String
707
791
  #
@@ -711,11 +795,13 @@ module Aws::BedrockAgentRuntime
711
795
  # For :trace event available at #on_trace_event callback and response eventstream enumerator:
712
796
  # event.agent_alias_id #=> String
713
797
  # event.agent_id #=> String
798
+ # event.agent_version #=> String
714
799
  # event.session_id #=> String
715
800
  # event.trace.failure_trace.failure_reason #=> String
716
801
  # event.trace.failure_trace.trace_id #=> String
717
802
  # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.action_group_name #=> String
718
803
  # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.api_path #=> String
804
+ # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.function #=> String
719
805
  # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.parameters #=> Array
720
806
  # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.parameters[0].name #=> String
721
807
  # event.trace.orchestration_trace.invocation_input.action_group_invocation_input.parameters[0].type #=> String
@@ -973,6 +1059,27 @@ module Aws::BedrockAgentRuntime
973
1059
  # text: "RetrieveAndGenerateInputTextString", # required
974
1060
  # },
975
1061
  # retrieve_and_generate_configuration: {
1062
+ # external_sources_configuration: {
1063
+ # generation_configuration: {
1064
+ # prompt_template: {
1065
+ # text_prompt_template: "TextPromptTemplate",
1066
+ # },
1067
+ # },
1068
+ # model_arn: "BedrockModelArn", # required
1069
+ # sources: [ # required
1070
+ # {
1071
+ # byte_content: {
1072
+ # content_type: "ContentType", # required
1073
+ # data: "data", # required
1074
+ # identifier: "Identifier", # required
1075
+ # },
1076
+ # s3_location: {
1077
+ # uri: "S3Uri", # required
1078
+ # },
1079
+ # source_type: "S3", # required, accepts S3, BYTE_CONTENT
1080
+ # },
1081
+ # ],
1082
+ # },
976
1083
  # knowledge_base_configuration: {
977
1084
  # generation_configuration: {
978
1085
  # prompt_template: {
@@ -1045,7 +1152,7 @@ module Aws::BedrockAgentRuntime
1045
1152
  # },
1046
1153
  # },
1047
1154
  # },
1048
- # type: "KNOWLEDGE_BASE", # required, accepts KNOWLEDGE_BASE
1155
+ # type: "KNOWLEDGE_BASE", # required, accepts KNOWLEDGE_BASE, EXTERNAL_SOURCES
1049
1156
  # },
1050
1157
  # session_configuration: {
1051
1158
  # kms_key_arn: "KmsKeyArn", # required
@@ -1089,7 +1196,7 @@ module Aws::BedrockAgentRuntime
1089
1196
  params: params,
1090
1197
  config: config)
1091
1198
  context[:gem_name] = 'aws-sdk-bedrockagentruntime'
1092
- context[:gem_version] = '1.5.0'
1199
+ context[:gem_version] = '1.7.0'
1093
1200
  Seahorse::Client::Request.new(handlers, context)
1094
1201
  end
1095
1202