diff --git a/sdk/tools/azure-openrewrite/pom.xml b/sdk/tools/azure-openrewrite/pom.xml
index 50f4b104267e..39c35b29e0ea 100644
--- a/sdk/tools/azure-openrewrite/pom.xml
+++ b/sdk/tools/azure-openrewrite/pom.xml
@@ -67,12 +67,7 @@
rewrite-maven
compile
-
- com.azure
- azure-core
- 1.55.2
- test
-
+
org.openrewrite
rewrite-test
@@ -121,6 +116,20 @@
provided
+
+
+ com.azure
+ azure-core
+ 1.55.2
+ test
+
+
+
+ io.clientcore
+ core
+ 1.0.0-beta.5
+
+
com.azure
azure-ai-translation-text
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure-core-migration.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure-core-migration.yml
index 9fee4b36e1c0..23060e3e239c 100644
--- a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure-core-migration.yml
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure-core-migration.yml
@@ -34,14 +34,6 @@ recipeList:
oldFullyQualifiedTypeName: com.azure.core.http.policy.KeyCredentialPolicy
newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.KeyCredentialPolicy
-
- # Before: import com.azure.core.credential.KeyCredential;
- # After: import io.clientcore.core.credential.KeyCredential;
- - org.openrewrite.java.ChangeType:
- oldFullyQualifiedTypeName: com.azure.core.credential.KeyCredential
- newFullyQualifiedTypeName: io.clientcore.core.credential.KeyCredential
-
-
# Before: import com.azure.core.client.traits.KeyCredentialTrait;
# After: import io.clientcore.core.models.traits.KeyCredentialTrait;
- org.openrewrite.java.ChangeType:
@@ -75,27 +67,27 @@ recipeList:
newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.HttpPipelinePolicy
ignoreDefinition: false
- # Before: import com.azure.core.exception.ClientAuthenticationException;
+ # Before: import com.azure.core.exception.yml.ClientAuthenticationException;
# After: import com.azure.core.v2.exception.ClientAuthenticationException;
- org.openrewrite.java.ChangeType:
- oldFullyQualifiedTypeName: com.azure.core.exception.ClientAuthenticationException
+ oldFullyQualifiedTypeName: com.azure.core.exception.yml.ClientAuthenticationException
newFullyQualifiedTypeName: com.azure.core.v2.exception.ClientAuthenticationException
- # Before: import com.azure.core.exception.ResourceModifiedException;
+ # Before: import com.azure.core.exception.yml.ResourceModifiedException;
# After: import com.azure.core.v2.exception.ResourceModifiedException;
- org.openrewrite.java.ChangeType:
- oldFullyQualifiedTypeName: com.azure.core.exception.ResourceModifiedException
+ oldFullyQualifiedTypeName: com.azure.core.exception.yml.ResourceModifiedException
newFullyQualifiedTypeName: com.azure.core.v2.exception.ResourceModifiedException
- # Before: import com.azure.core.exception.ResourceNotFoundException;
+ # Before: import com.azure.core.exception.yml.ResourceNotFoundException;
# After: import com.azure.core.v2.exception.ResourceNotFoundException;
- org.openrewrite.java.ChangeType:
- oldFullyQualifiedTypeName: com.azure.core.exception.ResourceNotFoundException
+ oldFullyQualifiedTypeName: com.azure.core.exception.yml.ResourceNotFoundException
newFullyQualifiedTypeName: com.azure.core.v2.exception.ResourceNotFoundException
- # Before: import com.azure.core.exception.HttpResponseException;
+ # Before: import com.azure.core.exception.yml.HttpResponseException;
# After: import io.clientcore.core.http.exception.HttpResponseException;
- org.openrewrite.java.ChangeType:
- oldFullyQualifiedTypeName: com.azure.core.exception.HttpResponseException
+ oldFullyQualifiedTypeName: com.azure.core.exception.yml.HttpResponseException
newFullyQualifiedTypeName: io.clientcore.core.http.exception.HttpResponseException
# End azure-core-exception change type Recipes
@@ -142,7 +134,3 @@ recipeList:
matchOverrides: false
ignoreDefinition: false
- - com.azure.openrewrite.core.ResponseRecipe
- - com.azure.openrewrite.core.RetryOptionsConstructorRecipe
- - com.azure.openrewrite.TypeReferenceRecipe
- - com.azure.openrewrite.RemoveFixedDelayRecipe
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.annotation.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.annotation.yml
new file mode 100644
index 000000000000..26a3db1e5d1f
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.annotation.yml
@@ -0,0 +1,218 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.annotation
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.annotation
+displayName: Migrate from azure.core.annotation to next generation stack
+description: This recipe migrates the azure.core.annotation package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # BodyParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Delete
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ExpectedResponses
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Fluent
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ForumParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Generated
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Get
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Head
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HeaderCollection
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HeaderParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Headers
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Host
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HostParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Immutable
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # JsonFlatten
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Options
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Patch
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PathParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Post
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Put
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # QueryParam
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ResumeOperation
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ReturnType
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.annotation.ReturnType
+ newFullyQualifiedTypeName: io.clientcore.core.annotations.ReturnType
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ReturnValueWireType
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ServiceClient
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.annotation.ServiceClient
+ newFullyQualifiedTypeName: io.clientcore.core.annotations.ServiceClient
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ServiceClientBuilder
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.annotation.ServiceClientBuilder
+ newFullyQualifiedTypeName: io.clientcore.core.annotations.ServiceClientBuilder
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ServiceClientProtocol
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ServiceInterface
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.annotation.ServiceInterface
+ newFullyQualifiedTypeName: io.clientcore.core.annotations.ServiceInterface
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ServiceMethod
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.annotation.ServiceMethod
+ newFullyQualifiedTypeName: io.clientcore.core.annotations.ServiceMethod
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # UnexpectedResponseExceptionType
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UnexpectedResponseExceptionTypes
+ # --------------------------------------------------------------------
+
+ # TODO: Removed API. Triage replacement
+
+
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.credential.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.credential.yml
new file mode 100644
index 000000000000..594382c64476
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.credential.yml
@@ -0,0 +1,112 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.credential
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.credential
+displayName: Migrate from azure.core.credential to next generation stack
+description: This recipe migrates the azure.core.credential package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AccessToken
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.AccessToken
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.AccessToken
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureKeyCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.AzureKeyCredential
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.AzureKeyCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureNamedKey
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.AzureNamedKey
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.AzureNamedKey
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureNamedKeyCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.AzureNamedKeyCredential
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.AzureNamedKeyCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureSasCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.AzureSasCredential
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.AzureSasCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # BasicAuthenticationCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.BasicAuthenticationCredential
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.BasicAuthenticationCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # KeyCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.KeyCredential
+ newFullyQualifiedTypeName: io.clientcore.core.credentials.KeyCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ProofOfPossesionOptions
+ # --------------------------------------------------------------------
+
+ # TODO: This has been removed. Triage next steps with Jonathan
+
+ # --------------------------------------------------------------------
+ # SimpleTokenCache
+ # --------------------------------------------------------------------
+
+ # TODO: This has been removed. Triage next steps with Jonathan
+
+ # --------------------------------------------------------------------
+ # TokenCredential
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.TokenCredential
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.TokenCredential
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # TokenRequestContext
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.credential.TokenRequestContext
+ newFullyQualifiedTypeName: com.azure.v2.core.credentials.TokenRequestContext
+
+ # TODO: Migrate Methods and Fields
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.cryptography.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.cryptography.yml
new file mode 100644
index 000000000000..5e9b5d7a85a1
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.cryptography.yml
@@ -0,0 +1,42 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.cryptography
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.cryptography
+displayName: Migrate from azure.core.cryptography to next generation stack
+description: This recipe migrates azure.core.cryptography package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AsyncKeyEncryptionKey
+ # --------------------------------------------------------------------
+
+ # TODO: Async Library. Port to sync.
+
+ # --------------------------------------------------------------------
+ # AsyncKeyEncryptionKeyResolver
+ # --------------------------------------------------------------------
+
+ # TODO: Async Library. Port to sync.
+
+ # --------------------------------------------------------------------
+ # KeyEncryptionKey
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.cryptography.KeyEncryptionKey
+ newFullyQualifiedTypeName: com.azure.v2.core.cryptography.KeyEncryptionKey
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # KeyEncryptionKeyResolver
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.cryptography.KeyEncryptionKeyResolver
+ newFullyQualifiedTypeName: com.azure.v2.core.cryptography.KeyEncryptionKeyResolver
+
+ # TODO: Migrate Methods and Fields
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.exception.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.exception.yml
new file mode 100644
index 000000000000..fb641197602f
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.exception.yml
@@ -0,0 +1,80 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.exception
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.exception
+displayName: Migrate from azure.core.exception to next generation stack
+description: This recipe migrates the azure.core.exception package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AzureException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ClientAuthenticationException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # DecodeException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpRequestException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpResponseException
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.exception.HttpResponseException
+ newFullyQualifiedTypeName: io.clientcore.core.http.exceptions.HttpResponseException
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ResourceExistsException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ResourceModifiedException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ResourceNotFoundException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ServiceResponseException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TooManyRedirectsException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UnexpectedLengthException
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.policy.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.policy.yml
new file mode 100644
index 000000000000..d343a19b070f
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.policy.yml
@@ -0,0 +1,267 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.http.policy
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.http.policy
+displayName: Migrate from azure.core.http.policy to next generation stack
+description: This recipe migrates azure.core.http.policy package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AddDatePolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.AddDatePolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.AddDatePolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AddHeadersFromContextPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # AddHeadersPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.AddHeadersPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.AddHeadersPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AfterRetryPolicyProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # AzureKeyCredentialPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.AzureKeyCredentialPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.AzureKeyCredentialPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureSasCredentialPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.AzureSasCredentialPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.AzureSasCredentialPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # BearerTokenAuthenticationPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.BearerTokenAuthenticationPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.BearerTokenAuthenticationPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # BeforeRetryPolicyProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # CookiePolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # DefaultRedirectStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ExponentialBackoff
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ExponentialBackoffOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # FixedDelay
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # FixedDelayOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HostPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpLogDetailLevel
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpLogOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpLoggingPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPipelinePolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.HttpPipelinePolicy
+ newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.HttpPipelinePolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpPipelineSyncPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPolicyProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPolicyProviders
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpRequestLogger
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpResponseLoggingContext
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # KeyCredentialPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.KeyCredentialPolicy
+ newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.KeyCredentialPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # PortPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ProtocolPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RedirectPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RedirectStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RequestIdPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.RequestIdPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.RequestIdPolicy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # RequestRetryCondition
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RetryOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RetryPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # RetryStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TimeoutPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UserAgentPolicy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.policy.UserAgentPolicy
+ newFullyQualifiedTypeName: com.azure.v2.core.http.policy.UserAgentPolicy
+
+ # TODO: Migrate Methods and Fields
+
+
+
+
+
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.rest.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.rest.yml
new file mode 100644
index 000000000000..9086fcbdcfd0
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.rest.yml
@@ -0,0 +1,110 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.http.rest
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.http.rest
+displayName: Migrate from azure.core.http.rest to next generation stack
+description: This recipe migrates azure.core.http.rest package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # EncodedParameter
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Page
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.Page
+ newFullyQualifiedTypeName: com.azure.v2.core.http.rest.Page
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # PagedFlux
+ # --------------------------------------------------------------------
+
+ # TODO: Async API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PagedFluxBase
+ # --------------------------------------------------------------------
+
+ # TODO: Async API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PagedIterable
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.PagedIterable
+ newFullyQualifiedTypeName: com.azure.v2.core.http.rest.PagedIterable
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # PagedResponseBase
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.PagedResponseBase
+ newFullyQualifiedTypeName: com.azure.v2.core.http.rest.PagedResponseBase
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # RequestOptions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.RequestOptions
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.RequestOptions
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # Response
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.Response
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.Response
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ResponseBase
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.ResponseBase
+ newFullyQualifiedTypeName: com.azure.v2.core.http.rest.ResponseBase
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # RestProxy
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.rest.RestProxy
+ newFullyQualifiedTypeName: io.clientcore.core.http.RestProxy
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # SimpleResponse
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # StreamResponse
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.yml
new file mode 100644
index 000000000000..5a857e7837b0
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.http.yml
@@ -0,0 +1,196 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.http
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.http
+displayName: Migrate from azure.core.http to next generation stack
+description: This recipe migrates the azure.core.http package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # ContentType
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.ContentType
+ newFullyQualifiedTypeName: io.clientcore.core.implementation.http.ContentType
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpAuthorization
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpClient
+ # --------------------------------------------------------------------
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpClient
+ newFullyQualifiedTypeName: io.clientcore.core.http.client.HttpClient
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpClientProvider
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpClientProvider
+ newFullyQualifiedTypeName: io.clientcore.core.http.client.HttpClientProvider
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpHeader
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpHeader
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpHeader
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpHeaderName
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpHeaderName
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpHeaderName
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpHeaders
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpHeaders
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpHeaders
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpMethod
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpMethod
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpMethod
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpPipeline
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpPipeline
+ newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.HttpPipeline
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpPipelineBuilder
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpPipelineBuilder
+ newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.HttpPipelineBuilder
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpPipelineCallContext
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPipelineNextPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPipelineNextSyncPolicy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpPipelinePosition
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpPipelinePosition
+ newFullyQualifiedTypeName: io.clientcore.core.http.pipeline.HttpPipelinePosition
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpRange
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpRange
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpRange
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpRequest
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpRequest
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpRequest
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpResponse
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.HttpResponse
+ newFullyQualifiedTypeName: io.clientcore.core.implementation.http.HttpResponse
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # MatchConditions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.MatchConditions
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpMatchConditions
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ProxyOptions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.ProxyOptions
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.ProxyOptions
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # RequestConditions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.http.RequestConditions
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.HttpRequestConditions
+
+ # TODO: Migrate Methods and Fields
+
+
+
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.models.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.models.yml
new file mode 100644
index 000000000000..1d9b7111abec
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.models.yml
@@ -0,0 +1,230 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.models
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.models
+displayName: Migrate from azure.core.models to next generation stack
+description: This recipe migrates azure.core.models package to the next generation stack.
+recipeList:
+ # --------------------------------------------------------------------
+ # AzureCloud
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.AzureCloud
+ newFullyQualifiedTypeName: com.azure.v2.core.models.AzureCloud
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # CloudEvent
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.CloudEvent
+ newFullyQualifiedTypeName: com.azure.v2.core.models.CloudEvent
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # CloudEventDataFormat
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.CloudEventDataFormat
+ newFullyQualifiedTypeName: com.azure.v2.core.models.CloudEventDataFormat
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # GeoArray
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoArray
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoArray
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoBoundingBox
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoBoundingBox
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoBoundingBox
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoCollection
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoCollection
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoCollection
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoLineString
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoLineString
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoLineString
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoLineStringCollection
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoLineStringCollection
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoLineStringCollection
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoLinearRing
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoLinearRing
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoLinearRing
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoObject
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoObject
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoObject
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoObjectType
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoObjectType
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoObjectType
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoPoint
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoPoint
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoPoint
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoPointCollection
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoPointCollection
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoPointCollection
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoPolygon
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoPolygon
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoPolygon
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoPolygonCollection
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoPolygonCollection
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoPolygonCollection
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # GeoPosition
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.GeoPosition
+ newFullyQualifiedTypeName: io.clientcore.core.models.geo.GeoPosition
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # JsonPatchDocument
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.JsonPatchDocument
+ newFullyQualifiedTypeName: io.clientcore.core.serialization.json.models.JsonPatchDocument
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # JsonPatchDocumentSerializer
+ # -------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # -------------------------------------------------------------------
+ # JsonPatchOperation
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.JsonPatchOperation
+ newFullyQualifiedTypeName: io.clientcore.core.serialization.json.models.JsonPatchOperation
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # JsonPatchOperationKind
+ # -------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.models.JsonPatchOperationKind
+ newFullyQualifiedTypeName: io.clientcore.core.serialization.json.models.JsonPatchOperationKind
+
+ # TODO: Migrate Methods and Fields
+
+ # -------------------------------------------------------------------
+ # JsonPatchOperationSerializer
+ # -------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # -------------------------------------------------------------------
+ # MessageContent
+ # -------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # -------------------------------------------------------------------
+ # ResponseError
+ # -------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # -------------------------------------------------------------------
+ # ResponseInnerError
+ # -------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.util.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.util.yml
new file mode 100644
index 000000000000..a7d2bad5c34d
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/azure.core.util.yml
@@ -0,0 +1,804 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.util
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.util
+displayName: Migrate from azure.core.util to next generation stack
+description: This recipe migrates azure.core.util package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AsyncClosable
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # AuthenticateChallenge
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.AuthenticateChallenge
+ newFullyQualifiedTypeName: io.clientcore.core.utils.AuthenticationChallenge
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AuthorizationChallengeHandler
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Base64Url
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Base64Util
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.Base64Util
+ newFullyQualifiedTypeName: io.clientcore.core.utils.Base64Util
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # BinaryData
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.BinaryData
+ newFullyQualifiedTypeName: io.clientcore.core.models.binarydata.BinaryData
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # BufferedFluxByteBuffer
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ClientOptions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ClientOptions
+ newFullyQualifiedTypeName: io.clientcore.core.utils.ClientOptions
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # Configuration
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.Configuration
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.Configuration
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConfigurationBuilder
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ConfigurationBuilder
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.ConfigurationBuilder
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConfigurationProperty
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ConfigurationProperty
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.ConfigurationProperty
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConfigurationPropertyBuilder
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ConfigurationPropertyBuilder
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.ConfigurationPropertyBuilder
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConfigurationSource
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ConfigurationSource
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.ConfigurationSource
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # Context
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.Context
+ newFullyQualifiedTypeName: io.clientcore.core.utils.Context
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # Contexts
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # CoreUtils
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.CoreUtils
+ newFullyQualifiedTypeName: io.clientcore.core.utils.CoreUtils
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # DateTimeRfc1123
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.DateTimeRfc1123
+ newFullyQualifiedTypeName: io.clientcore.core.utils.DateTimeRfc1123
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # Etag
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.Etag
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.Etag
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ExpandableEnum
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ExpandableEnum
+ newFullyQualifiedTypeName: io.clientcore.core.utils.ExpandableEnum
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ExpandableStringEnum
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # FluxUtil
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Header
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # HttpClientOptions
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.HttpClientOptions
+ newFullyQualifiedTypeName: io.clientcore.core.utils.HttpClientOptions
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # IterableStream
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.IterableStream
+ newFullyQualifiedTypeName: io.clientcore.core.utils.IterableStream
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # LibraryTelemetryOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # MetricsOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # NoopConfiguration
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.NoopConfiguration
+ newFullyQualifiedTypeName: io.clientcore.core.utils.configuration.NoopConfiguration
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ProgressListener
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ProgressReporter
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ProgressReporter
+ newFullyQualifiedTypeName: io.clientcore.core.utils.ProgressReporter
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # QueryParameter
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.QueryParameter
+ newFullyQualifiedTypeName: io.clientcore.core.implementation.utils.QueryParameter
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ReferenceManager
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ServiceVersion
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.ServiceVersion
+ newFullyQualifiedTypeName: io.clientcore.core.http.models.ServiceVersion
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # SharedExecutorService
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.SharedExecutorService
+ newFullyQualifiedTypeName: io.clientcore.core.utils.SharedExecutorService
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # TelemetryAttributes
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TracingOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UrlBuilder
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UrlToken
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UrlTokenType
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UrlTokenizer
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UrlTokenizerState
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UserAgentProperties
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # UserAgentUtil
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # builder
+
+ # --------------------------------------------------------------------
+ # ClientBuilderUtil
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # io
+
+ # --------------------------------------------------------------------
+ # IOUtils
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # logging
+
+ # --------------------------------------------------------------------
+ # ClientLogger
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.logging.ClientLogger
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.logging.ClientLogger
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # LogLevel
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.logging.LogLevel
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.logging.LogLevel
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # LoggingEventBuilder
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # metrics
+
+ # --------------------------------------------------------------------
+ # DefaultMeterProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # DoubleHistogram
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.metrics.DoubleHistogram
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.metrics.DoubleHistogram
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # LongCounter
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.metrics.LongCounter
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.metrics.LongCounter
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # LongGauge
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Meter
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.metrics.Meter
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.metrics.Meter
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # MeterProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # NoopMeter
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.metrics.NoopMeter
+ newFullyQualifiedTypeName: io.clientcore.core.implementation.instrumentation.NoopMeter
+
+ # TODO: Migrate Methods and Fields
+
+ # paging
+
+ # --------------------------------------------------------------------
+ # ContinuablePage
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedByItemIterable
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedByIteratorBase
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedByIterable
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedFlux
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedFluxCore
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuablePagedIterable
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ContinuationState
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PageRetriever
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PageRetrieverSync
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # polling
+
+ # --------------------------------------------------------------------
+ # AsyncPollResponse
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ChainedPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # DefaultPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # LocationPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # LongRunningOperationStatus
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # OperationResourcePollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollOperationDetails
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollResponse
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollerFlux
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollingContext
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollingStrategyOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # PollingUtil
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SimpleSyncPoller
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # StatusCheckPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncChainedPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncDefaultPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncLocationPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncOperationResourcePollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncOverAsyncPoller
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncPoller
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SyncStatusCheckPollingStrategy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # serializer
+
+ # --------------------------------------------------------------------
+ # CollectionFormat
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # JacksonAdapter
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # JsonSerializer
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.serializer.JsonSerializer
+ newFullyQualifiedTypeName: io.clientcore.core.implementation.utils.JsonSerializer
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # JsonSerializerProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # JsonSerializerProviders
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # MemberNameConverter
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # MemberNameConverterProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # MemberNameConverterProviders
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ObjectSerializer
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.serializer.ObjectSerializer
+ newFullyQualifiedTypeName: io.clientcore.core.serialization.ObjectSerializer
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # SerializerAdapter
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SerializerEncoding
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TypeReference
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # tracing
+
+ # --------------------------------------------------------------------
+ # DefaultTracerProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # NoopTracer
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # ProcessKind
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # SpanKind
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.tracing.SpanKind
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.tracing.SpanKind
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # StartSpanOptions
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Tracer
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.util.tracing.Tracer
+ newFullyQualifiedTypeName: io.clientcore.core.instrumentation.tracing.Tracer
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # TracerProvider
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TracerProxy
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # TracingLink
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
+
+ # --------------------------------------------------------------------
+ # Utils
+ # --------------------------------------------------------------------
+
+ # TODO: API Removed. Triage replacement
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/com.azure.core.client.traits.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/com.azure.core.client.traits.yml
new file mode 100644
index 000000000000..a45ba80b58d5
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/migrationRecipes/core/com.azure.core.client.traits.yml
@@ -0,0 +1,100 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+# --------------------------------------------------------------------
+# Migration Recipes for azure.core.clients.traits
+# --------------------------------------------------------------------
+type: specs.openrewrite.org/v1beta/recipe
+name: com.azure.openrewrite.migration.azure.core.clients.traits
+displayName: Migrate from azure.core.clients.traits to next generation stack
+description: This recipe migrates azure.core.clients.traits package to the next generation stack.
+recipeList:
+
+ # --------------------------------------------------------------------
+ # AzureKeyCredentialTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.AzureKeyCredentialTrait
+ newFullyQualifiedTypeName: com.azure.v2.core.traits.AzureKeyCredentialTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureNamedKeyCredentialTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.AzureNamedKeyCredentialTrait
+ newFullyQualifiedTypeName: com.azure.v2.core.traits.AzureNamedKeyCredentialTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # AzureSasCredentialTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.AzureSasCredentialTrait
+ newFullyQualifiedTypeName: com.azure.v2.core.traits.AzureSasCredentialTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConfigurationTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.ConfigurationTrait
+ newFullyQualifiedTypeName: io.clientcore.core.traits.ConfigurationTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # ConnectionStringTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.ConnectionStringTrait
+ newFullyQualifiedTypeName: com.azure.v2.core.traits.ConnectionStringTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # EndpointTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.EndpointTrait
+ newFullyQualifiedTypeName: io.clientcore.core.traits.EndpointTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # HttpTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.HttpTrait
+ newFullyQualifiedTypeName: io.clientcore.core.traits.HttpTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # KeyCredentialTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.KeyCredentialTrait
+ newFullyQualifiedTypeName: io.clientcore.core.traits.KeyCredentialTrait
+
+ # TODO: Migrate Methods and Fields
+
+ # --------------------------------------------------------------------
+ # TokenCredentialTrait
+ # --------------------------------------------------------------------
+
+ - org.openrewrite.java.ChangeType:
+ oldFullyQualifiedTypeName: com.azure.core.client.traits.TokenCredentialTrait
+ newFullyQualifiedTypeName: com.azure.v2.core.traits.TokenCredentialTrait
+
+ # TODO: Migrate Methods and Fields
diff --git a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/rewrite.yml b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/rewrite.yml
index d14380ccb4b1..2ba1a9c7ea8f 100644
--- a/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/rewrite.yml
+++ b/sdk/tools/azure-openrewrite/src/main/resources/META-INF/rewrite/rewrite.yml
@@ -10,4 +10,3 @@ displayName: Migrate Azure SDKs to Next-Generation Library Stack
description: This recipe migrates the Azure SDKs to the next-generation library stack.
recipeList:
- com.azure.openrewrite.recipes.migrateAzureCore
- - com.azure.openrewrite.recipes.migrateAzureStorageBlob
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v1/HttpRequestExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v1/HttpRequestExample.java
new file mode 100644
index 000000000000..63540eddbfa9
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v1/HttpRequestExample.java
@@ -0,0 +1,16 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+
+public class HttpRequestExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com");
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v2/HttpRequestExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v2/HttpRequestExample.java
new file mode 100644
index 000000000000..a298eb01023d
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample1/v2/HttpRequestExample.java
@@ -0,0 +1,22 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpRequestExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com");
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v1/HttpPostMultipartExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v1/HttpPostMultipartExample.java
new file mode 100644
index 000000000000..57d3f93100fd
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v1/HttpPostMultipartExample.java
@@ -0,0 +1,19 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpPostMultipartExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Content-Type", "multipart/form-data");
+ String multipartData = "--boundary\r\nContent-Disposition: form-data; name=\"key1\"\r\n\r\nvalue1\r\n--boundary--";
+ HttpRequest request = new HttpRequest(HttpMethod.POST, "https://example.com", headers, multipartData);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v2/HttpPostMultipartExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v2/HttpPostMultipartExample.java
new file mode 100644
index 000000000000..a4b4a36e429f
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample10/v2/HttpPostMultipartExample.java
@@ -0,0 +1,31 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpPostMultipartExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.CONTENT_TYPE, "multipart/form-data");
+ String multipartData = "--boundary\r\nContent-Disposition: form-data; name=\"key1\"\r\n\r\nvalue1\r\n--boundary--";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.POST)
+ .setUri("https://example.com")
+ .setHeaders(headers)
+ .setBody(BinaryData.fromString(multipartData));
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v1/HttpBasicAuthExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v1/HttpBasicAuthExample.java
new file mode 100644
index 000000000000..8e19332daa95
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v1/HttpBasicAuthExample.java
@@ -0,0 +1,21 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+import java.util.Base64;
+
+public class HttpBasicAuthExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ String auth = "username:password";
+ String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());
+ HttpHeaders headers = new HttpHeaders().set("Authorization", "Basic " + encodedAuth);
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com", headers, null);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v2/HttpBasicAuthExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v2/HttpBasicAuthExample.java
new file mode 100644
index 000000000000..a693ac324ea0
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample11/v2/HttpBasicAuthExample.java
@@ -0,0 +1,31 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+import java.util.Base64;
+
+public class HttpBasicAuthExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ String auth = "username:password";
+ String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.AUTHORIZATION, "Basic " + encodedAuth);
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com")
+ .setHeaders(headers);
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v1/HttpBearerTokenExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v1/HttpBearerTokenExample.java
new file mode 100644
index 000000000000..3de75690d81d
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v1/HttpBearerTokenExample.java
@@ -0,0 +1,19 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpBearerTokenExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ String token = "your_bearer_token";
+ HttpHeaders headers = new HttpHeaders().set("Authorization", "Bearer " + token);
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com", headers, null);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v2/HttpBearerTokenExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v2/HttpBearerTokenExample.java
new file mode 100644
index 000000000000..13ef5ed332a4
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample12/v2/HttpBearerTokenExample.java
@@ -0,0 +1,29 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpBearerTokenExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ String token = "your_bearer_token";
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.AUTHORIZATION, "Bearer " + token);
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com")
+ .setHeaders(headers);
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v1/HttpCustomQueryParamsExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v1/HttpCustomQueryParamsExample.java
new file mode 100644
index 000000000000..c0763e1a5a61
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v1/HttpCustomQueryParamsExample.java
@@ -0,0 +1,17 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpCustomQueryParamsExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ String url = "https://example.com?customParam1=value1&customParam2=value2";
+ HttpRequest request = new HttpRequest(HttpMethod.GET, url);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v2/HttpCustomQueryParamsExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v2/HttpCustomQueryParamsExample.java
new file mode 100644
index 000000000000..f1ae8d396168
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample13/v2/HttpCustomQueryParamsExample.java
@@ -0,0 +1,24 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpCustomQueryParamsExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ String url = "https://example.com?customParam1=value1&customParam2=value2";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri(url);
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v1/HttpLargeResponseBodyExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v1/HttpLargeResponseBodyExample.java
new file mode 100644
index 000000000000..b5e26752ec95
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v1/HttpLargeResponseBodyExample.java
@@ -0,0 +1,17 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpLargeResponseBodyExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com/largefile");
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Body: " + response.getBodyAsString().block());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v2/HttpLargeResponseBodyExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v2/HttpLargeResponseBodyExample.java
new file mode 100644
index 000000000000..1ba9440859f5
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample14/v2/HttpLargeResponseBodyExample.java
@@ -0,0 +1,24 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpLargeResponseBodyExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com/largefile");
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Body: " + response.getBody().toString());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v1/HttpRedirectExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v1/HttpRedirectExample.java
new file mode 100644
index 000000000000..313321d21a93
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v1/HttpRedirectExample.java
@@ -0,0 +1,17 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpRedirectExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com/redirect");
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Final URL: " + response.getRequest().getUrl());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v2/HttpRedirectExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v2/HttpRedirectExample.java
new file mode 100644
index 000000000000..2b9e7d7cf683
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample15/v2/HttpRedirectExample.java
@@ -0,0 +1,24 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpRedirectExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com/redirect");
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Final URL: " + response.getRequest().getUri());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v1/HttpPostExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v1/HttpPostExample.java
new file mode 100644
index 000000000000..4ef4f42ac29c
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v1/HttpPostExample.java
@@ -0,0 +1,21 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpPostExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Content-Type", "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest(HttpMethod.POST, "https://example.com")
+ .setHeaders(headers)
+ .setBody(jsonBody);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v2/HttpPostExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v2/HttpPostExample.java
new file mode 100644
index 000000000000..38c4b6661dec
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample2/v2/HttpPostExample.java
@@ -0,0 +1,30 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpPostExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().add(HttpHeaderName.CONTENT_TYPE, "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.POST)
+ .setUri("https://example.com")
+ .setHeaders(headers)
+ .setBody(BinaryData.fromString(jsonBody));
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v1/HttpGetWithQueryParamsExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v1/HttpGetWithQueryParamsExample.java
new file mode 100644
index 000000000000..ebadb4b081f2
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v1/HttpGetWithQueryParamsExample.java
@@ -0,0 +1,17 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpGetWithQueryParamsExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ String url = "https://example.com?param1=value1¶m2=value2";
+ HttpRequest request = new HttpRequest(HttpMethod.GET, url);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v2/HttpGetWithQueryParamsExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v2/HttpGetWithQueryParamsExample.java
new file mode 100644
index 000000000000..0fc97c1899b1
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample3/v2/HttpGetWithQueryParamsExample.java
@@ -0,0 +1,24 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpGetWithQueryParamsExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ String url = "https://example.com?param1=value1¶m2=value2";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri(url);
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v1/HttpResponseBodyExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v1/HttpResponseBodyExample.java
new file mode 100644
index 000000000000..91c1df870457
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v1/HttpResponseBodyExample.java
@@ -0,0 +1,17 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpResponseBodyExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com");
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Body: " + response.getBodyAsString().block());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v2/HttpResponseBodyExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v2/HttpResponseBodyExample.java
new file mode 100644
index 000000000000..3ba2779dabe2
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample4/v2/HttpResponseBodyExample.java
@@ -0,0 +1,27 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpResponseBodyExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com");
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ System.out.println("Body: " + response.getBody().toString());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v1/HttpPutExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v1/HttpPutExample.java
new file mode 100644
index 000000000000..d7b34c76b36c
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v1/HttpPutExample.java
@@ -0,0 +1,19 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpPutExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Content-Type", "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest(HttpMethod.PUT, "https://example.com", headers, jsonBody);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v2/HttpPutExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v2/HttpPutExample.java
new file mode 100644
index 000000000000..3efc3dcd65ee
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample5/v2/HttpPutExample.java
@@ -0,0 +1,31 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpPutExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.CONTENT_TYPE, "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.PUT)
+ .setUri("https://example.com")
+ .setHeaders(headers)
+ .setBody(BinaryData.fromString(jsonBody));
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v1/HttpDeleteExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v1/HttpDeleteExample.java
new file mode 100644
index 000000000000..19ade1334052
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v1/HttpDeleteExample.java
@@ -0,0 +1,16 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpDeleteExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest(HttpMethod.DELETE, "https://example.com");
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v2/HttpDeleteExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v2/HttpDeleteExample.java
new file mode 100644
index 000000000000..9ef275052d12
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample6/v2/HttpDeleteExample.java
@@ -0,0 +1,23 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpDeleteExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.DELETE)
+ .setUri("https://example.com");
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v1/HttpPatchExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v1/HttpPatchExample.java
new file mode 100644
index 000000000000..50a90a696376
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v1/HttpPatchExample.java
@@ -0,0 +1,19 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpPatchExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Content-Type", "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest(HttpMethod.PATCH, "https://example.com", headers, jsonBody);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v2/HttpPatchExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v2/HttpPatchExample.java
new file mode 100644
index 000000000000..87e5f1082a57
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample7/v2/HttpPatchExample.java
@@ -0,0 +1,31 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpPatchExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.CONTENT_TYPE, "application/json");
+ String jsonBody = "{\"key\":\"value\"}";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.PATCH)
+ .setUri("https://example.com")
+ .setHeaders(headers)
+ .setBody(BinaryData.fromString(jsonBody));
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v1/HttpCustomHeadersExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v1/HttpCustomHeadersExample.java
new file mode 100644
index 000000000000..76e2f3283ff0
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v1/HttpCustomHeadersExample.java
@@ -0,0 +1,18 @@
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpCustomHeadersExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Custom-Header", "CustomValue");
+ HttpRequest request = new HttpRequest(HttpMethod.GET, "https://example.com", headers, null);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v2/HttpCustomHeadersExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v2/HttpCustomHeadersExample.java
new file mode 100644
index 000000000000..97043a795b01
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample8/v2/HttpCustomHeadersExample.java
@@ -0,0 +1,28 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import java.io.IOException;
+
+public class HttpCustomHeadersExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.fromString("CUSTOM_HEADER"), "CustomValue");
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.GET)
+ .setUri("https://example.com")
+ .setHeaders(headers);
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v1/HttpPostFormDataExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v1/HttpPostFormDataExample.java
new file mode 100644
index 000000000000..4e12efc0f8ae
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v1/HttpPostFormDataExample.java
@@ -0,0 +1,21 @@
+package com.azure.core.http.netty.samples;
+
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpMethod;
+import com.azure.core.http.HttpRequest;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
+
+public class HttpPostFormDataExample {
+ public static void main(String... args) {
+ HttpClient client = new NettyAsyncHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders().set("Content-Type", "application/x-www-form-urlencoded");
+ String formData = "key1=value1&key2=value2";
+ HttpRequest request = new HttpRequest(HttpMethod.POST, "https://example.com", headers, formData);
+
+ HttpResponse response = client.send(request).block();
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ }
+}
diff --git a/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v2/HttpPostFormDataExample.java b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v2/HttpPostFormDataExample.java
new file mode 100644
index 000000000000..68ea69c1936d
--- /dev/null
+++ b/sdk/tools/azure-openrewrite/src/test/resources/migrationExamples/azure-core/sample9/v2/HttpPostFormDataExample.java
@@ -0,0 +1,31 @@
+import io.clientcore.core.http.client.HttpClient;
+import io.clientcore.core.http.client.JdkHttpClientBuilder;
+import io.clientcore.core.http.models.HttpHeaderName;
+import io.clientcore.core.http.models.HttpHeaders;
+import io.clientcore.core.http.models.HttpMethod;
+import io.clientcore.core.http.models.HttpRequest;
+import io.clientcore.core.http.models.Response;
+import io.clientcore.core.models.binarydata.BinaryData;
+import java.io.IOException;
+
+public class HttpPostFormDataExample {
+ public static void main(String... args) {
+ HttpClient client = new JdkHttpClientBuilder().build();
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(HttpHeaderName.CONTENT_TYPE, "application/x-www-form-urlencoded");
+ String formData = "key1=value1&key2=value2";
+ HttpRequest request = new HttpRequest()
+ .setMethod(HttpMethod.POST)
+ .setUri("https://example.com")
+ .setHeaders(headers)
+ .setBody(BinaryData.fromString(formData));
+
+ try {
+ Response response = client.send(request);
+ System.out.println("Status code: " + response.getStatusCode());
+ System.out.println("Headers: " + response.getHeaders());
+ } catch (IOException e) {
+ System.err.println("Error occurred: " + e.getMessage());
+ }
+ }
+}