Expose all trivial configuration attributes to Skylark.
RELNOTES: None.

PiperOrigin-RevId: 211540253
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 90b044f..991143c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -1111,6 +1111,7 @@
     this.persistentBusyboxTools = persistentBusyboxTools;
   }
 
+  @Override
   public String getCpu() {
     return cpu;
   }
@@ -1124,26 +1125,31 @@
     return sdk;
   }
 
+  @Override
   public boolean useIncrementalNativeLibs() {
     return useIncrementalNativeLibs;
   }
 
   /** Returns whether to use incremental dexing. */
+  @Override
   public boolean useIncrementalDexing() {
     return incrementalDexing;
   }
 
   /** Returns whether to process proguarded Android binaries with incremental dexing tools. */
+  @Override
   public int incrementalDexingShardsAfterProguard() {
     return incrementalDexingShardsAfterProguard;
   }
 
   /** Whether to use a separate tool to shard classes before merging them into final dex files. */
+  @Override
   public boolean incrementalDexingUseDexSharder() {
     return incrementalDexingUseDexSharder;
   }
 
   /** Whether to use incremental dexing to build proguarded binaries by default. */
+  @Override
   public boolean incrementalDexingAfterProguardByDefault() {
     return incrementalDexingAfterProguardByDefault;
   }
@@ -1152,16 +1158,19 @@
    * Returns true if an -assumevalues should be generated for Proguard based on the minSdkVersion of
    * the merged AndroidManifest.
    */
+  @Override
   public boolean assumeMinSdkVersion() {
     return assumeMinSdkVersion;
   }
 
   /** dx flags supported in incremental dexing actions. */
+  @Override
   public ImmutableList<String> getDexoptsSupportedInIncrementalDexing() {
     return dexoptsSupportedInIncrementalDexing;
   }
 
   /** dx flags supported in dexmerger actions. */
+  @Override
   public ImmutableList<String> getDexoptsSupportedInDexMerger() {
     return dexoptsSupportedInDexMerger;
   }
@@ -1170,27 +1179,33 @@
    * Incremental dexing must not be used for binaries that list any of these flags in their {@code
    * dexopts} attribute.
    */
+  @Override
   public ImmutableList<String> getTargetDexoptsThatPreventIncrementalDexing() {
     return targetDexoptsThatPreventIncrementalDexing;
   }
 
   /** Whether to assume the dexbuilder tool supports local worker mode. */
+  @Override
   public boolean useWorkersWithDexbuilder() {
     return useWorkersWithDexbuilder;
   }
 
+  @Override
   public boolean desugarJava8() {
     return desugarJava8;
   }
 
+  @Override
   public boolean desugarJava8Libs() {
     return desugarJava8Libs;
   }
 
+  @Override
   public boolean checkDesugarDeps() {
     return checkDesugarDeps;
   }
 
+  @Override
   public boolean useRexToCompressDexFiles() {
     return useRexToCompressDexFiles;
   }
@@ -1200,10 +1215,12 @@
         && Whitelist.isAvailable(ruleContext, "allow_deps_without_srcs");
   }
 
+  @Override
   public boolean useAndroidResourceShrinking() {
     return useAndroidResourceShrinking;
   }
 
+  @Override
   public boolean useAndroidResourceCycleShrinking() {
     return useAndroidResourceCycleShrinking;
   }
@@ -1220,34 +1237,42 @@
     return apkSigningMethod;
   }
 
+  @Override
   public boolean useSingleJarApkBuilder() {
     return useSingleJarApkBuilder;
   }
 
+  @Override
   public boolean useParallelDex2Oat() {
     return useParallelDex2Oat;
   }
 
