google-cloud-pubsub-v1 0.23.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,6 +28,9 @@ module Google
28
28
  # @!attribute [rw] destinations
29
29
  # @return [::Array<::Google::Api::ClientLibraryDestination>]
30
30
  # The destination where API teams want this client library to be published.
31
+ # @!attribute [rw] selective_gapic_generation
32
+ # @return [::Google::Api::SelectiveGapicGeneration]
33
+ # Configuration for which RPCs should be generated in the GAPIC client.
31
34
  class CommonLanguageSettings
32
35
  include ::Google::Protobuf::MessageExts
33
36
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -196,9 +199,32 @@ module Google
196
199
  # @!attribute [rw] common
197
200
  # @return [::Google::Api::CommonLanguageSettings]
198
201
  # Some settings.
202
+ # @!attribute [rw] experimental_features
203
+ # @return [::Google::Api::PythonSettings::ExperimentalFeatures]
204
+ # Experimental features to be included during client library generation.
199
205
  class PythonSettings
200
206
  include ::Google::Protobuf::MessageExts
201
207
  extend ::Google::Protobuf::MessageExts::ClassMethods
208
+
209
+ # Experimental features to be included during client library generation.
210
+ # These fields will be deprecated once the feature graduates and is enabled
211
+ # by default.
212
+ # @!attribute [rw] rest_async_io_enabled
213
+ # @return [::Boolean]
214
+ # Enables generation of asynchronous REST clients if `rest` transport is
215
+ # enabled. By default, asynchronous REST clients will not be generated.
216
+ # This feature will be enabled by default 1 month after launching the
217
+ # feature in preview packages.
218
+ # @!attribute [rw] protobuf_pythonic_types_enabled
219
+ # @return [::Boolean]
220
+ # Enables generation of protobuf code using new types that are more
221
+ # Pythonic which are included in `protobuf>=5.29.x`. This feature will be
222
+ # enabled by default 1 month after launching the feature in preview
223
+ # packages.
224
+ class ExperimentalFeatures
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
202
228
  end
203
229
 
204
230
  # Settings for Node client libraries.
@@ -280,9 +306,28 @@ module Google
280
306
  # @!attribute [rw] common
281
307
  # @return [::Google::Api::CommonLanguageSettings]
282
308
  # Some settings.
309
+ # @!attribute [rw] renamed_services
310
+ # @return [::Google::Protobuf::Map{::String => ::String}]
311
+ # Map of service names to renamed services. Keys are the package relative
312
+ # service names and values are the name to be used for the service client
313
+ # and call options.
314
+ #
315
+ # publishing:
316
+ # go_settings:
317
+ # renamed_services:
318
+ # Publisher: TopicAdmin
283
319
  class GoSettings
284
320
  include ::Google::Protobuf::MessageExts
285
321
  extend ::Google::Protobuf::MessageExts::ClassMethods
322
+
323
+ # @!attribute [rw] key
324
+ # @return [::String]
325
+ # @!attribute [rw] value
326
+ # @return [::String]
327
+ class RenamedServicesEntry
328
+ include ::Google::Protobuf::MessageExts
329
+ extend ::Google::Protobuf::MessageExts::ClassMethods
330
+ end
286
331
  end
287
332
 
288
333
  # Describes the generator configuration for a method.
@@ -290,6 +335,13 @@ module Google
290
335
  # @return [::String]
291
336
  # The fully qualified name of the method, for which the options below apply.
292
337
  # This is used to find the method to apply the options.
338
+ #
339
+ # Example:
340
+ #
341
+ # publishing:
342
+ # method_settings:
343
+ # - selector: google.storage.control.v2.StorageControl.CreateFolder
344
+ # # method settings for CreateFolder...
293
345
  # @!attribute [rw] long_running
294
346
  # @return [::Google::Api::MethodSettings::LongRunning]
295
347
  # Describes settings to use for long-running operations when generating
@@ -298,17 +350,14 @@ module Google
298
350
  #
299
351
  # Example of a YAML configuration::
300
352
  #
301
- # publishing:
302
- # method_settings:
353
+ # publishing:
354
+ # method_settings:
303
355
  # - selector: google.cloud.speech.v2.Speech.BatchRecognize
304
356
  # long_running:
305
- # initial_poll_delay:
306
- # seconds: 60 # 1 minute
357
+ # initial_poll_delay: 60s # 1 minute
307
358
  # poll_delay_multiplier: 1.5
