diff --git a/.prettierignore b/.prettierignore
index 5343c52c8..c70a74b32 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -334,3 +334,6 @@ packages/libs/codemodel/.resources
**/test/scenarios/expected/**/*.yaml
**/test/scenarios/expected/**/*.json
packages/extensions/core/test/plugins/*/expected/*.json
+
+# MICROSOFT SECURITY.md
+/SECURITY.md
diff --git a/docs/generate/flags.md b/docs/generate/flags.md
index 09b9acf84..a7414e682 100644
--- a/docs/generate/flags.md
+++ b/docs/generate/flags.md
@@ -106,7 +106,7 @@ The flags listed here are still provisional. Code generated with these flags can
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--version-tolerant` | Whether you want to generate with our newer generator. The goal of this generator's generated code is to be more Pythonic, and to be tolerant to non-breaking version changes on the service side. This flag is still in preview, defaults to `false`. |
| `--low-level-client` | Whether you want to generate an SDK with only request builders and a `send_request` method on the client. Defaults to `false`. |
-| `—-models-mode=msrest\|none` | Whether you want models for your SDK or not. Currently we only generate `msrest` models if models are wanted. Defaults to `msrest` for current AutoRest generation, and `none` for `low-level-client` and `version-tolerant` generations. |
+| `--models-mode=msrest\|none` | Whether you want models for your SDK or not. Currently we only generate `msrest` models if models are wanted. Defaults to `msrest` for current AutoRest generation, and `none` for `low-level-client` and `version-tolerant` generations. |
| `--show-send-request` | Whether you want the `send_request` method on your client to be public or not. Defaults to `true` for `version-tolerant` and `low-level-client` generations. |
| `--builders-visibility=public\|hidden\|embedded` | How visible you want your request builders to be. With `public`, you get a public rest layer with your request builders. With `private`, you still get a separate layer with your request builders, but it is hidden. Finally, with `embedded`, you get the builders embedded in your operations files. Defaults to `public` for `low-level-client`, `embedded` for others. |
| `--show-operations` | Whether to generate operations for your client and operation groups. Defaults to `true` for non-`low-level-client` generations. |
@@ -122,32 +122,39 @@ The flags listed here are still provisional. Code generated with these flags can
## Java Flags
-| Flag | Description |
-| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `--azure-libraries-for-java-folder=DIRECTORY` | The path to the root directory of your [`azure-sdk-for-java`][azure_sdk_for_java] clone. Be sure to note that we include `sdk` in the folder path. |
-| `--fluent=LITE\|PREMIUM` | Enables Java's fluent generator, generating a set of fluent Java interfaces for a guided and convenient user experience for the client library. Currently used by Azure management libraries. `LITE` for Fluent Lite; `PREMIUM` for Fluent Premium. Default is `PREMIUM` if provided as other values. See [the java docs][fluent_docs] for all of the Fluent specific flags. |
-| `--regenerate-pom` | Whether to regenerate the pom file in your project. See [here][pom] for more information on what a pom file is. Defaults to `false`. |
-| `--generate-client-as-impl` | Append "Impl" to the names of service clients and method groups and place them in the `implementation` sub-package. Defaults to `false`. |
-| `--generate-client-interfaces` | Generates interfaces for all the "Impl"s. Forces `--generate-client-as-impl` to `true`, and generates an interface for it as well. Defaults to `false`. |
-| `--generate-sync-async-clients` | Generates sync and async convenience layer clients for all the "Impl"s. Forces `--generate-client-as-impl` to `true`. Defaults to `false`. |
-| `--implementation-subpackage=NAME` | The sub-package that the Service client and Method Group client implementation classes will be put into. Defaults to `implementation`. |
-| `--models-subpackage=NAME` | The sub-package that Enums, Exceptions, and Model types will be put into. Defaults to `models`. |
-| `--add-context-parameter` | Indicates whether the [`com.azure.core.util.Context`][java_context] parameter should be included in generated proxy methods. Use if you want to pass arbitrary data (key-value pairs) to pipeline policies. Defaults to `false`. |
-| `--context-client-method-parameter` | Indicates whether the [`com.azure.core.util.Context`][java_context] parameter should also be included in generated client methods. Forces `--add-context-parameter` to `true`. Defaults to `false`. |
-| `--sync-methods=all\|essential\|none` | Specifies mode for generating sync wrappers. Supported values are
`essential` - generates only one sync returning body or header (default)
`all` - generates one sync method for each async method
`none` - does not generate any sync methods |
-| `--required-parameter-client-methods` | Indicates whether client method overloads with only required parameters should be generated. Defaults to `false`. |
-| `--custom-types-subpackage=VALUE` | The sub-package that the custom types should be generated in. The types that custom types reference, or inherit from will also be automatically moved to this sub-package. **Recommended usage**: You can set this value to `models` and set `--models-subpackage=implementation.models`to generate models to `implementation.models` by default and pick specific models to be public through `--custom-types`. |
-| `--custom-types=VALUE(S)` | Specifies a list of files to put in the package specified in `--custom-types-subpackage`. You can pass multiple values in using CSV format. |
-| `--client-type-prefix=PREFIX` | The prefix that will be added to each generated client type. |
-| `--model-override-setter-from-superclass` | Indicates whether to override the superclass setter method in model. Defaults to `false`. |
-| `--non-null-annotations` | Whether or not to add the `@NotNull` annotation to required parameters in client methods. Defaults to `false`. |
-| `--client-logger` | Whether the client should log by default. Defaults to `false`. |
-| `--required-fields-as-ctor-args` | Whether an object's required fields should be specified as arguments to its constructor. Defaults to `false`. |
-| `--service-interface-as-public` | Whether the service's interface should be set as public. Defaults to `false`. |
-| `--artifact-id` | The name of your project jar without its version. See [here][artifact_id] for more information about an artifact id. |
-| `--credential-types=TokenCredential\|AzureKeyCredential\|None` | The type of credential if `--add-credential` is specified. Defaults to `None`. |
-| `--customization-jar-path=FILEPATH` | Pass in the path to your .jar file that contains customizations to the output files. This will allow AutoRest to dynamically load the class you provide in `--customization-class`. |
-| `--customization-class=NAME` | Use in conjunction with `--customization-jar-path`. That flag tells AutoRest where to look for your custom class, while `--customization-class` tells AutoRest the name of your custom class. |
+| Flag | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `--java-sdks-folder=DIRECTORY` | The path to the root directory of your [`azure-sdk-for-java`][azure_sdk_for_java] clone. Be sure to note that we include `sdk` in the folder path. |
+| `--fluent=LITE\|PREMIUM` | Enables Java's fluent generator, generating a set of fluent Java interfaces for a guided and convenient user experience for the client library. Currently used by Azure management libraries. `LITE` for Fluent Lite; `PREMIUM` for Fluent Premium. Default is `PREMIUM` if provided as other values. See [the java docs][fluent_docs] for all of the Fluent specific flags. |
+| `--data-plane` | Enables Java's DPG, generating a minimal data-plane client. See [the java docs][java_exception] for details. |
+| `--regenerate-pom` | Whether to regenerate the pom file in your project. See [here][pom] for more information on what a pom file is. Defaults to `false`. |
+| `--generate-client-as-impl` | Append "Impl" to the names of service clients and method groups and place them in the `implementation` sub-package. Defaults to `false`. |
+| `--generate-client-interfaces` | Generates interfaces for all the "Impl"s. Forces `--generate-client-as-impl` to `true`, and generates an interface for it as well. Defaults to `false`. |
+| `--generate-sync-async-clients` | Generates sync and async convenience layer clients for all the "Impl"s. Forces `--generate-client-as-impl` to `true`. Defaults to `false`. |
+| `--implementation-subpackage=NAME` | The sub-package that the Service client and Method Group client implementation classes will be put into. Defaults to `implementation`. |
+| `--models-subpackage=NAME` | The sub-package that Enums, Exceptions, and Model types will be put into. Defaults to `models`. |
+| `--add-context-parameter` | Indicates whether the [`com.azure.core.util.Context`][java_context] parameter should be included in generated proxy methods. Use if you want to pass arbitrary data (key-value pairs) to pipeline policies. Defaults to `false`. |
+| `--context-client-method-parameter` | Indicates whether the [`com.azure.core.util.Context`][java_context] parameter should also be included in generated client methods. Forces `--add-context-parameter` to `true`. Defaults to `false`. |
+| `--sync-methods=all\|essential\|none` | Specifies mode for generating sync wrappers. Supported values are
`essential` - generates only one sync returning body or header (default)
`all` - generates one sync method for each async method
`none` - does not generate any sync methods |
+| `--required-parameter-client-methods` | Indicates whether client method overloads with only required parameters should be generated. Defaults to `false`. |
+| `--custom-types-subpackage=NAME` | The sub-package that the custom types should be generated in. The types that custom types reference, or inherit from will also be automatically moved to this sub-package. **Recommended usage**: You can set this value to `models` and set `--models-subpackage=implementation.models`to generate models to `implementation.models` by default and pick specific models to be public through `--custom-types`. |
+| `--custom-types=NAME(S)` | Specifies a list of files to put in the package specified in `--custom-types-subpackage`. You can pass multiple values in using CSV format. |
+| `--client-type-prefix=PREFIX` | The prefix that will be added to each generated client type. |
+| `--model-override-setter-from-superclass` | Indicates whether to override the superclass setter method in model. Defaults to `false`. **Recommended usage**: Set to `true`. |
+| `--non-null-annotations` | Whether or not to add the `@NotNull` annotation to required parameters in client methods. Defaults to `false`. |
+| `--client-logger` | Whether the client should log by default. Defaults to `false`. |
+| `--required-fields-as-ctor-args` | Whether an object's required fields should be specified as arguments to its constructor. Defaults to `false`. |
+| `--service-interface-as-public` | Whether the service's interface should be set as public. Defaults to `false`. |
+| `--artifact-id=NAME` | The name of your project jar without its version. See [here][artifact_id] for more information about an artifact id. |
+| `--polling` | The configuration on the generation of long running operations. See [the java docs][java_polling] for details. |
+| `--default-http-exception-type=NAME` | The fully-qualified class name that should be used as the default HTTP exception type. The class must extend from `HttpResponseException`. |
+| `--use-default-http-status-code-to-exception-type-mapping` | Indicates whether a default HTTP status code to exception mapping should be used if one isn't provided. Defaults to `false`. **Recommended usage**: Set to `true`. |
+| `--http-status-code-to-exception-type-mapping` | The HTTP status code to exception mapping that should be used. All exception types must be fully-qualified and extend from `HttpResponseException`. See [the java docs][java_exception] for details. |
+| `--custom-strongly-typed-header-deserialization` | Indicates whether strongly-typed HTTP header objects will use custom desrialization instead of Jackson Databind's convertValue method, providing substantial performance benefits. Defaults to `false`. **Recommended usage**: Set to `true`. |
+| `--generic-response-type` | Indicates that generic response types are used instead of named response types that extend the generic type. Defaults to `false`. |
+| `--customization-jar-path=FILEPATH` | Pass in the path to your .jar file that contains customizations to the output files. This will allow AutoRest to dynamically load the class you provide in `--customization-class`. |
+| `--customization-class=NAME` | Use in conjunction with `--customization-jar-path`. That flag tells AutoRest where to look for your custom class, while `--customization-class` tells AutoRest the name of your custom class. |
+| `--skip-formatting` | Indicates whether to skip formatting Java file. Defaults to `false`. **Recommended usage**: Set to `true` for diagnosis, when AutoRest fails due to syntax error in generated Java code. |
## TypeScript Flags
@@ -190,8 +197,8 @@ The flags listed here are still provisional. Code generated with these flags can
-[tracing_quickstart]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/core/azure-core-tracing-opentelemetry/README.md
-[azure_sdk_for_python]: https://github.com/Azure/azure-sdk-for-python/tree/master/sdk
+[tracing_quickstart]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core-tracing-opentelemetry/README.md
+[azure_sdk_for_python]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk
[mgmt_plane_section]: https://github.com/Azure/autorest/blob/main/docs/generate/readme.md#generating-management-plane-code
[setup_py]: https://packaging.python.org/tutorials/packaging-projects/#creating-setup-py
[multiapi_section]: https://github.com/Azure/autorest/blob/main/docs/generate/readme.md#generating-multi-api-code
@@ -201,11 +208,14 @@ The flags listed here are still provisional. Code generated with these flags can
[shared_generator_assets]: https://github.com/Azure/autorest.csharp/tree/feature/v3/src/assets/Generator.Shared
[shared_azure_core_assets]: https://github.com/Azure/autorest.csharp/tree/feature/v3/src/assets/Azure.Core.Shared
[autorest_csharp]: https://github.com/Azure/autorest.csharp
-[azure_sdk_for_java]: https://github.com/Azure/azure-sdk-for-java/tree/master/sdk
+[azure_sdk_for_java]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk
[pom]: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#what-is-a-pom
-[java_context]: https://azuresdkdocs.blob.core.windows.net/$web/java/azure-core/1.0.0/index.html?com/azure/core/util/Context.html
+[java_context]: https://azuresdkdocs.blob.core.windows.net/$web/java/azure-core/latest/com/azure/core/util/Context.html
[artifact_id]: https://maven.apache.org/guides/mini/guide-naming-conventions.html
[fluent_docs]: https://github.com/Azure/autorest.java#additional-settings-for-fluent
+[java_polling]: https://github.com/Azure/autorest.java#polling-configuration
+[java_exception]: https://github.com/Azure/autorest.java#http-status-code-to-exception-type-handling
+[java_dpg]: https://github.com/Azure/autorest.java#settings-for-minimal-data-plane-clients
[armcore_connection]: https://github.com/Azure/azure-sdk-for-go/blob/main/sdk/azcore/arm/connection.go
[debugging]: https://github.com/Azure/autorest/blob/main/docs/troubleshooting.md#debugging
[black]: https://pypi.org/project/black/