-  boolean compressJavaResources() {
+  @Override
+  public boolean compressJavaResources() {
     return compressJavaResources;
   }
 
-  boolean getExportsManifestDefault() {
+  @Override
+  public boolean getExportsManifestDefault() {
     return exportsManifestDefault;
   }
 
+  @Override
   public boolean useAapt2ForRobolectric() {
     return useAapt2ForRobolectric;
   }
 
-  boolean throwOnResourceConflict() {
+  @Override
+  public boolean throwOnResourceConflict() {
     return throwOnResourceConflict;
   }
 
+  @Override
   public boolean skipParsingAction() {
     return this.skipParsingAction;
   }
 
+  @Override
   public boolean fixedResourceNeverlinking() {
     return this.fixedResourceNeverlinking;
   }
@@ -1256,20 +1281,24 @@
     return robolectricTestDeprecationLevel;
   }
 
+  @Override
   public boolean checkForMigrationTag() {
     return checkForMigrationTag;
   }
 
+  @Override
   public boolean getOneVersionEnforcementUseTransitiveJarsForBinaryUnderTest() {
     return oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
   }
 
+  @Override
   public boolean useDataBindingV2() {
     return dataBindingV2;
   }
 
-  public boolean persistentBusyboxTools() { 
-    return persistentBusyboxTools; 
+  @Override
+  public boolean persistentBusyboxTools() {
+    return persistentBusyboxTools;
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
index e7d4318..292f572 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidConfigurationApi.java
@@ -13,6 +13,7 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skylarkbuildapi.android;
 
+import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -22,7 +23,7 @@
     name = "android",
     doc =
         "Do not use this module. It is intended for migration purposes only. If you depend on it, "
-            + "you will be broken when it is removed."
+            + "you will be broken when it is removed. "
             + "A configuration fragment for Android.",
     documented = false,
     category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT)
@@ -34,4 +35,183 @@
       doc = "The Android target CPU.",
       documented = false)
   String getCpu();
+
+  @SkylarkCallable(
+      name = "use_incremental_native_libs",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useIncrementalNativeLibs();
+
+  @SkylarkCallable(
+      name = "use_incremental_dexing",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useIncrementalDexing();
+
+  @SkylarkCallable(
+      name = "incremental_dexing_shards_after_proguard",
+      structField = true,
+      doc = "",
+      documented = false)
+  int incrementalDexingShardsAfterProguard();
+
+  @SkylarkCallable(
+      name = "incremental_dexing_use_dex_sharder",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean incrementalDexingUseDexSharder();
+
+  @SkylarkCallable(
+      name = "incremental_dexing_after_proguard_by_default",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean incrementalDexingAfterProguardByDefault();
+
+  @SkylarkCallable(
+      name = "assume_min_sdk_version",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean assumeMinSdkVersion();
+
+  @SkylarkCallable(
+      name = "get_dexopts_supported_in_incremental_dexing",
+      structField = true,
+      doc = "",
+      documented = false)
+  ImmutableList<String> getDexoptsSupportedInIncrementalDexing();
+
+  @SkylarkCallable(
+      name = "get_dexopts_supported_in_dex_merger",
+      structField = true,
+      doc = "",
+      documented = false)
+  ImmutableList<String> getDexoptsSupportedInDexMerger();
+
+  @SkylarkCallable(
+      name = "get_target_dexopts_that_prevent_incremental_dexing",
+      structField = true,
+      doc = "",
+      documented = false)
+  ImmutableList<String> getTargetDexoptsThatPreventIncrementalDexing();
+
+  @SkylarkCallable(
+      name = "use_workers_with_dexbuilder",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useWorkersWithDexbuilder();
+
+  @SkylarkCallable(name = "desugar_java8", structField = true, doc = "", documented = false)
+  boolean desugarJava8();
+
+  @SkylarkCallable(name = "get_output_driecot", structField = true, doc = "", documented = false)
+  boolean desugarJava8Libs();
+
+  @SkylarkCallable(name = "check_desugar_deps", structField = true, doc = "", documented = false)
+  boolean checkDesugarDeps();
+
+  @SkylarkCallable(
+      name = "use_rex_to_compress_dex_files",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useRexToCompressDexFiles();
+
+  @SkylarkCallable(
+      name = "use_android_resource_shrinking",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useAndroidResourceShrinking();
+
+  @SkylarkCallable(
+      name = "use_android_resource_cycle_shrinking",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useAndroidResourceCycleShrinking();
+
+  @SkylarkCallable(
+      name = "use_single_jar_apk_builder",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useSingleJarApkBuilder();
+
+  @SkylarkCallable(name = "use_parallel_dex2oat", structField = true, doc = "", documented = false)
+  boolean useParallelDex2Oat();
+
+  @SkylarkCallable(
+      name = "compress_java_resources",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean compressJavaResources();
+
+  @SkylarkCallable(
+      name = "get_exports_manifest_default",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean getExportsManifestDefault();
+
+  @SkylarkCallable(
+      name = "use_aapt2_for_robolectric",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean useAapt2ForRobolectric();
+
+  @SkylarkCallable(
+      name = "throw_on_resource_conflict",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean throwOnResourceConflict();
+
+  @SkylarkCallable(name = "skip_parsing_action", structField = true, doc = "", documented = false)
+  boolean skipParsingAction();
+
+  @SkylarkCallable(
+      name = "fixed_resource_neverlinking",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean fixedResourceNeverlinking();
+
+  @SkylarkCallable(
+      name = "check_for_migration_tag",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean checkForMigrationTag();
+
+  @SkylarkCallable(
+      name = "get_one_version_enforcement_use_transitive_jars_for_binary_under_test",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean getOneVersionEnforcementUseTransitiveJarsForBinaryUnderTest();
+
+  @SkylarkCallable(name = "use_databinding_v2", structField = true, doc = "", documented = false)
+  boolean useDataBindingV2();
+
+  @SkylarkCallable(
+      name = "persistent_busybox_tools",
+      structField = true,
+      doc = "",
+      documented = false)
+  boolean persistentBusyboxTools();
+
+  @SkylarkCallable(
+      name = "get_output_directory_name",
+      structField = true,
+      doc = "",
+      documented = false)
+  String getOutputDirectoryName();
 }