308
- # max_poll_delay:
309
- # seconds: 360 # 6 minutes
310
- # total_poll_timeout:
311
- # seconds: 54000 # 90 minutes
359
+ # max_poll_delay: 360s # 6 minutes
360
+ # total_poll_timeout: 54000s # 90 minutes
312
361
  # @!attribute [rw] auto_populated_fields
313
362
  # @return [::Array<::String>]
314
363
  # List of top-level fields of the request message, that should be
@@ -317,8 +366,8 @@ module Google
317
366
  #
318
367
  # Example of a YAML configuration:
319
368
  #
320
- # publishing:
321
- # method_settings:
369
+ # publishing:
370
+ # method_settings:
322
371
  # - selector: google.example.v1.ExampleService.CreateExample
323
372
  # auto_populated_fields:
324
373
  # - request_id
@@ -354,6 +403,17 @@ module Google
354
403
  end
355
404
  end
356
405
 
406
+ # This message is used to configure the generation of a subset of the RPCs in
407
+ # a service for client libraries.
408
+ # @!attribute [rw] methods
409
+ # @return [::Array<::String>]
410
+ # An allowlist of the fully qualified names of RPCs that should be included
411
+ # on public client surfaces.
412
+ class SelectiveGapicGeneration
413
+ include ::Google::Protobuf::MessageExts
414
+ extend ::Google::Protobuf::MessageExts::ClassMethods
415
+ end
416
+
357
417
  # The organization for which the client libraries are being published.
358
418
  # Affects the url where generated docs are published, etc.
359
419
  module ClientLibraryOrganization
@@ -124,8 +124,13 @@ module Google
124
124
  # @return [::String]
125
125
  # The plural name used in the resource name and permission names, such as
126
126
  # 'projects' for the resource name of 'projects/\\{project}' and the permission
127
- # name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
128
- # concept of the `plural` field in k8s CRD spec
127
+ # name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception
128
+ # to this is for Nested Collections that have stuttering names, as defined
129
+ # in [AIP-122](https://google.aip.dev/122#nested-collections), where the
130
+ # collection ID in the resource name pattern does not necessarily directly
131
+ # match the `plural` value.
132
+ #
133
+ # It is the same concept of the `plural` field in k8s CRD spec
129
134
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
130
135
  #
131
136
  # Note: The plural form is required even for singleton resources. See
@@ -71,6 +71,13 @@ module Google
71
71
  # @!attribute [rw] aws_kinesis
72
72
  # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AwsKinesis]
73
73
  # Optional. Amazon Kinesis Data Streams.
74
+ # @!attribute [rw] cloud_storage
75
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage]
76
+ # Optional. Cloud Storage.
77
+ # @!attribute [rw] platform_logs_settings
78
+ # @return [::Google::Cloud::PubSub::V1::PlatformLogsSettings]
79
+ # Optional. Platform Logs settings. If unset, no Platform Logs will be
80
+ # generated.
74
81
  class IngestionDataSourceSettings
75
82
  include ::Google::Protobuf::MessageExts
76
83
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -133,6 +140,190 @@ module Google
133
140
  CONSUMER_NOT_FOUND = 5
134
141
  end
135
142
  end
