1 /*
2  * Copyright 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package androidx.work
18 
19 /**
20  * Annotation indicating experimental API for new WorkManager's Configuration APIs.
21  *
22  * These APIs allow fine grained tuning WorkManager's behavior. However, full effects of these flags
23  * on OS health and WorkManager's throughput aren't fully known and currently are being explored.
24  * After the research either the best default value for a flag will be chosen and then associated
25  * API will be removed or the guidance on how to choose a value depending on app's specifics will
26  * developed and then associated API will be promoted to stable.
27  *
28  * As a result these APIs annotated with `ExperimentalConfigurationApi` requires opt-in
29  */
30 @Retention(AnnotationRetention.BINARY)
31 @Target(
32     AnnotationTarget.FUNCTION,
33     AnnotationTarget.PROPERTY,
34     AnnotationTarget.PROPERTY_GETTER,
35     AnnotationTarget.CLASS
36 )
37 @RequiresOptIn(level = RequiresOptIn.Level.WARNING)
38 annotation class ExperimentalConfigurationApi
39