> ## Documentation Index
> Fetch the complete documentation index at: https://docs.celezant.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate Azure APIM Developer Portal

> Azure DevOps Agent published in Azure Marketplace for Migration of Azure APIM Developer Portal

<img className="block dark:hidden" src="https://mintcdn.com/celezantcloudsolutions/tGpdc3nGuwXyFLL4/images/hero-light.svg?fit=max&auto=format&n=tGpdc3nGuwXyFLL4&q=85&s=13dd16b812e5369c078482749bfeb23a" alt="Hero Light" width="700" height="320" data-path="images/hero-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/celezantcloudsolutions/tGpdc3nGuwXyFLL4/images/hero-dark.svg?fit=max&auto=format&n=tGpdc3nGuwXyFLL4&q=85&s=9d16b4b4cf05cdc048c7da22a0a5b895" alt="Hero Dark" width="700" height="320" data-path="images/hero-dark.svg" />

## Overview:

This Extension helps in Cloning (Migration) of Developer Portal from one from Azure API Management to Another Azure API Management.
You can Migrate Developer Portal Contents like Images, Styles, Text-Contents as well as Embedded I-Frames and automatically publish the portal for Managed Portals.

## Prerequisites

1. An Active Service Principle with access to Source and Destination Azure API Management Services.
2. Existing Source and Destination Azure API Management Services either in same or different subscriptions.

### Agent-Requisites

<Tabs>
  <Tab title="Microsoft Hosted Agent">
    No Pre-Requisites Required
  </Tab>

  <Tab title="Self-Hosted Agent">
    Install **Node v16.0.0** and further
  </Tab>

  <Tab title="Azure Virtual Machine Scale Set Agent">
    Install **Node v16.0.0** and further
  </Tab>
</Tabs>

### Agent-supported

<Tabs>
  <Tab title="Microsoft Hosted Agent">
    * Windows Agents
    * Linux Agents
    * MacOS Agents
  </Tab>

  <Tab title="Self-Hosted Agent">
    * Windows Agents \[Windows 10 & 11, Server 2019, Server 2022]
    * Ubuntu 20.04 and further
    * RedHat Linux
    * CentOS
    * Debian OS
  </Tab>
</Tabs>

## Configure the task:

<Steps>
  <Step title="Add Task">
    Click on **+ Add task** to the Build / Release pipeline.
  </Step>

  <Step title="Search for the Task">
    Search for **Migrate Azure APIM Developer Portal - Azure API Management**.
  </Step>

  <Step title="Optional - Choose Version">
    Default option selected is Version 2.x that supports Dynamic Resource Selection. For Static Inputs Select Version 1.x
  </Step>

  <Step title="Add Input Parameters">
    Add the details as per the table below
  </Step>
</Steps>

## Task Inputs

<Tabs>
  <Tab title="v2">
    <AccordionGroup>
      <Accordion title="Source & Destination APIM are in Same Subscription">
        | Options                                  | Description                                  |
        | ---------------------------------------- | -------------------------------------------- |
        | Source Azure Provider Service Connection | Should have Access to both the APIMs         |
        | Source Azure API Management Service Name | Name for Source API Management Services      |
        | Destination API Management Service Name  | Name for Destination API Management Services |
      </Accordion>

      <Accordion title="Source & Destination APIM are in Different Subscription">
        | Options                                               | Description                                             |
        | ----------------------------------------------------- | ------------------------------------------------------- |
        | Source Azure Provider Service Connection              | Should have Access to both the APIMs                    |
        | Subscription ID - Source API Management Services      | Subscription ID for Source API Management Services      |
        | Source Azure API Management Service Name              | Name for Source API Management Services                 |
        | Subscription ID - Destination API Management Services | Subscription ID for Destination API Management Services |
        | Destination API Management Service Name               | Name for Destination API Management Services            |
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="v1">
    | Options                          | Description                                                |
    | -------------------------------- | ---------------------------------------------------------- |
    | Azure Service Connection         | Should have Access to both the APIMs                       |
    | Source APIM Subscription ID      | Subscription ID for Source API Management Services         |
    | Source APIM Resource Group       | Resource Group Name for Source API Management Services     |
    | Source APIM Name                 | Name for Source API Management Services                    |
    | Destination APIM Subscription ID | Subscription ID for Destination API Management Services    |
    | Destination APIM Resource Group  | Resource Group Name for Destination API Management Service |
    | Destination APIM Name            | Name for Destination API Management Services               |
  </Tab>
</Tabs>

## Azure API Management Network Restrictions

Understand how your Virtual Network Type affects your Migration of your Developer Portal.

<Tabs>
  <Tab title="Virtual Network - None">
    No Restrictions over Migration
  </Tab>

  <Tab title="Virtual Network - Internal">
    No Restrictions over Migration
  </Tab>

  <Tab title="Virtual Network - External">
    No Restrictions over Migration
  </Tab>
</Tabs>

## Releases:

* v1.0.0 (March 2023) • Initial Release.
* v2.0.0 (October 2023) • Release 2.0
  * Updated to **Dropdowns** from Input Textboxes.
  * Removed Text Inputs - Subscription ID, Resource Group and Replaced APIM Service Name with Dynamic Dropdown.
  * Now supports Microsoft Agents - Windows, Mac, Linux as well as Self-Hosted Agents now.
  * Execution time is now less than 180 seconds and faster on Linux.

## Links & References

* [Microsoft - Overview of the developer portal](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal)
* [API Management developer portal - frequently asked questions](https://learn.microsoft.com/en-us/azure/api-management/developer-portal-faq)
* [Automate developer portal deployments](https://learn.microsoft.com/en-us/azure/api-management/automate-portal-deployments)
* [Migrate to the new developer portal](https://learn.microsoft.com/en-us/azure/api-management/developer-portal-deprecated-migration)