143
+
144
+ # Ingestion settings for Cloud Storage.
145
+ # @!attribute [r] state
146
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::State]
147
+ # Output only. An output-only field that indicates the state of the Cloud
148
+ # Storage ingestion source.
149
+ # @!attribute [rw] bucket
150
+ # @return [::String]
151
+ # Optional. Cloud Storage bucket. The bucket name must be without any
152
+ # prefix like "gs://". See the [bucket naming requirements]
153
+ # (https://cloud.google.com/storage/docs/buckets#naming).
154
+ # @!attribute [rw] text_format
155
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::TextFormat]
156
+ # Optional. Data from Cloud Storage will be interpreted as text.
157
+ # @!attribute [rw] avro_format
158
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::AvroFormat]
159
+ # Optional. Data from Cloud Storage will be interpreted in Avro format.
160
+ # @!attribute [rw] pubsub_avro_format
161
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::PubSubAvroFormat]
162
+ # Optional. It will be assumed data from Cloud Storage was written via
163
+ # [Cloud Storage
164
+ # subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
165
+ # @!attribute [rw] minimum_object_create_time
166
+ # @return [::Google::Protobuf::Timestamp]
167
+ # Optional. Only objects with a larger or equal creation timestamp will be
168
+ # ingested.
169
+ # @!attribute [rw] match_glob
170
+ # @return [::String]
171
+ # Optional. Glob pattern used to match objects that will be ingested. If
172
+ # unset, all objects will be ingested. See the [supported
173
+ # patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
174
+ class CloudStorage
175
+ include ::Google::Protobuf::MessageExts
176
+ extend ::Google::Protobuf::MessageExts::ClassMethods
177
+
178
+ # Configuration for reading Cloud Storage data in text format. Each line of
179
+ # text as specified by the delimiter will be set to the `data` field of a
180
+ # Pub/Sub message.
181
+ # @!attribute [rw] delimiter
182
+ # @return [::String]
183
+ # Optional. When unset, '\n' is used.
184
+ class TextFormat
185
+ include ::Google::Protobuf::MessageExts
186
+ extend ::Google::Protobuf::MessageExts::ClassMethods
187
+ end
188
+
189
+ # Configuration for reading Cloud Storage data in Avro binary format. The
190
+ # bytes of each object will be set to the `data` field of a Pub/Sub
191
+ # message.
192
+ class AvroFormat
193
+ include ::Google::Protobuf::MessageExts
194
+ extend ::Google::Protobuf::MessageExts::ClassMethods
195
+ end
196
+
197
+ # Configuration for reading Cloud Storage data written via [Cloud Storage
198
+ # subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The
199
+ # data and attributes fields of the originally exported Pub/Sub message
200
+ # will be restored when publishing.
201
+ class PubSubAvroFormat
202
+ include ::Google::Protobuf::MessageExts
203
+ extend ::Google::Protobuf::MessageExts::ClassMethods
204
+ end
205
+
206
+ # Possible states for ingestion from Cloud Storage.
207
+ module State
208
+ # Default value. This value is unused.
209
+ STATE_UNSPECIFIED = 0
210
+
211
+ # Ingestion is active.
212
+ ACTIVE = 1
213
+
214
+ # Permission denied encountered while calling the Cloud Storage API. This
215
+ # can happen if the Pub/Sub SA has not been granted the
216
+ # [appropriate
217
+ # permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions):
218
+ # - storage.objects.list: to list the objects in a bucket.
219
+ # - storage.objects.get: to read the objects in a bucket.
220
+ # - storage.buckets.get: to verify the bucket exists.
221
+ CLOUD_STORAGE_PERMISSION_DENIED = 2
222
+
223
+ # Permission denied encountered while publishing to the topic. This can
224
+ # happen if the Pub/Sub SA has not been granted the [appropriate publish
225
+ # permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
226
+ PUBLISH_PERMISSION_DENIED = 3
227
+
228
+ # The provided Cloud Storage bucket doesn't exist.
229
+ BUCKET_NOT_FOUND = 4
230
+
231
+ # The Cloud Storage bucket has too many objects, ingestion will be
232
+ # paused.
233
+ TOO_MANY_OBJECTS = 5
234
+ end
235
+ end
236
+ end
237
+
238
+ # Settings for Platform Logs produced by Pub/Sub.
239
+ # @!attribute [rw] severity
240
+ # @return [::Google::Cloud::PubSub::V1::PlatformLogsSettings::Severity]
241
+ # Optional. The minimum severity level of Platform Logs that will be written.
242
+ class PlatformLogsSettings
243
+ include ::Google::Protobuf::MessageExts
244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
245
+
246
+ # Severity levels of Platform Logs.
247
+ module Severity
248
+ # Default value. Logs level is unspecified. Logs will be disabled.
249
+ SEVERITY_UNSPECIFIED = 0
250
+
251
+ # Logs will be disabled.
252
+ DISABLED = 1
253
+
254
+ # Debug logs and higher-severity logs will be written.
255
+ DEBUG = 2
256
+
257
+ # Info logs and higher-severity logs will be written.
258
+ INFO = 3
259
+
260
+ # Warning logs and higher-severity logs will be written.
261
+ WARNING = 4
262
+
263
+ # Only error logs will be written.
264
+ ERROR = 5
265
+ end
266
+ end
267
+
268
+ # Payload of the Platform Log entry sent when a failure is encountered while
269
+ # ingesting.
270
+ # @!attribute [rw] topic
271
+ # @return [::String]
272
+ # Required. Name of the import topic. Format is:
273
+ # projects/\\{project_name}/topics/\\{topic_name}.
274
+ # @!attribute [rw] error_message
275
+ # @return [::String]
276
+ # Required. Error details explaining why ingestion to Pub/Sub has failed.
277
+ # @!attribute [rw] cloud_storage_failure
278
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::CloudStorageFailure]
279
+ # Optional. Failure when ingesting from Cloud Storage.
280
+ class IngestionFailureEvent
281
+ include ::Google::Protobuf::MessageExts
282
+ extend ::Google::Protobuf::MessageExts::ClassMethods
283
+
284
+ # Specifies the reason why some data may have been left out of
285
+ # the desired Pub/Sub message due to the API message limits
286
+ # (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
287
+ # when the number of attributes is larger than 100, the number of
288
+ # attributes is truncated to 100 to respect the limit on the attribute count.
289
+ # Other attribute limits are treated similarly. When the size of the desired
290
+ # message would've been larger than 10MB, the message won't be published at
291
+ # all, and ingestion of the subsequent messages will proceed as normal.
292
+ class ApiViolationReason
293
+ include ::Google::Protobuf::MessageExts
294
+ extend ::Google::Protobuf::MessageExts::ClassMethods
295
+ end
296
+
297
+ # Set when an Avro file is unsupported or its format is not valid. When this
298
+ # occurs, one or more Avro objects won't be ingested.
299
+ class AvroFailureReason
300
+ include ::Google::Protobuf::MessageExts
301
+ extend ::Google::Protobuf::MessageExts::ClassMethods
302
+ end
303
+
304
+ # Failure when ingesting from a Cloud Storage source.
305
+ # @!attribute [rw] bucket
306
+ # @return [::String]
307
+ # Optional. Name of the Cloud Storage bucket used for ingestion.
308
+ # @!attribute [rw] object_name
309
+ # @return [::String]
310
+ # Optional. Name of the Cloud Storage object which contained the section
311
+ # that couldn't be ingested.
312
+ # @!attribute [rw] object_generation
313
+ # @return [::Integer]
314
+ # Optional. Generation of the Cloud Storage object which contained the
315
+ # section that couldn't be ingested.
316
+ # @!attribute [rw] avro_failure_reason
317
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::AvroFailureReason]
318
+ # Optional. Failure encountered when parsing an Avro file.
319
+ # @!attribute [rw] api_violation_reason
320
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ApiViolationReason]
321
+ # Optional. The Pub/Sub API limits prevented the desired message from
322
+ # being published.
323
+ class CloudStorageFailure
324
+ include ::Google::Protobuf::MessageExts
325
+ extend ::Google::Protobuf::MessageExts::ClassMethods
326
+ end
136
327
  end
137
328
 
138
329
  # A topic resource.
@@ -500,7 +691,7 @@ module Google
500
691
  # backlog, from the moment a message is published. If `retain_acked_messages`
501
692
  # is true, then this also configures the retention of acknowledged messages,
502
693
  # and thus configures how far back in time a `Seek` can be done. Defaults to
503
- # 7 days. Cannot be more than 7 days or less than 10 minutes.
694
+ # 7 days. Cannot be more than 31 days or less than 10 minutes.
504
695
  # @!attribute [rw] labels
505
696
  # @return [::Google::Protobuf::Map{::String => ::String}]
506
697
  # Optional. See [Creating and managing
@@ -579,10 +770,31 @@ module Google
579
770
  # @return [::Google::Cloud::PubSub::V1::Subscription::State]
580
771
  # Output only. An output-only field indicating whether or not the
581
772
  # subscription can receive messages.
773
+ # @!attribute [r] analytics_hub_subscription_info
774
+ # @return [::Google::Cloud::PubSub::V1::Subscription::AnalyticsHubSubscriptionInfo]
775
+ # Output only. Information about the associated Analytics Hub subscription.
776
+ # Only set if the subscritpion is created by Analytics Hub.
582
777
  class Subscription
583
778
  include ::Google::Protobuf::MessageExts
584
779
  extend ::Google::Protobuf::MessageExts::ClassMethods
585
780
 
781
+ # Information about an associated Analytics Hub subscription
782
+ # (https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions).
783
+ # @!attribute [rw] listing
784
+ # @return [::String]
785
+ # Optional. The name of the associated Analytics Hub listing resource.
786
+ # Pattern:
787
+ # "projects/\\{project}/locations/\\{location}/dataExchanges/\\{data_exchange}/listings/\\{listing}"
788
+ # @!attribute [rw] subscription
789
+ # @return [::String]
790
+ # Optional. The name of the associated Analytics Hub subscription resource.
791
+ # Pattern:
792
+ # "projects/\\{project}/locations/\\{location}/subscriptions/\\{subscription}"
793
+ class AnalyticsHubSubscriptionInfo
794
+ include ::Google::Protobuf::MessageExts
795
+ extend ::Google::Protobuf::MessageExts::ClassMethods
796
+ end
797
+
586
798
  # @!attribute [rw] key
587
799
  # @return [::String]
588
800
  # @!attribute [rw] value
@@ -814,6 +1026,14 @@ module Google
814
1026
  # Optional. When true, use the BigQuery table's schema as the columns to
815
1027
  # write to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be
816
1028
  # enabled at the same time.
1029
+ # @!attribute [rw] service_account_email
1030
+ # @return [::String]
1031
+ # Optional. The service account to use to write to BigQuery. The subscription
1032
+ # creator or updater that specifies this field must have
1033
+ # `iam.serviceAccounts.actAs` permission on the service account. If not
1034
+ # specified, the Pub/Sub [service
1035
+ # agent](https://cloud.google.com/iam/docs/service-agents),
1036
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
817
1037
  class BigQueryConfig
818
1038
  include ::Google::Protobuf::MessageExts
819
1039
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -885,10 +1105,22 @@ module Google
885
1105
  # Optional. The maximum bytes that can be written to a Cloud Storage file
886
1106
  # before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
887
1107
  # be exceeded in cases where messages are larger than the limit.
1108
+ # @!attribute [rw] max_messages
1109
+ # @return [::Integer]
1110
+ # Optional. The maximum number of messages that can be written to a Cloud
1111
+ # Storage file before a new file is created. Min 1000 messages.
888
1112
  # @!attribute [r] state
889
1113
  # @return [::Google::Cloud::PubSub::V1::CloudStorageConfig::State]
890
1114
  # Output only. An output-only field that indicates whether or not the
891
1115
  # subscription can receive messages.
1116
+ # @!attribute [rw] service_account_email
1117
+ # @return [::String]
1118
+ # Optional. The service account to use to write to Cloud Storage. The
1119
+ # subscription creator or updater that specifies this field must have
1120
+ # `iam.serviceAccounts.actAs` permission on the service account. If not
1121
+ # specified, the Pub/Sub
1122
+ # [service agent](https://cloud.google.com/iam/docs/service-agents),
1123
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
892
1124
  class CloudStorageConfig
893
1125
  include ::Google::Protobuf::MessageExts
894
1126
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -911,6 +1143,10 @@ module Google
911
1143
  # put in their own fields while all other message properties other than
912
1144
  # data (for example, an ordering_key, if present) are added as entries in
913
1145
  # the attributes map.
1146
+ # @!attribute [rw] use_topic_schema
1147
+ # @return [::Boolean]
1148
+ # Optional. When true, the output Cloud Storage file will be serialized
1149
+ # using the topic schema, if it exists.
914
1150
  class AvroConfig
915
1151
  include ::Google::Protobuf::MessageExts
916
1152
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -934,6 +1170,10 @@ module Google
934
1170
  # Cannot write to the destination because enforce_in_transit is set to true
935
1171
  # and the destination locations are not in the allowed regions.
936
1172
  IN_TRANSIT_LOCATION_RESTRICTION = 4
1173
+
1174
+ # Cannot write to the Cloud Storage bucket due to an incompatibility
1175
+ # between the topic schema and subscription settings.
1176
+ SCHEMA_MISMATCH = 5
937
1177
  end
938
1178
  end
939
1179
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-pubsub-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-15 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.21.1
19
+ version: 0.24.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.21.1
29
+ version: 0.24.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  - !ruby/object:Gem::Version
134
134
  version: '0'
135
135
  requirements: []
136
- rubygems_version: 3.5.6
136
+ rubygems_version: 3.5.23
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Provides reliable, many-to-many, asynchronous messaging between applications.