All Products
Search
Document Center

Server Load Balancer:Manage MCP Services

Last Updated:Aug 13, 2026

Application Load Balancer (ALB) Edisi Enhanced mendukung fitur proxy Model Context Protocol (MCP), yang memungkinkan Anda mengintegrasikan server MCP, API REST, atau fungsi Function Compute yang sudah ada secara cepat. Fitur ini mengonversi layanan tersebut menjadi antarmuka alat terpadu dalam format MCP untuk dipanggil oleh agen AI, sehingga menyederhanakan integrasi antara agen dan sistem perusahaan.

Penting

Pengelolaan layanan MCP pada ALB Edisi Extensible merupakan fitur daftar putih. Untuk menggunakannya, hubungi manajer bisnis Anda.

Arsitektur solusi

Instans ALB Edisi Enhanced menerima permintaan MCP dan mengarahkannya ke grup server MCP berdasarkan aturan pengalihan. Grup server MCP bertindak sebagai proxy terpadu untuk server backend MCP, API REST, dan layanan Function Compute, serta mengonversi respons mereka ke dalam format MCP sebelum mengembalikannya. Komponen proxy MCP juga dilengkapi fitur pencarian semantik bawaan yang memungkinkan agen mengambil alat yang sesuai sesuai kebutuhan tanpa harus memuat seluruh daftar alat, sehingga mengurangi konsumsi token.

  • Instans ALB Edisi Enhanced: Menyediakan penyeimbangan beban dan pengalihan lalu lintas.

  • Pendengar HTTPS: Menerima permintaan klien.

  • Aturan pengalihan: Mencocokkan permintaan MCP berdasarkan path permintaan dan mengarahkannya ke grup server MCP.

  • Ekstensi layanan: Menggunakan komponen proxy MCP untuk melakukan konversi protokol MCP dan pencarian semantik.

  • Grup server MCP: Bertindak sebagai proxy terpadu untuk tiga jenis layanan backend: server MCP, API REST, dan Function Compute.

Penerapan

Prosedur

1. Buat instans ALB Edisi Enhanced

  1. Masuk ke Konsol ALB. Pilih wilayah China (Ulanqab) dan klik Create ALB.

  2. Pada halaman pembelian, lengkapi pengaturan berikut dan klik Create Now.

    • Region: China (Ulanqab) dipilih secara default.

    • Network Type: Pilih Public Network.

    • VPC dan Zone: Pilih VPC target. Pilih Ulanqab Zone A dan Ulanqab Zone B, lalu pilih vSwitch yang sesuai dan centang Automatically Assign Public IP.

    • IP Version: Pilih IPv4.

    • Edition (Instance Fee): Pilih Enhanced Edition.

  3. Pada halaman Confirm Order, konfirmasi detail konfigurasi instans, lalu klik Activate Now.

2. Buat grup server

Buat grup server kosong

Buat grup server kosong yang akan menjadi target pengalihan untuk aturan default saat Anda membuat pendengar nanti. Dalam topik ini, semua permintaan MCP dicocokkan secara tepat oleh aturan pengalihan dan tidak akan diproses oleh aturan default, sehingga Anda tidak perlu menambahkan server backend ke grup server ini.

  1. Di Konsol Grup Server, klik Create Server Group.

    • Server Group Type: Pilih Server.

    • Server Group Name: Masukkan nama yang mudah diidentifikasi. Topik ini menggunakan sgp-default.

    • VPC: Pilih VPC tempat instans ALB berada.

  2. Di bagian bawah kotak dialog, centang kotak For Extensible instances dan klik Create.

Buat grup server MCP

  1. Di Konsol Grup Server, klik Create Server Group. Atur Server Group Type menjadi MCP Service dan beri nama yang mudah diidentifikasi. Topik ini menggunakan sgp-mcp.

  2. Klik Create. Di kotak dialog The server group is created, klik Add Backend Server.

Setelah membuat grup server, tambahkan layanan MCP dengan mengikuti petunjuk pada tab yang sesuai dengan jenis layanan backend Anda.

Server MCP

Contoh ini mengintegrasikan layanan MCP konversi suhu yang dibuat sendiri.

Klik Add MCP Service, lengkapi pengaturan berikut, lalu klik OK.

  • Service Name: Masukkan nama yang mudah dipahami oleh model bahasa besar (LLM). Topik ini menggunakan temperature-converter, yang merepresentasikan layanan konversi suhu.

  • Service Type: Pilih MCP Server.

  • MCP Service Endpoint: Masukkan endpoint domain layanan MCP, seperti http://mcp-backend.example.com:8000/mcp. MCP Service Endpoint tidak mendukung alamat IP langsung. Anda harus menggunakan nama domain. Saat instans ALB Edisi Enhanced mengakses endpoint layanan MCP, hanya resolusi DNS otoritatif publik yang digunakan. Untuk mengakses layanan dalam VPC, Anda harus mengarahkan nama domain ke alamat IP pribadi yang sesuai pada DNS publik.

  • Access Method: Pilih Streamable HTTP.

Berikut adalah contoh kode untuk server MCP yang menyediakan konversi suhu. Anda dapat menerapkannya pada instans ECS dalam VPC yang sama dengan instans ALB. Instans ECS ini harus memiliki konektivitas jaringan dengan instans ALB. Aturan grup keamanan harus mengizinkan ALB mengakses port layanan MCP, yaitu 8000 dalam topik ini. Topik ini menggunakan sistem operasi Alibaba Cloud Linux 3.2104 sebagai contoh.

  1. Masuk ke instans ECS, instal Python 3.11 dan pip, lalu instal dependensi MCP:

    # Install Python 3.11 (requires 3.10 or later)
    sudo yum install -y python3.11 python3.11-pip
    # Install MCP dependencies
    sudo pip3.11 install "mcp>=1.0.0"
  2. Buat direktori proyek dan kode sisi server:

    mkdir mcp-server && cd mcp-server

    Buat file kode sisi server server.py:

    from mcp.server.fastmcp import FastMCP
    
    server = FastMCP("temperature-converter", host="0.0.0.0")
    
    @server.tool()
    def celsius_to_fahrenheit(celsius: float) -> str:
        """
        Convert temperature from Celsius to Fahrenheit.
    
        Args:
            celsius: Temperature in degrees Celsius
    
        Returns:
            Temperature in Fahrenheit (e.g., "77.0")
        """
        fahrenheit = celsius * 9 / 5 + 32
        return str(fahrenheit)
    
    @server.tool()
    def fahrenheit_to_celsius(fahrenheit: float) -> str:
        """
        Convert temperature from Fahrenheit to Celsius.
    
        Args:
            fahrenheit: Temperature in degrees Fahrenheit
    
        Returns:
            Temperature in Celsius (e.g., "25.0")
        """
        celsius = (fahrenheit - 32) * 5 / 9
        return str(celsius)
    
    if __name__ == "__main__":
        server.run(transport="streamable-http")
  3. Jalankan server MCP:

    nohup python3.11 server.py > server.log 2>&1 &

    Lihat log untuk memastikan startup berhasil:

    cat server.log

    Output seperti berikut menunjukkan startup berhasil:

    INFO:     Started server process [12345]
    INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
  4. Verifikasi bahwa layanan berjalan dengan benar. Jalankan perintah berikut:

    curl -X POST http://127.0.0.1:8000/mcp \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

    Respons JSON yang berisi field serverInfo menunjukkan bahwa server MCP berjalan dengan benar.

API REST

Contoh ini mengintegrasikan Alibaba Cloud OpenAPI untuk mengkueri dan mengelola resource ALB. Alibaba Cloud OpenAPI memerlukan autentikasi AccessKey. Anda harus membuat kredensial terlebih dahulu.

  1. Di panel navigasi kiri Konsol ALB, pilih Credential Management dan klik Create Credential. Atur Credential Type menjadi AccessKey. Masukkan AccessKey ID dan AccessKey Secret dari akun Alibaba Cloud yang ingin Anda kelola, lalu klik Create. AccessKey ini harus memiliki izin untuk memanggil API yang sesuai.

    Tipe kredensial AccessKey merupakan fitur daftar putih. Untuk menggunakannya, hubungi manajer akun Anda untuk meminta akses.
  2. Kembali ke grup server MCP, klik Add MCP Service, lengkapi pengaturan berikut, lalu klik OK.

    • Service Name: Masukkan nama yang mudah dipahami oleh LLM. Topik ini menggunakan alb-operator, yang merepresentasikan layanan pengelolaan ALB.

    • Service Type: Pilih REST API.

    • OpenAPI Configuration: Kunjungi Portal Alibaba Cloud OpenAPI. Di panel navigasi kiri, klik Get Metadata untuk mengunduh file konfigurasi OpenAPI. Edit file tersebut untuk menyimpan hanya API yang diperlukan, lalu tempel atau impor. Topik ini menggunakan contoh yang hanya menyimpan API terkait kueri. Wilayah yang ditentukan oleh endpoint dalam contoh adalah China (Ulanqab). Anda dapat memodifikasinya sesuai kebutuhan.

      Contoh file konfigurasi OpenAPI (hanya menyimpan API terkait kueri)

      {
          "version": "1.0",
          "info": {
              "style": "RPC",
              "product": "Alb",
              "version": "2020-06-16"
          },
          "components": {
              "schemas": {}
          },
          "apis": {
              "DescribeRegions": {
                  "summary": "Mengkueri wilayah yang tersedia untuk ALB.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "abilityTreeCode": "203",
                      "abilityTreeNodes": [
                          "FEATUREslbRXTOWD"
                      ],
                      "tenantRelevance": "publicInformation"
                  },
                  "parameters": [
                      {
                          "name": "AcceptLanguage",
                          "in": "query",
                          "schema": {
                              "title": "Bahasa",
                              "description": "Bahasa yang didukung. Nilai yang valid:\n\n- **zh-CN** (Default): Mandarin\n\n- **en-US**: Inggris\n\n- **ja**: Jepang",
                              "type": "string",
                              "required": false,
                              "example": "zh-CN",
                              "default": "zh-CN"
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Struktur data yang dikembalikan.",
                              "type": "object",
                              "properties": {
                                  "Regions": {
                                      "title": "Daftar wilayah",
                                      "description": "Daftar wilayah.",
                                      "type": "array",
                                      "items": {
                                          "description": "Struktur informasi wilayah.",
                                          "type": "object",
                                          "properties": {
                                              "LocalName": {
                                                  "title": "Nama",
                                                  "description": "Nama wilayah.",
                                                  "type": "string",
                                                  "example": "China (Hangzhou)"
                                              },
                                              "RegionEndpoint": {
                                                  "title": "Titik akhir",
                                                  "description": "Titik akhir layanan di wilayah tersebut.",
                                                  "type": "string",
                                                  "example": "alb.cn-hangzhou.aliyuncs.com"
                                              },
                                              "RegionId": {
                                                  "title": "ID Wilayah",
                                                  "description": "ID wilayah.",
                                                  "type": "string",
                                                  "example": "cn-hangzhou"
                                              }
                                          }
                                      }
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3"
                                  }
                              }
                          }
                      }
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"Regions\\\": [\\n    {\\n      \\\"LocalName\\\": \\\"China (Hangzhou)\\\",\\n      \\\"RegionEndpoint\\\": \\\"alb.cn-hangzhou.aliyuncs.com\\\",\\n      \\\"RegionId\\\": \\\"cn-hangzhou\\\"\\n    }\\n  ],\\n  \\\"RequestId\\\": \\\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\\"\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<DescribeRegionsResponse>\\n    <Regions>\\n        <LocalName>China (Hangzhou)</LocalName>\\n        <RegionEndpoint>alb.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n        <RegionId>cn-hangzhou</RegionId>\\n    </Regions>\\n    <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n</DescribeRegionsResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri wilayah"
              },
              "DescribeZones": {
                  "summary": "Mengkueri daftar zona di suatu wilayah untuk ALB.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "abilityTreeCode": "204",
                      "abilityTreeNodes": [
                          "FEATUREslbRXTOWD"
                      ],
                      "tenantRelevance": "publicInformation"
                  },
                  "parameters": [
                      {
                          "name": "AcceptLanguage",
                          "in": "query",
                          "schema": {
                              "description": "Bahasa yang didukung. Nilai yang valid:\n\n- **zh-CN** (Default): Mandarin\n\n- **en-US**: Inggris\n\n- **ja**: Jepang",
                              "type": "string",
                              "required": false,
                              "example": "zh-CN",
                              "default": "zh-CN"
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Struktur data yang dikembalikan.",
                              "type": "object",
                              "properties": {
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3"
                                  },
                                  "Zones": {
                                      "title": "Daftar zona",
                                      "description": "Daftar zona.",
                                      "type": "array",
                                      "items": {
                                          "description": "Struktur informasi zona.",
                                          "type": "object",
                                          "properties": {
                                              "LocalName": {
                                                  "title": "Nama zona",
                                                  "description": "Nama zona.",
                                                  "type": "string",
                                                  "example": "Hangzhou Zone G"
                                              },
                                              "ZoneId": {
                                                  "title": "ID Zona",
                                                  "description": "ID zona.",
                                                  "type": "string",
                                                  "example": "cn-hangzhou-g"
                                              }
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"RequestId\\\": \\\"593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3\\\",\\n  \\\"Zones\\\": [\\n    {\\n      \\\"LocalName\\\": \\\"Hangzhou Zone G\\\",\\n      \\\"ZoneId\\\": \\\"cn-hangzhou-g\\\"\\n    }\\n  ]\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<DescribeZonesResponse>\\n    <RequestId>593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3</RequestId>\\n    <Zones>\\n        <LocalName>China (Hangzhou) Zone G</LocalName>\\n        <ZoneId>cn-hangzhou-g</ZoneId>\\n    </Zones>\\n</DescribeZonesResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri zona"
              },
              "GetLoadBalancerAttribute": {
                  "summary": "Mengkueri detail instans SLB tertentu.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "abilityTreeCode": "200",
                      "abilityTreeNodes": [
                          "FEATUREslbM7ALO6",
                          "FEATUREslbK3ZR0L",
                          "FEATUREslbN5IE4S"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "LoadBalancerId",
                          "in": "query",
                          "schema": {
                              "title": "Identitas instans",
                              "description": "ID instans Application Load Balancer.",
                              "type": "string",
                              "required": true,
                              "example": "alb-o9ulmq5hgn68jk****"
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Konfigurasi detail instans Application Load Balancer.",
                              "type": "object",
                              "properties": {
                                  "AccessLogConfig": {
                                      "title": "Properti log akses",
                                      "description": "Konfigurasi log akses.",
                                      "type": "object",
                                      "properties": {
                                          "LogProject": {
                                              "title": "Proyek log tempat log akses dikirimkan",
                                              "description": "Proyek log.",
                                              "type": "string",
                                              "example": "sls-setter"
                                          },
                                          "LogStore": {
                                              "title": "Waktu pengaktifan perlindungan penghapusan",
                                              "description": "Log store.\n\n",
                                              "type": "string",
                                              "example": "test"
                                          }
                                      }
                                  },
                                  "AddressAllocatedMode": {
                                      "title": "Metode alokasi alamat",
                                      "description": "Mode alamat. Nilai yang valid:\n\n- **Fixed**: Alamat IP tetap digunakan.\n\n- **Dynamic**: Alamat IP dialokasikan secara dinamis di setiap zona.",
                                      "type": "string",
                                      "example": "Dynamic"
                                  },
                                  "AddressType": {
                                      "title": "Jenis alamat",
                                      "description": "Jenis alamat jaringan dari instans Application Load Balancer. Nilai yang valid:\n\n- **Internet**: Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga instans dapat diakses melalui Internet.\n\n- **Intranet**: Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga instans hanya dapat diakses dari jaringan internal VPC tempatnya berada.\n\n",
                                      "type": "string",
                                      "example": "Intranet"
                                  },
                                  "BandwidthPackageId": {
                                      "title": "ID Paket bandwidth",
                                      "description": "ID paket bandwidth bersama yang terkait dengan instans yang menghadap ke publik.",
                                      "type": "string",
                                      "example": "cbwp-bp1vevu8h3ieh****"
                                  },
                                  "CreateTime": {
                                      "title": "Waktu pembuatan sumber daya",
                                      "description": "Waktu sumber daya dibuat, dalam UTC. Formatnya adalah `yyyy-MM-ddTHH:mm:ssZ`.",
                                      "type": "string",
                                      "example": "2022-07-02T02:49:05Z"
                                  },
                                  "DNSName": {
                                      "title": "Nama DNS",
                                      "description": "Nama domain DNS.",
                                      "type": "string",
                                      "example": "alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com"
                                  },
                                  "DeletionProtectionConfig": {
                                      "title": "Informasi perlindungan penghapusan load balancer",
                                      "description": "Konfigurasi perlindungan penghapusan.",
                                      "type": "object",
                                      "properties": {
                                          "Enabled": {
                                              "title": "Status perlindungan penghapusan",
                                              "description": "Status perlindungan penghapusan. Nilai yang valid:\n\n- **true**: Diaktifkan.\n\n- **false**: Dinonaktifkan.",
                                              "type": "boolean",
                                              "example": "true"
                                          },
                                          "EnabledTime": {
                                              "title": "Waktu pengaktifan perlindungan penghapusan",
                                              "description": "Waktu ketika perlindungan penghapusan diaktifkan, dalam UTC. Formatnya adalah `yyyy-MM-ddTHH:mm:ssZ`.",
                                              "type": "string",
                                              "example": "2022-08-02T02:49:05Z"
                                          }
                                      }
                                  },
                                  "LoadBalancerBillingConfig": {
                                      "title": "Properti terkait penagihan",
                                      "description": "Konfigurasi penagihan instans Application Load Balancer.",
                                      "type": "object",
                                      "properties": {
                                          "PayType": {
                                              "title": "Metode penagihan instans",
                                              "description": "Metode penagihan.\n\n**PostPay** menunjukkan bayar sesuai penggunaan.",
                                              "type": "string",
                                              "example": "PostPay",
                                              "default": "PostPay"
                                          }
                                      }
                                  },
                                  "LoadBalancerBussinessStatus": {
                                      "title": "Status bisnis instans",
                                      "description": "Status bisnis Application Load Balancer. Nilai yang valid:\n\n- **Abnormal**: Abnormal.\n\n- **Normal**: Normal.",
                                      "type": "string",
                                      "example": "Normal"
                                  },
                                  "LoadBalancerEdition": {
                                      "title": "Edisi load balancer",
                                      "description": "Edisi Application Load Balancer. Edisi yang berbeda memiliki batasan fitur dan kebijakan penagihan yang berbeda. Nilai yang valid:\n\n- **Basic**: Edisi Dasar.\n\n- **Standard**: Edisi Standar.\n\n- **StandardWithWaf**: Edisi yang diaktifkan WAF.",
                                      "type": "string",
                                      "example": "Standard"
                                  },
                                  "LoadBalancerId": {
                                      "title": "Identitas load balancer",
                                      "description": "ID instans Application Load Balancer.",
                                      "type": "string",
                                      "example": "alb-o9ulmq5hgn68jk****"
                                  },
                                  "LoadBalancerName": {
                                      "title": "Nama instans",
                                      "description": "Nama instans.\n\nPanjangnya 2 hingga 128 karakter bahasa Inggris atau Mandarin. Harus dimulai dengan huruf atau karakter Mandarin dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).",
                                      "type": "string",
                                      "example": "alb1"
                                  },
                                  "LoadBalancerOperationLocks": {
                                      "title": "Alasan kunci",
                                      "description": "Konfigurasi kunci operasi dari Application Load Balancer.",
                                      "type": "array",
                                      "items": {
                                          "description": "Konfigurasi kunci operasi dari Application Load Balancer.",
                                          "type": "object",
                                          "properties": {
                                              "LockReason": {
                                                  "title": "Alasan kunci",
                                                  "description": "Alasan kunci. Ini valid ketika **LoadBalancerBussinessStatus** adalah **Abnormal**.",
                                                  "type": "string",
                                                  "example": "Overdue Payment"
                                              },
                                              "LockType": {
                                                  "title": "Jenis kunci",
                                                  "description": "Jenis kunci. Nilai yang valid:\n\n- **SecurityLocked**: Kunci keamanan.\n\n- **RelatedResourceLocked**: Kunci sumber daya terkait.\n\n- **FinancialLocked**: Kunci finansial.\n\n- **ResidualLocked**: Kunci sisa.",
                                                  "type": "string",
                                                  "example": "FinancialLocked"
                                              }
                                          }
                                      }
                                  },
                                  "LoadBalancerStatus": {
                                      "title": "Status instans",
                                      "description": "Status instans Application Load Balancer. Nilai yang valid:\n\n- **Inactive**: Dihentikan. Pendengar instans tidak akan lagi meneruskan lalu lintas.\n\n- **Active**: Berjalan.\n\n- **Provisioning**: Membuat.\n\n- **Configuring**: Mengubah.\n\n- **CreateFailed**: Pembuatan gagal. Tidak ada biaya yang dikenakan saat ini, dan instans hanya dapat dihapus.",
                                      "type": "string",
                                      "example": "Active"
                                  },
                                  "ModificationProtectionConfig": {
                                      "title": "Informasi perlindungan modifikasi load balancer",
                                      "description": "Konfigurasi perlindungan modifikasi.",
                                      "type": "object",
                                      "properties": {
                                          "Reason": {
                                              "title": "Alasan untuk mengatur status perlindungan modifikasi",
                                              "description": "Alasan untuk mengaktifkan perlindungan modifikasi.\n\nPanjangnya 2 hingga 128 karakter bahasa Inggris atau Mandarin. Harus dimulai dengan huruf besar atau kecil atau karakter Mandarin dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).\n\nIni dikembalikan hanya ketika **Status** adalah **ConsoleProtection**.",
                                              "type": "string",
                                              "example": "Managed Instance"
                                          },
                                          "Status": {
                                              "title": "Status perlindungan modifikasi load balancer",
                                              "description": "Status perlindungan modifikasi instans Application Load Balancer. Nilai yang valid:\n\n- **NonProtection**: Perlindungan modifikasi tidak diaktifkan. Jika **Reason** dikonfigurasi, **Reason** akan dihapus secara paksa.\n\n- **ConsoleProtection**: Perlindungan modifikasi konsol diaktifkan. Jika **Reason** dikonfigurasi, **Reason** dapat berlaku.\n\n> Ketika nilainya adalah **ConsoleProtection**, yang berarti perlindungan modifikasi diaktifkan, pengguna tidak dapat mengubah konfigurasi instans melalui konsol SLB, tetapi dapat mengubahnya dengan memanggil API.",
                                              "type": "string",
                                              "example": "ConsoleProtection"
                                          }
                                      }
                                  },
                                  "RegionId": {
                                      "title": "Wilayah",
                                      "description": "ID wilayah instans Application Load Balancer.",
                                      "type": "string",
                                      "example": "cn-hangzhou"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "365F4154-92F6-4AE4-92F8-7FF34B540710"
                                  },
                                  "ResourceGroupId": {
                                      "title": "ID kelompok sumber daya perusahaan",
                                      "description": "ID kelompok sumber daya perusahaan.",
                                      "type": "string",
                                      "example": "rg-atstuj3rtop****"
                                  },
                                  "Tags": {
                                      "title": "Daftar tag",
                                      "description": "Tag.",
                                      "type": "array",
                                      "items": {
                                          "description": "Tag.",
                                          "type": "object",
                                          "properties": {
                                              "Key": {
                                                  "title": "Kunci tag instans",
                                                  "description": "Kunci tag instans.\n\nPanjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                                  "type": "string",
                                                  "example": "FinanceDept"
                                              },
                                              "Value": {
                                                  "title": "Nilai tag instans",
                                                  "description": "Nilai tag instans.\n\nPanjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                                  "type": "string",
                                                  "example": "FinanceJoshua"
                                              }
                                          }
                                      }
                                  },
                                  "VpcId": {
                                      "title": "ID jaringan VPC",
                                      "description": "ID VPC dari instans.",
                                      "type": "string",
                                      "example": "vpc-bp1b49rqrybk45nio****"
                                  },
                                  "ZoneMappings": {
                                      "title": "Sumber daya zona dari load balancer",
                                      "description": "Daftar pemetaan zona dan vSwitch. Maksimal 10 zona dapat dikembalikan. Jika wilayah saat ini mendukung 2 zona atau lebih, setidaknya 2 zona akan dikembalikan.",
                                      "type": "array",
                                      "items": {
                                          "description": "Daftar pemetaan zona dan vSwitch. Maksimal 10 zona dapat dikembalikan. Jika wilayah saat ini mendukung 2 zona atau lebih, setidaknya 2 zona akan dikembalikan.",
                                          "type": "object",
                                          "properties": {
                                              "LoadBalancerAddresses": {
                                                  "title": "Dalam mode VIP tetap, daftar alamat untuk load balancer di zona ini",
                                                  "description": "Alamat instans.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Alamat instans.",
                                                      "type": "object",
                                                      "properties": {
                                                          "Address": {
                                                              "title": "Alamat IP",
                                                              "description": "Mengidentifikasi alamat IPv4.\n\nIni efektif ketika **AddressIPVersion** adalah **IPv4** atau **DualStack**. Alamat IP publik atau pribadi ditentukan oleh **AddressType**.",
                                                              "type": "string",
                                                              "example": "10.1.0.61"
                                                          },
                                                          "Ipv6Address": {
                                                              "title": "Alamat IPv6",
                                                              "description": "Mengidentifikasi alamat IPv6.\n\nIni hanya valid ketika **AddressIPVersion** adalah **DualStack**. Alamat IP publik atau pribadi ditentukan oleh **Ipv6AddressType**.",
                                                              "type": "string",
                                                              "example": "2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9"
                                                          },
                                                          "IntranetAddress": {
                                                              "title": "Titik akhir pribadi",
                                                              "description": "Alamat IP pribadi IPv4.",
                                                              "type": "string",
                                                              "example": "10.1.0.61"
                                                          },
                                                          "AllocationId": {
                                                              "description": "ID dari Elastic IP Address.",
                                                              "type": "string",
                                                              "example": "eip-uf6wm****1zj9"
                                                          },
                                                          "EipType": {
                                                              "description": "Jenis EIP publik. Nilai yang valid:\n\n- **Common**: Elastic IP Address (EIP).\n- **Anycast**: Anycast EIP.\n\n> Untuk wilayah di mana ALB mendukung pengikatan Anycast EIP, lihat [Batasan](~~460727~~).",
                                                              "type": "string",
                                                              "example": "Common"
                                                          },
                                                          "IntranetAddressHcStatus": {
                                                              "description": "Status pemeriksaan kesehatan dari alamat IPv4 pribadi instans Application Load Balancer.\n\nIni dikembalikan hanya ketika status zona adalah Aktif. Nilai yang valid:\n\n- **Healthy**: Sehat.\n- **Unhealthy**: Abnormal.",
                                                              "type": "string",
                                                              "example": "Healthy"
                                                          },
                                                          "Ipv6AddressHcStatus": {
                                                              "description": "Status pemeriksaan kesehatan dari alamat IPv6 instans Application Load Balancer.\n\nIni dikembalikan hanya ketika status zona adalah Aktif. Nilai yang valid:\n\n- **Healthy**: Sehat.\n- **Unhealthy**: Abnormal.",
                                                              "type": "string",
                                                              "example": "Healthy"
                                                          },
                                                          "Ipv4LocalAddresses": {
                                                              "description": "Daftar alamat lokal IPv4. Ini adalah daftar alamat yang digunakan untuk interaksi antara ALB dan layanan backend.",
                                                              "type": "array",
                                                              "items": {
                                                                  "description": "Alamat lokal IPv4.",
                                                                  "type": "string",
                                                                  "example": "10.1.0.62"
                                                              }
                                                          },
                                                          "Ipv6LocalAddresses": {
                                                              "description": "Daftar alamat lokal IPv6. Ini adalah daftar alamat yang digunakan untuk interaksi antara ALB dan layanan backend.",
                                                              "type": "array",
                                                              "items": {
                                                                  "description": " Alamat lokal IPv6.",
                                                                  "type": "string",
                                                                  "example": "2408:xxxx:249:dd01:6f4:750f:xxxx:bcda"
                                                              }
                                                          }
                                                      }
                                                  }
                                              },
                                              "VSwitchId": {
                                                  "title": "Identitas vSwitch",
                                                  "description": "VSwitch yang sesuai dengan zona. Setiap zona hanya dapat menggunakan satu vSwitch dan satu subnet.",
                                                  "type": "string",
                                                  "example": "vsw-bp12mw1f8k3jgy****"
                                              },
                                              "ZoneId": {
                                                  "title": "Identitas zona",
                                                  "description": "ID zona dari instans Application Load Balancer.\n\nAnda bisa mendapatkan informasi tentang zona yang sesuai dengan ID zona dengan memanggil API [DescribeZones](~~189196~~).",
                                                  "type": "string",
                                                  "example": "cn-hangzhou-a"
                                              },
                                              "Status": {
                                                  "description": "Status zona. Nilai yang valid:\n\n- **Active**: Berjalan.\n- **Stopped**: Dihentikan.\n- **Shifted**: Dihapus.\n- **Starting**: Memulai.\n- **Stopping**: Menghentikan.",
                                                  "type": "string",
                                                  "example": "Active"
                                              }
                                          }
                                      }
                                  },
                                  "AddressIpVersion": {
                                      "title": "Versi protokol",
                                      "description": "Versi protokol. Nilai yang valid:\n\n- **IPv4**: IPv4\n- **DualStack**: Tumpukan ganda",
                                      "type": "string",
                                      "example": "DualStack"
                                  },
                                  "Ipv6AddressType": {
                                      "title": "Jenis alamat IPv6",
                                      "description": "Jenis alamat jaringan dari alamat IPv6 Application Load Balancer. Nilai yang valid:\n\n- **Internet**: Jaringan publik. Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga dapat diakses melalui Internet.\n- **Intranet**: Jaringan pribadi. Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga hanya dapat diakses dari jaringan internal VPC tempatnya berada.",
                                      "type": "string",
                                      "example": "Intranet"
                                  },
                                  "SecurityGroupIds": {
                                      "description": "Satu set ID grup keamanan yang terikat pada instans Application Load Balancer.",
                                      "type": "array",
                                      "items": {
                                          "description": "ID grup keamanan yang terikat pada instans Application Load Balancer.",
                                          "type": "string",
                                          "example": "sg-uf63j385dzwlm6cy****"
                                      }
                                  }
                              }
                          }
                      }
                  },
                  "errorCodes": {
                      "400": [
                          {
                              "errorCode": "Forbidden.LoadBalancer",
                              "errorMessage": "Autentikasi telah gagal untuk LoadBalancer."
                          }
                      ],
                      "404": [
                          {
                              "errorCode": "ResourceNotFound.LoadBalancer",
                              "errorMessage": "Sumber daya yang ditentukan %s tidak ditemukan."
                          }
                      ]
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"AccessLogConfig\\\": {\\n    \\\"LogProject\\\": \\\"sls-setter\\\",\\n    \\\"LogStore\\\": \\\"test\\\"\\n  },\\n  \\\"AddressAllocatedMode\\\": \\\"Dynamic\\\",\\n  \\\"AddressType\\\": \\\"Intranet\\\",\\n  \\\"BandwidthPackageId\\\": \\\"cbwp-bp1vevu8h3ieh****\\\",\\n  \\\"CreateTime\\\": \\\"2022-07-02T02:49:05Z\\\",\\n  \\\"DNSName\\\": \\\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\\",\\n  \\\"DeletionProtectionConfig\\\": {\\n    \\\"Enabled\\\": true,\\n    \\\"EnabledTime\\\": \\\"2022-08-02T02:49:05Z\\\"\\n  },\\n  \\\"LoadBalancerBillingConfig\\\": {\\n    \\\"PayType\\\": \\\"PostPay\\\"\\n  },\\n  \\\"LoadBalancerBussinessStatus\\\": \\\"Normal\\\",\\n  \\\"LoadBalancerEdition\\\": \\\"Standard\\\",\\n  \\\"LoadBalancerId\\\": \\\"alb-o9ulmq5hgn68jk****\\\",\\n  \\\"LoadBalancerName\\\": \\\"alb1\\\",\\n  \\\"LoadBalancerOperationLocks\\\": [\\n    {\\n      \\\"LockReason\\\": \\\"Overdue Payment\\\",\\n      \\\"LockType\\\": \\\"FinancialLocked\\\"\\n    }\\n  ],\\n  \\\"LoadBalancerStatus\\\": \\\"Active\\\",\\n  \\\"ModificationProtectionConfig\\\": {\\n    \\\"Reason\\\": \\\"Managed Instance\\\",\\n    \\\"Status\\\": \\\"ConsoleProtection\\\"\\n  },\\n  \\\"RegionId\\\": \\\"cn-hangzhou\\\",\\n  \\\"RequestId\\\": \\\"365F4154-92F6-4AE4-92F8-7FF34B540710\\\",\\n  \\\"ResourceGroupId\\\": \\\"rg-atstuj3rtop****\\\",\\n  \\\"Tags\\\": [\\n    {\\n      \\\"Key\\\": \\\"FinanceDept\\\",\\n      \\\"Value\\\": \\\"FinanceJoshua\\\"\\n    }\\n  ],\\n  \\\"VpcId\\\": \\\"vpc-bp1b49rqrybk45nio****\\\",\\n  \\\"ZoneMappings\\\": [\\n    {\\n      \\\"LoadBalancerAddresses\\\": [\\n        {\\n          \\\"Address\\\": \\\"10.1.0.61\\\",\\n          \\\"Ipv6Address\\\": \\\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcd9\\\",\\n          \\\"IntranetAddress\\\": \\\"10.1.0.61\\\",\\n          \\\"AllocationId\\\": \\\"eip-uf6wm****1zj9\\\",\\n          \\\"EipType\\\": \\\"Common\\\",\\n          \\\"IntranetAddressHcStatus\\\": \\\"Healthy\\\",\\n          \\\"Ipv6AddressHcStatus\\\": \\\"Healthy\\\",\\n          \\\"Ipv4LocalAddresses\\\": [\\n            \\\"10.1.0.62\\\"\\n          ],\\n          \\\"Ipv6LocalAddresses\\\": [\\n            \\\"2408:xxxx:249:dd01:6f4:750f:xxxx:bcda\\\"\\n          ]\\n        }\\n      ],\\n      \\\"VSwitchId\\\": \\\"vsw-bp12mw1f8k3jgy****\\\",\\n      \\\"ZoneId\\\": \\\"cn-hangzhou-a\\\",\\n      \\\"Status\\\": \\\"Active\\\"\\n    }\\n  ],\\n  \\\"AddressIpVersion\\\": \\\"DualStack\\\",\\n  \\\"Ipv6AddressType\\\": \\\"Intranet\\\",\\n  \\\"SecurityGroupIds\\\": [\\n    \\\"sg-uf63j385dzwlm6cy****\\\"\\n  ]\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<GetLoadBalancerAttributeResponse>\\n    <AccessLogConfig>\\n        <LogProject>sls-setter</LogProject>\\n        <LogStore>test</LogStore>\\n    </AccessLogConfig>\\n    <AddressAllocatedMode>Dynamic</AddressAllocatedMode>\\n    <AddressType>Intranet</AddressType>\\n    <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n    <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n    <DNSName>alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com</DNSName>\\n    <DeletionProtectionConfig>\\n        <Enabled>true</Enabled>\\n        <EnabledTime>2022-08-02T02:49:05Z</EnabledTime>\\n    </DeletionProtectionConfig>\\n    <LoadBalancerBillingConfig>\\n        <PayType>PostPay</PayType>\\n    </LoadBalancerBillingConfig>\\n    <LoadBalancerBussinessStatus>Normal</LoadBalancerBussinessStatus>\\n    <LoadBalancerEdition>Standard</LoadBalancerEdition>\\n    <LoadBalancerId>alb-o9ulmq5hgn68jk****</LoadBalancerId>\\n    <LoadBalancerName>alb1</LoadBalancerName>\\n    <LoadBalancerOperationLocks>\\n        <LockReason>Overdue Payment</LockReason>\\n        <LockType>FinancialLocked</LockType>\\n    </LoadBalancerOperationLocks>\\n    <LoadBalancerStatus>Active</LoadBalancerStatus>\\n    <ModificationProtectionConfig>\\n        <Reason>Managed Instance</Reason>\\n        <Status>ConsoleProtection</Status>\\n    </ModificationProtectionConfig>\\n    <RegionId>cn-hangzhou</RegionId>\\n    <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n    <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n    <Tags>\\n        <Key>FinanceDept</Key>\\n        <Value>FinanceJoshua</Value>\\n    </Tags>\\n    <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n    <ZoneMappings>\\n        <LoadBalancerAddresses>\\n            <Address>192.168.10.1</Address>\\n            <Ipv6Address>2408:XXXX:39d:eb00::/56</Ipv6Address>\\n        </LoadBalancerAddresses>\\n        <VSwitchId>vsw-bp12mw1f8k3jgy****</VSwitchId>\\n        <ZoneId>cn-hangzhou-a</ZoneId>\\n    </ZoneMappings>\\n    <AddressIpVersion>DualStack</AddressIpVersion>\\n    <Ipv6AddressType>Intranet</Ipv6AddressType>\\n</GetLoadBalancerAttributeResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri detail instans load balancer"
              },
              "ListLoadBalancers": {
                  "summary": "Mengkueri konfigurasi instans.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "riskType": "none",
                      "chargeType": "free",
                      "abilityTreeNodes": [
                          "FEATUREslb6TP8T4"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "NextToken",
                          "in": "query",
                          "schema": {
                              "title": "Menandai posisi awal saat ini untuk membaca. Biarkan kosong untuk memulai dari awal.",
                              "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika ini adalah kueri pertama Anda atau tidak ada lagi kueri, Anda tidak perlu mengisi ini.\n- Jika ada kueri berikutnya, atur ke nilai **NextToken** dari panggilan API sebelumnya.",
                              "type": "string",
                              "required": false,
                              "example": "FFmyTO70tTpLG6I3FmYAXGKPd****"
                          }
                      },
                      {
                          "name": "MaxResults",
                          "in": "query",
                          "schema": {
                              "title": "Jumlah maksimum catatan data yang akan dibaca kali ini. Parameter ini opsional. Nilainya adalah 1-100. Jika pengguna tidak memberikan nilai, defaultnya adalah 20.",
                              "description": "Jumlah entri yang akan ditampilkan per halaman untuk kueri berhalaman. Rentang nilainya adalah **1** hingga **100**. Nilai defaultnya adalah **20**.\n\n",
                              "type": "integer",
                              "format": "int32",
                              "required": false,
                              "example": "20"
                          }
                      },
                      {
                          "name": "ZoneId",
                          "in": "query",
                          "schema": {
                              "title": "ID Zona",
                              "description": "ID zona tempat instans Application Load Balancer berada.\n\nAnda bisa mendapatkan informasi tentang zona yang sesuai dengan ID zona dengan memanggil API [DescribeZones](~~189196~~).",
                              "type": "string",
                              "required": false,
                              "example": "cn-hangzhou-a"
                          }
                      },
                      {
                          "name": "LoadBalancerStatus",
                          "in": "query",
                          "schema": {
                              "title": "Status instans",
                              "description": "Status instans Application Load Balancer. Nilai yang valid:\n\n- **Inactive**: Dihentikan. Pendengar tidak akan lagi meneruskan lalu lintas.\n\n- **Active**: Berjalan.\n\n- **Provisioning**: Membuat.\n\n- **Configuring**: Mengubah.\n\n- **CreateFailed**: Pembuatan gagal. Tidak ada biaya yang dikenakan saat ini, dan instans hanya dapat dihapus. Sistem secara otomatis membersihkan instans yang gagal dibuat pada hari terakhir.",
                              "type": "string",
                              "required": false,
                              "example": "Active"
                          }
                      },
                      {
                          "name": "LoadBalancerBussinessStatus",
                          "in": "query",
                          "schema": {
                              "title": "Status bisnis instans",
                              "description": "Status bisnis Application Load Balancer. Nilai yang valid:\n\n- **Abnormal**: Abnormal.\n\n- **Normal**: Normal.",
                              "type": "string",
                              "required": false,
                              "example": "Normal"
                          }
                      },
                      {
                          "name": "LoadBalancerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID instans, N mendukung maksimal 20",
                              "description": "Daftar ID instans. Maksimal 20 ID instans Application Load Balancer didukung.",
                              "type": "array",
                              "items": {
                                  "description": "ID instans.",
                                  "type": "string",
                                  "required": false,
                                  "example": "alb-o9ulmq5hgn68jk****"
                              },
                              "required": false,
                              "maxItems": 21,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "LoadBalancerNames",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar nama instans, N mendukung maksimal 10",
                              "description": "Daftar nama instans. Maksimal 10 nama instans didukung.",
                              "type": "array",
                              "items": {
                                  "description": "Nama instans.\n\nPanjangnya 2 hingga 128 karakter bahasa Inggris atau Mandarin. Harus dimulai dengan huruf Inggris besar atau kecil atau karakter Mandarin dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).",
                                  "type": "string",
                                  "required": false,
                                  "example": "alb-instance-test"
                              },
                              "required": false,
                              "maxItems": 11,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "VpcIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID VPC",
                              "description": "ID VPC tempat instans Application Load Balancer berada. Maksimal 10 ID VPC didukung.",
                              "type": "array",
                              "items": {
                                  "description": "ID VPC tempat instans Application Load Balancer berada.",
                                  "type": "string",
                                  "required": false,
                                  "example": "vpc-bp1b49rqrybk45nio****"
                              },
                              "required": false,
                              "maxItems": 11,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "Tag",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar tag",
                              "description": "Tag instans.",
                              "type": "array",
                              "items": {
                                  "description": "Struktur tag instans.",
                                  "type": "object",
                                  "properties": {
                                      "Key": {
                                          "title": "Kunci tag instans",
                                          "description": "Kunci tag instans. Maksimal 20 kunci tag dapat dimasukkan. Setelah nilai ini dimasukkan, tidak boleh berupa string kosong.\n\nPanjangnya bisa mencapai 64 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                          "type": "string",
                                          "required": false,
                                          "example": "KeyTest"
                                      },
                                      "Value": {
                                          "title": "Nilai tag instans",
                                          "description": "Nilai tag instans. Maksimal 20 nilai tag dapat dimasukkan. Setelah nilai ini dimasukkan, bisa berupa string kosong.\n\nPanjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                          "type": "string",
                                          "required": false,
                                          "example": "alueTest"
                                      }
                                  },
                                  "required": false
                              },
                              "required": false,
                              "maxItems": 21,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "AddressType",
                          "in": "query",
                          "schema": {
                              "title": "Jenis alamat load balancer",
                              "description": "Jenis alamat instans. Nilai yang valid:\n\n- **Internet**: Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga dapat diakses melalui Internet.\n\n- **Intranet**: Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga hanya dapat diakses dari jaringan internal VPC tempatnya berada.",
                              "type": "string",
                              "required": false,
                              "example": "Intranet"
                          }
                      },
                      {
                          "name": "PayType",
                          "in": "query",
                          "schema": {
                              "title": "Metode penagihan",
                              "description": "Metode penagihan instans. Nilai yang valid:\n\n**PostPay** (default): Bayar sesuai penggunaan.",
                              "type": "string",
                              "required": false,
                              "example": "PostPay"
                          }
                      },
                      {
                          "name": "ResourceGroupId",
                          "in": "query",
                          "schema": {
                              "title": "ID kelompok sumber daya",
                              "description": "ID kelompok sumber daya perusahaan.",
                              "type": "string",
                              "required": false,
                              "example": "rg-acfmxazb4ph****"
                          }
                      },
                      {
                          "name": "AddressIpVersion",
                          "in": "query",
                          "schema": {
                              "title": "Versi protokol untuk difilter",
                              "description": "Versi protokol. Nilai yang valid:\n\n- **IPv4**: IPv4.\n- **DualStack**: Tumpukan ganda.",
                              "type": "string",
                              "required": false,
                              "example": "IPv4"
                          }
                      },
                      {
                          "name": "Ipv6AddressType",
                          "in": "query",
                          "schema": {
                              "title": "Jenis jaringan alamat IPv6",
                              "description": "Jenis alamat IPv6 dari Application Load Balancer. Nilai yang valid:\n\n- **Internet**: Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga dapat diakses melalui Internet.\n\n- **Intranet**: Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga hanya dapat diakses dari jaringan internal VPC tempatnya berada.",
                              "type": "string",
                              "required": false,
                              "example": "Intranet"
                          }
                      },
                      {
                          "name": "DNSName",
                          "in": "query",
                          "schema": {
                              "description": "Nama domain DNS.",
                              "type": "string",
                              "required": false,
                              "example": "alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com"
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Informasi konfigurasi instans Application Load Balancer.",
                              "type": "object",
                              "properties": {
                                  "LoadBalancers": {
                                      "title": "Daftar instans",
                                      "description": "Daftar instans Application Load Balancer.",
                                      "type": "array",
                                      "items": {
                                          "description": "Struktur instans Application Load Balancer.",
                                          "type": "object",
                                          "properties": {
                                              "AccessLogConfig": {
                                                  "title": "Properti log akses",
                                                  "description": "Struktur konfigurasi log akses.",
                                                  "type": "object",
                                                  "properties": {
                                                      "LogProject": {
                                                          "title": "Proyek log tempat log akses dikirimkan",
                                                          "description": "Proyek log.",
                                                          "type": "string",
                                                          "example": "sls-setter"
                                                      },
                                                      "LogStore": {
                                                          "title": "Waktu pengaktifan perlindungan penghapusan",
                                                          "description": "Log store.",
                                                          "type": "string",
                                                          "example": "test"
                                                      }
                                                  }
                                              },
                                              "AddressAllocatedMode": {
                                                  "title": "Mode alamat",
                                                  "description": "Mode alamat. Nilai yang valid:\n\n- **Fixed**: Mode IP tetap, yang menggunakan alamat IP tetap.\n\n- **Dynamic**: Mode IP dinamis, di mana alamat IP dialokasikan secara dinamis untuk setiap zona.",
                                                  "type": "string",
                                                  "example": "Fixed"
                                              },
                                              "AddressType": {
                                                  "title": "Jenis alamat",
                                                  "description": "Jenis alamat load balancer. Nilai yang valid:\n\n- **Internet**: Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga dapat diakses melalui Internet.\n\n- **Intranet**: Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga hanya dapat diakses dari jaringan internal VPC tempatnya berada.",
                                                  "type": "string",
                                                  "example": "Intranet"
                                              },
                                              "BandwidthPackageId": {
                                                  "title": "ID Paket bandwidth",
                                                  "description": "ID paket bandwidth bersama yang terkait dengan instans yang menghadap ke publik.",
                                                  "type": "string",
                                                  "example": "cbwp-bp1vevu8h3ieh****"
                                              },
                                              "CreateTime": {
                                                  "title": "Waktu pembuatan sumber daya",
                                                  "description": "Waktu sumber daya dibuat.",
                                                  "type": "string",
                                                  "example": "2022-07-02T02:49:05Z"
                                              },
                                              "DNSName": {
                                                  "title": "Nama DNS",
                                                  "description": "Nama domain DNS.",
                                                  "type": "string",
                                                  "example": "alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com"
                                              },
                                              "DeletionProtectionConfig": {
                                                  "title": "Informasi perlindungan penghapusan load balancer",
                                                  "description": "Konfigurasi perlindungan penghapusan.",
                                                  "type": "object",
                                                  "properties": {
                                                      "Enabled": {
                                                          "title": "Status perlindungan penghapusan",
                                                          "description": "Status perlindungan penghapusan. Nilai yang valid:\n\n- **true**: Diaktifkan.\n\n- **false**: Dinonaktifkan.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "EnabledTime": {
                                                          "title": "Waktu pengaktifan perlindungan penghapusan",
                                                          "description": "Waktu ketika perlindungan penghapusan diaktifkan.",
                                                          "type": "string",
                                                          "example": "2022-08-02T02:49:05Z"
                                                      }
                                                  }
                                              },
                                              "LoadBalancerBillingConfig": {
                                                  "title": "Properti terkait penagihan",
                                                  "description": "Konfigurasi penagihan instans SLB.",
                                                  "type": "object",
                                                  "properties": {
                                                      "PayType": {
                                                          "title": "Metode penagihan instans",
                                                          "description": "Metode penagihan. Nilai yang valid:\n\n**PostPay**: Bayar sesuai penggunaan.",
                                                          "type": "string",
                                                          "example": "PostPay",
                                                          "default": "PostPay"
                                                      }
                                                  }
                                              },
                                              "LoadBalancerBussinessStatus": {
                                                  "title": "Status bisnis instans",
                                                  "description": "Status bisnis load balancer. Nilai yang valid:\n\n- **Abnormal**: Abnormal.\n\n- **Normal**: Normal.",
                                                  "type": "string",
                                                  "example": "Normal"
                                              },
                                              "LoadBalancerEdition": {
                                                  "title": "Edisi load balancer",
                                                  "description": "Edisi load balancer. Edisi yang berbeda memiliki batasan fitur dan kebijakan penagihan yang berbeda. Nilai yang valid:\n\n- **Basic**: Edisi Dasar.\n\n- **Standard**: Edisi Standar.\n\n- **StandardWithWaf**: Edisi yang diaktifkan WAF.\n\n",
                                                  "type": "string",
                                                  "example": "Standard"
                                              },
                                              "LoadBalancerId": {
                                                  "title": "Identitas load balancer",
                                                  "description": "ID instans Application Load Balancer.",
                                                  "type": "string",
                                                  "example": "alb-o9ulmq5hgn68jk****"
                                              },
                                              "LoadBalancerName": {
                                                  "title": "Nama instans",
                                                  "description": "Nama instans SLB.",
                                                  "type": "string",
                                                  "example": "alb-instance-test"
                                              },
                                              "LoadBalancerOperationLocks": {
                                                  "title": "Alasan untuk kunci",
                                                  "description": "Konfigurasi kunci operasi dari load balancer.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur kunci operasi load balancer.",
                                                      "type": "object",
                                                      "properties": {
                                                          "LockReason": {
                                                              "title": "Alasan untuk kunci",
                                                              "description": "Alasan kunci. Ini valid ketika **LoadBalancerBussinessStatus** adalah **Abnormal**.",
                                                              "type": "string"
                                                          },
                                                          "LockType": {
                                                              "title": "Jenis kunci",
                                                              "description": "Jenis kunci. Nilai yang valid:\n\n- **SecurityLocked**: Kunci keamanan.\n\n- **RelatedResourceLocked**: Kunci sumber daya terkait.\n\n- **FinancialLocked**: Kunci finansial.\n\n- **ResidualLocked**: Kunci sisa.",
                                                              "type": "string",
                                                              "example": "FinancialLocked"
                                                          }
                                                      }
                                                  }
                                              },
                                              "LoadBalancerStatus": {
                                                  "title": "Status instans",
                                                  "description": "Status instans Application Load Balancer. Nilai yang valid:\n\n- **Inactive**: Dihentikan. Pendengar instans tidak akan lagi meneruskan lalu lintas.\n\n- **Active**: Berjalan.\n\n- **Provisioning**: Membuat.\n\n- **Configuring**: Mengubah.\n\n- **CreateFailed**: Pembuatan gagal.",
                                                  "type": "string",
                                                  "example": "Active"
                                              },
                                              "ModificationProtectionConfig": {
                                                  "title": "Informasi perlindungan modifikasi load balancer",
                                                  "description": "Konfigurasi perlindungan modifikasi.",
                                                  "type": "object",
                                                  "properties": {
                                                      "Reason": {
                                                          "title": "Alasan untuk mengatur status perlindungan modifikasi",
                                                          "description": "Alasan untuk mengaktifkan perlindungan modifikasi.\n\nPanjangnya 2 hingga 128 karakter bahasa Inggris atau Mandarin. Harus dimulai dengan huruf Inggris besar atau kecil atau karakter Mandarin dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).\n\nIni dikembalikan hanya ketika **Status** adalah **ConsoleProtection**.",
                                                          "type": "string",
                                                          "example": "Managed Instance"
                                                      },
                                                      "Status": {
                                                          "title": "Status perlindungan modifikasi load balancer",
                                                          "description": "Status perlindungan modifikasi instans Application Load Balancer. Nilai yang valid:\n\n- **NonProtection**: Perlindungan modifikasi tidak diaktifkan. Jika **Reason** dikonfigurasi, **Reason** akan dihapus secara paksa.\n\n- **ConsoleProtection**: Perlindungan modifikasi konsol diaktifkan. Jika **Reason** dikonfigurasi, **Reason** dapat berlaku.\n\n> Ketika nilainya adalah **ConsoleProtection**, yang berarti perlindungan modifikasi diaktifkan, pengguna tidak dapat mengubah konfigurasi instans melalui konsol SLB, tetapi dapat mengubahnya dengan memanggil API.",
                                                          "type": "string",
                                                          "example": "ConsoleProtection"
                                                      }
                                                  }
                                              },
                                              "ResourceGroupId": {
                                                  "title": "ID kelompok sumber daya perusahaan",
                                                  "description": "ID kelompok sumber daya perusahaan.",
                                                  "type": "string",
                                                  "example": "rg-atstuj3rtop****"
                                              },
                                              "Tags": {
                                                  "title": "Daftar tag",
                                                  "description": "Daftar tag.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur tag.",
                                                      "type": "object",
                                                      "properties": {
                                                          "Key": {
                                                              "title": "Kunci tag instans",
                                                              "description": "Kunci tag instans.",
                                                              "type": "string",
                                                              "example": "KeyTest"
                                                          },
                                                          "Value": {
                                                              "title": "Nilai tag instans",
                                                              "description": "Nilai tag instans.",
                                                              "type": "string",
                                                              "example": "alueTest"
                                                          }
                                                      }
                                                  }
                                              },
                                              "VpcId": {
                                                  "title": "ID jaringan VPC",
                                                  "description": "ID VPC dari instans Application Load Balancer.",
                                                  "type": "string",
                                                  "example": "vpc-bp1b49rqryhk45nio****"
                                              },
                                              "AddressIpVersion": {
                                                  "title": "Versi protokol",
                                                  "description": "Versi protokol. Nilai yang valid:\n\n- **IPv4**: IPv4.\n\n- **DualStack**: Tumpukan ganda.",
                                                  "type": "string",
                                                  "example": "DualStack"
                                              },
                                              "Ipv6AddressType": {
                                                  "title": "Jenis alamat IPv6",
                                                  "description": "Jenis alamat jaringan dari alamat IPv6 Application Load Balancer. Nilai yang valid:\n\n- **Internet**: Jaringan publik. Instans SLB memiliki alamat IP publik. Nama domain DNS diselesaikan ke alamat IP publik, sehingga dapat diakses melalui Internet.\n\n- **Intranet**: Jaringan pribadi. Instans SLB hanya memiliki alamat IP pribadi. Nama domain DNS diselesaikan ke alamat IP pribadi, sehingga hanya dapat diakses dari jaringan internal VPC tempatnya berada.",
                                                  "type": "string",
                                                  "example": "Intranet"
                                              },
                                              "SecurityGroupIds": {
                                                  "description": "Grup keamanan tempat instans Application Load Balancer ditambahkan.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Grup keamanan tempat instans Application Load Balancer ditambahkan.",
                                                      "type": "string",
                                                      "example": "sg-2zejdtxxpu8c9tny****"
                                                  }
                                              }
                                          }
                                      }
                                  },
                                  "MaxResults": {
                                      "title": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "description": "Jumlah entri yang ditampilkan per halaman untuk kueri berhalaman.\n\n",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "20"
                                  },
                                  "NextToken": {
                                      "title": "Menunjukkan posisi di mana panggilan saat ini kembali untuk membaca. Kosong berarti data telah dibaca.",
                                      "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika **NextToken** kosong, tidak ada lagi kueri.\n- Jika **NextToken** memiliki nilai kembali, nilai ini menunjukkan token untuk memulai kueri berikutnya.",
                                      "type": "string",
                                      "example": "FFmyTO70tTpLG6I3FmYAXGKPd****"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "365F4154-92F6-4AE4-92F8-7FF34B540710"
                                  },
                                  "TotalCount": {
                                      "title": "Jumlah total data di bawah kondisi permintaan ini.",
                                      "description": "Jumlah entri daftar.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "100"
                                  }
                              }
                          }
                      }
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"LoadBalancers\\\": [\\n    {\\n      \\\"AccessLogConfig\\\": {\\n        \\\"LogProject\\\": \\\"sls-setter\\\",\\n        \\\"LogStore\\\": \\\"test\\\"\\n      },\\n      \\\"AddressAllocatedMode\\\": \\\"Fixed\\\",\\n      \\\"AddressType\\\": \\\"Intranet\\\",\\n      \\\"BandwidthPackageId\\\": \\\"cbwp-bp1vevu8h3ieh****\\\",\\n      \\\"CreateTime\\\": \\\"2022-07-02T02:49:05Z\\\",\\n      \\\"DNSName\\\": \\\"alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com\\\",\\n      \\\"DeletionProtectionConfig\\\": {\\n        \\\"Enabled\\\": true,\\n        \\\"EnabledTime\\\": \\\"2022-08-02T02:49:05Z\\\"\\n      },\\n      \\\"LoadBalancerBillingConfig\\\": {\\n        \\\"PayType\\\": \\\"PostPay\\\"\\n      },\\n      \\\"LoadBalancerBussinessStatus\\\": \\\"Normal\\\",\\n      \\\"LoadBalancerEdition\\\": \\\"Standard\\\",\\n      \\\"LoadBalancerId\\\": \\\"alb-o9ulmq5hgn68jk****\\\",\\n      \\\"LoadBalancerName\\\": \\\"alb-instance-test\\\",\\n      \\\"LoadBalancerOperationLocks\\\": [\\n        {\\n          \\\"LockReason\\\": \\\"\\\",\\n          \\\"LockType\\\": \\\"FinancialLocked\\\"\\n        }\\n      ],\\n      \\\"LoadBalancerStatus\\\": \\\"Active\\\",\\n      \\\"ModificationProtectionConfig\\\": {\\n        \\\"Reason\\\": \\\"Managed Instance\\\",\\n        \\\"Status\\\": \\\"ConsoleProtection\\\"\\n      },\\n      \\\"ResourceGroupId\\\": \\\"rg-atstuj3rtop****\\\",\\n      \\\"Tags\\\": [\\n        {\\n          \\\"Key\\\": \\\"KeyTest\\\",\\n          \\\"Value\\\": \\\"alueTest\\\"\\n        }\\n      ],\\n      \\\"VpcId\\\": \\\"vpc-bp1b49rqryhk45nio****\\\",\\n      \\\"AddressIpVersion\\\": \\\"DualStack\\\",\\n      \\\"Ipv6AddressType\\\": \\\"Intranet\\\",\\n      \\\"SecurityGroupIds\\\": [\\n        \\\"sg-2zejdtxxpu8c9tny****\\\"\\n      ]\\n    }\\n  ],\\n  \\\"MaxResults\\\": 20,\\n  \\\"NextToken\\\": \\\"FFmyTO70tTpLG6I3FmYAXGKPd****\\\",\\n  \\\"RequestId\\\": \\\"365F4154-92F6-4AE4-92F8-7FF34B540710\\\",\\n  \\\"TotalCount\\\": 100\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<ListLoadBalancersResponse>\\n    <LoadBalancers>\\n        <AccessLogConfig>\\n            <LogProject>sls-setter</LogProject>\\n            <LogStore>test</LogStore>\\n        </AccessLogConfig>\\n        <AddressAllocatedMode>Fixed</AddressAllocatedMode>\\n        <AddressType>Intranet</AddressType>\\n        <BandwidthPackageId>cbwp-bp1vevu8h3ieh****</BandwidthPackageId>\\n        <CreateTime>2022-07-02T02:49:05Z</CreateTime>\\n        <DNSName>alb-95qnr2itwu9orb****.cn-hangzhou.alb.aliyuncs.com</DNSName>\\n        <DeletionProtectionConfig>\\n            <Enabled>true</Enabled>\\n            <EnabledTime>2022-08-02T02:49:05Z</EnabledTime>\\n        </DeletionProtectionConfig>\\n        <LoadBalancerBillingConfig>\\n            <PayType>PostPay</PayType>\\n        </LoadBalancerBillingConfig>\\n        <LoadBalancerBussinessStatus>Normal</LoadBalancerBussinessStatus>\\n        <LoadBalancerEdition>Standard</LoadBalancerEdition>\\n        <LoadBalancerId>alb-o9ulmq5hgn68jk****</LoadBalancerId>\\n        <LoadBalancerName>alb-instance-test</LoadBalancerName>\\n        <LoadBalancerOperationLocks>\\n            <LockReason>Overdue Payment</LockReason>\\n            <LockType>FinancialLocked</LockType>\\n        </LoadBalancerOperationLocks>\\n        <LoadBalancerStatus>Active</LoadBalancerStatus>\\n        <ModificationProtectionConfig>\\n            <Reason>Managed Instance</Reason>\\n            <Status>ConsoleProtection</Status>\\n        </ModificationProtectionConfig>\\n        <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n        <Tags>\\n            <Key>KeyTest</Key>\\n            <Value>alueTest</Value>\\n        </Tags>\\n        <VpcId>vpc-bp1b49rqrybk45nio****</VpcId>\\n        <AddressIpVersion>DualStack</AddressIpVersion>\\n        <Ipv6AddressType>Intranet</Ipv6AddressType>\\n    </LoadBalancers>\\n    <MaxResults>20</MaxResults>\\n    <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n    <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n    <TotalCount>100</TotalCount>\\n</ListLoadBalancersResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri load balancer"
              },
              "ListListeners": {
                  "summary": "Mengkueri pendengar di wilayah tertentu.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "abilityTreeCode": "190",
                      "abilityTreeNodes": [
                          "FEATUREslbM7ALO6",
                          "FEATUREslbK3ZR0L",
                          "FEATUREslbN5IE4S"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "NextToken",
                          "in": "query",
                          "schema": {
                              "title": "Menandai posisi awal saat ini untuk membaca. Biarkan kosong untuk memulai dari awal.",
                              "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika ini adalah kueri pertama Anda atau tidak ada lagi kueri, Anda tidak perlu mengisi ini.\n- Jika ada kueri berikutnya, atur ke nilai **NextToken** dari panggilan API sebelumnya.",
                              "type": "string",
                              "required": false,
                              "example": "FFmyTO70tTpLG6I4FmYAXGKPd****"
                          }
                      },
                      {
                          "name": "MaxResults",
                          "in": "query",
                          "schema": {
                              "title": "Jumlah maksimum catatan data yang akan dibaca kali ini. Parameter ini opsional. Nilainya adalah 1-100. Jika pengguna tidak memberikan nilai, defaultnya adalah 20.",
                              "description": "Jumlah maksimum catatan data yang akan dibaca kali ini. Parameter ini opsional. Rentang nilainya adalah **1 hingga 100**. Jika parameter kosong, nilai defaultnya adalah **20**.",
                              "type": "integer",
                              "format": "int32",
                              "required": false,
                              "example": "50"
                          }
                      },
                      {
                          "name": "ListenerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID pendengar, N mendukung maksimal 20",
                              "description": "Daftar ID instans pendengar. Maksimal 20 ID pendengar didukung.",
                              "type": "array",
                              "items": {
                                  "description": "ID instans pendengar.",
                                  "type": "string",
                                  "required": false,
                                  "example": "lsn-o4u54y73wq7b******"
                              },
                              "required": false,
                              "maxItems": 20,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "LoadBalancerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID instans, N mendukung maksimal 20",
                              "description": "ID instans Application Load Balancer. Maksimal 20 ID instans didukung.",
                              "type": "array",
                              "items": {
                                  "description": "ID instans Application Load Balancer.",
                                  "type": "string",
                                  "required": false,
                                  "example": "alb-bd6oylbckp6k9x****"
                              },
                              "required": false,
                              "maxItems": 21,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "ListenerProtocol",
                          "in": "query",
                          "schema": {
                              "title": "Protokol pendengar",
                              "description": "Protokol pendengar untuk difilter. Nilai yang valid:\n\n- **HTTP**: Jenis protokol adalah HTTP.\n- **HTTPS**: Jenis protokol adalah HTTPS.\n- **QUIC**: Jenis protokol adalah QUIC.",
                              "type": "string",
                              "required": false,
                              "example": "HTTP"
                          }
                      },
                      {
                          "name": "Tag",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "description": "Tag.",
                              "type": "array",
                              "items": {
                                  "description": "Struktur tag.",
                                  "type": "object",
                                  "properties": {
                                      "Key": {
                                          "description": "Kunci tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                          "type": "string",
                                          "required": false,
                                          "example": "env"
                                      },
                                      "Value": {
                                          "description": "Nilai tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                          "type": "string",
                                          "required": false,
                                          "example": "product"
                                      }
                                  },
                                  "required": false
                              },
                              "required": false
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Informasi pendengar Application Load Balancer.",
                              "type": "object",
                              "properties": {
                                  "Listeners": {
                                      "title": "Daftar pendengar",
                                      "description": "Daftar pendengar Application Load Balancer.",
                                      "type": "array",
                                      "items": {
                                          "description": "Struktur pendengar Application Load Balancer.",
                                          "type": "object",
                                          "properties": {
                                              "DefaultActions": {
                                                  "title": "Aksi default",
                                                  "description": "Daftar aksi aturan default.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur aksi aturan default.",
                                                      "type": "object",
                                                      "properties": {
                                                          "ForwardGroupConfig": {
                                                              "title": "Teruskan ke grup server",
                                                              "description": "Konfigurasi yang sesuai dengan aksi aturan pengalihan. Ini valid ketika jenis aksi adalah **ForwardGroup**.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "ServerGroupTuples": {
                                                                      "title": "Daftar grup server",
                                                                      "description": "Grup server tujuan untuk pengalihan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Grup server tujuan untuk pengalihan.",
                                                                          "type": "object",
                                                                          "properties": {
                                                                              "ServerGroupId": {
                                                                                  "title": "ID grup server",
                                                                                  "description": "ID grup server tujuan untuk dialihkan.",
                                                                                  "type": "string",
                                                                                  "example": "sgp-i5qt20******"
                                                                              }
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "Type": {
                                                              "title": "Jenis",
                                                              "description": "Jenis aksi. Nilainya adalah **ForwardGroup**, yang berarti meneruskan ke beberapa grup server.",
                                                              "type": "string",
                                                              "example": "ForwardGroup"
                                                          }
                                                      }
                                                  }
                                              },
                                              "GzipEnabled": {
                                                  "title": "Apakah akan mengaktifkan kompresi Gzip",
                                                  "description": "Apakah akan mengaktifkan kompresi Gzip untuk jenis file tertentu. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n",
                                                  "type": "boolean",
                                                  "example": "false"
                                              },
                                              "Http2Enabled": {
                                                  "title": "Apakah akan mengaktifkan fitur HTTP/2",
                                                  "description": "Apakah akan mengaktifkan fitur HTTP/2. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                  "type": "boolean",
                                                  "example": "false"
                                              },
                                              "IdleTimeout": {
                                                  "title": "Waktu idle koneksi",
                                                  "description": "Menentukan waktu idle koneksi. Satuan: detik. Rentang nilainya adalah **1 hingga 60**.\n\nJika tidak ada permintaan akses dalam periode waktu habis, load balancer akan memutuskan sementara koneksi saat ini hingga koneksi baru dibuat setelah menerima permintaan berikutnya.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "3"
                                              },
                                              "ListenerDescription": {
                                                  "title": "Deskripsi pendengar",
                                                  "description": "Nama pendengar kustom.",
                                                  "type": "string",
                                                  "example": "HTTP_80"
                                              },
                                              "ListenerId": {
                                                  "title": "Identitas pendengar",
                                                  "description": "ID pendengar.",
                                                  "type": "string",
                                                  "example": "lsn-o4u34y73wq7b******"
                                              },
                                              "ListenerPort": {
                                                  "title": "Port pendengaran",
                                                  "description": "Port antarmuka depan yang digunakan oleh instans Application Load Balancer. Nilainya adalah **1 hingga 65535**.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "80"
                                              },
                                              "ListenerProtocol": {
                                                  "title": "Protokol pendengar",
                                                  "description": "Protokol pendengar. Nilai yang valid:\n\n- **HTTP**: Jenis protokol adalah HTTP.\n- **HTTPS**: Jenis protokol adalah HTTPS.\n- **QUIC**: Jenis protokol adalah QUIC.",
                                                  "type": "string",
                                                  "example": "HTTP"
                                              },
                                              "ListenerStatus": {
                                                  "title": "Status pendengar",
                                                  "description": "Status pendengar saat ini. Nilai yang valid:\n\n- **Provisioning**: Membuat.\n\n- **Running**: Berjalan.\n\n- **Configuring**: Mengonfigurasi.\n\n- **Stopped**: Dihentikan.",
                                                  "type": "string",
                                                  "example": "Running"
                                              },
                                              "LoadBalancerId": {
                                                  "title": "Identitas load balancer",
                                                  "description": "ID instans Application Load Balancer.",
                                                  "type": "string",
                                                  "example": "alb-bd6oylbckp6k9x****"
                                              },
                                              "LogConfig": {
                                                  "title": "Konfigurasi terkait log akses pendengar",
                                                  "description": "Konfigurasi log.",
                                                  "type": "object",
                                                  "properties": {
                                                      "AccessLogRecordCustomizedHeadersEnabled": {
                                                          "title": "Apakah log akses membawa header kustom",
                                                          "description": "Apakah log akses membawa header kustom. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "AccessLogTracingConfig": {
                                                          "title": "Konfigurasi terkait Xtrace log akses",
                                                          "description": "Informasi konfigurasi terkait Xtrace log akses.",
                                                          "type": "object",
                                                          "properties": {
                                                              "TracingEnabled": {
                                                                  "title": "Status fitur Xtrace",
                                                                  "description": "Apakah akan mengaktifkan fitur Xtrace. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya dapat diatur ke **true** ketika sakelar log akses instans **AccessLogEnabled** aktif.",
                                                                  "type": "boolean",
                                                                  "example": "true"
                                                              },
                                                              "TracingSample": {
                                                                  "title": "Status fitur Xtrace",
                                                                  "description": "Laju pengambilan sampel Xtrace. Nilainya adalah **1 hingga 10000**.\n\n> Nilai ini valid ketika **TracingEnabled** adalah **true**.",
                                                                  "type": "integer",
                                                                  "format": "int32",
                                                                  "example": "100"
                                                              },
                                                              "TracingType": {
                                                                  "title": "Jenis Xtrace",
                                                                  "description": "Jenis Xtrace. Nilai yang sah adalah **Zipkin**.\n\n> Nilai ini valid ketika **TracingEnabled** adalah **true**.",
                                                                  "type": "string",
                                                                  "example": "Zipkin"
                                                              }
                                                          }
                                                      }
                                                  }
                                              },
                                              "QuicConfig": {
                                                  "title": "Properti terkait saat HTTPS mengaktifkan QUIC",
                                                  "description": "Informasi konfigurasi saat pendengar QUIC terkait diaktifkan.",
                                                  "type": "object",
                                                  "properties": {
                                                      "QuicListenerId": {
                                                          "title": "ID pendengar QUIC yang akan dikaitkan. Ini valid untuk pendengar HTTPS dan diperlukan ketika QuicUpgradeEnabled adalah true.",
                                                          "description": "ID pendengar QUIC yang akan dikaitkan. Ini diperlukan ketika **QuicUpgradeEnabled** adalah **true**. Ini valid untuk pendengar HTTPS.\n\n> Pendengar asli dan pendengar QUIC yang terkait harus milik instans ALB yang sama, dan pendengar QUIC ini tidak boleh pernah dikaitkan sebelumnya.",
                                                          "type": "string",
                                                          "example": "lsn-o4u54y73wq7b******"
                                                      },
                                                      "QuicUpgradeEnabled": {
                                                          "title": "Apakah akan mengaktifkan peningkatan QUIC. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mengaktifkan peningkatan QUIC. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Ini hanya valid untuk pendengar HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      }
                                                  }
                                              },
                                              "RequestTimeout": {
                                                  "title": "Waktu habis permintaan",
                                                  "description": "Menentukan waktu habis permintaan. Satuan: detik. Nilainya adalah **1 hingga 180**.\n\nJika server backend tidak merespons dalam periode waktu habis, load balancer akan menyerah menunggu dan mengembalikan kode kesalahan `HTTP 504` ke klien.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "34"
                                              },
                                              "SecurityPolicyId": {
                                                  "title": "Kebijakan keamanan",
                                                  "description": "Kebijakan keamanan.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                  "type": "string",
                                                  "example": "tls_cipher_policy_1_1"
                                              },
                                              "XForwardedForConfig": {
                                                  "title": "Konfigurasi terkait dengan bidang XForwarded",
                                                  "description": "Informasi konfigurasi bidang header `XForward`.",
                                                  "type": "object",
                                                  "properties": {
                                                      "XForwardedForClientCertClientVerifyAlias": {
                                                          "title": "Nama header kustom. Nilai ini hanya efektif ketika nilai XForwardedForClientCertClientVerifyEnabled adalah true; jika tidak, nilai ini tidak efektif. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Nama bidang header kustom. Nilai ini hanya efektif ketika nilai **XForwardedForClientCertClientVerifyEnabled** adalah **true**; jika tidak, nilai ini tidak efektif.\n\nPanjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_).\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "string",
                                                          "example": "test_client-verify-alias_123456"
                                                      },
                                                      "XForwardedForClientCertClientVerifyEnabled": {
                                                          "title": "Apakah akan mendapatkan hasil verifikasi sertifikat klien yang mengakses instans SLB melalui bidang header X-Forwarded-Clientcert-clientverify. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan hasil verifikasi sertifikat klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Clientcert-clientverify`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForClientCertFingerprintAlias": {
                                                          "title": "Nama header kustom. Nilai ini hanya efektif ketika nilai XForwardedForClientCertFingerprintEnabled adalah true; jika tidak, nilai ini tidak efektif. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Nama header kustom. Ini hanya efektif ketika nilai **XForwardedForClientCertFingerprintEnabled** adalah **true**.\n\nPanjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_).\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "string",
                                                          "example": "test_finger-print-alias_123456"
                                                      },
                                                      "XForwardedForClientCertFingerprintEnabled": {
                                                          "title": "Apakah akan mendapatkan nilai sidik jari sertifikat klien yang mengakses instans SLB melalui bidang header X-Forwarded-Clientcert-fingerprint. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan nilai sidik jari sertifikat klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Clientcert-fingerprint`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForClientCertIssuerDNAlias": {
                                                          "title": "Nama header kustom. Nilai ini hanya efektif ketika nilai XForwardedForClientCertIssuerDNEnabled adalah 'On'; jika tidak, nilai ini tidak efektif. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Nama header kustom. Nilai ini hanya efektif ketika nilai **XForwardedForClientCertIssuerDNEnabled** adalah **true**.\n\nPanjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_).\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "string",
                                                          "example": "test_issue-dn-alias_123456"
                                                      },
                                                      "XForwardedForClientCertIssuerDNEnabled": {
                                                          "title": "Apakah akan mendapatkan informasi penerbit sertifikat klien yang mengakses instans SLB melalui bidang header X-Forwarded-Clientcert-issuerdn. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan informasi penerbit sertifikat klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Clientcert-issuerdn`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForClientCertSubjectDNAlias": {
                                                          "title": "Nama header kustom. Nilai ini hanya efektif ketika nilai XForwardedForClientCertSubjectDNEnabled adalah true; jika tidak, nilai ini tidak efektif. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Nama header kustom. Nilai ini hanya efektif ketika nilai **XForwardedForClientCertSubjectDNEnabled** adalah **true**.\n\nPanjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_).\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "string",
                                                          "example": "test_subject-dn-alias_123456"
                                                      },
                                                      "XForwardedForClientCertSubjectDNEnabled": {
                                                          "title": "Apakah akan mendapatkan informasi pemilik sertifikat klien yang mengakses instans SLB melalui bidang header X-Forwarded-Clientcert-subjectdn. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan informasi pemilik sertifikat klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Clientcert-subjectdn`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini hanya didukung oleh pendengar HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForClientSrcPortEnabled": {
                                                          "title": "Apakah akan mendapatkan port klien yang mengakses instans SLB melalui bidang header X-Forwarded-Client-Port. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan port klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Client-Port`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP dan HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForEnabled": {
                                                          "title": "Apakah akan mengaktifkan perolehan IP asli pengunjung melalui bidang header X-Forwarded-For",
                                                          "description": "Apakah akan mendapatkan IP asli pengunjung melalui bidang header `X-Forwarded-For`. Nilai yang valid:\n- **true** (default): Ya.\n- **false**: Tidak.\n\n> 1. Jika Anda mengonfigurasi **true**, nilai default **XForwardedForProcessingMode** adalah **append**, yang dapat diubah menjadi **remove**.\n> 2. Jika Anda mengonfigurasi **false**, bidang header `X-Forwarded-For` dipertahankan tanpa pemrosesan tambahan sebelum permintaan dikirim ke layanan backend.\n> 3. Parameter ini didukung oleh pendengar HTTP dan HTTPS.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForProcessingMode": {
                                                          "description": "Mode untuk memproses bidang header `X-Forwarded-For`. Nilai ini hanya efektif ketika **XForwardedForEnabled** adalah **true**. Nilai yang valid:\n- **append** (default): Menambahkan.\n- **remove**: Menghapus.\n\n> 1. Jika Anda mengonfigurasi **append**, IP hop terakhir ditambahkan ke bidang header `X-Forwarded-For` sebelum permintaan dikirim ke layanan backend.\n> 2. Jika Anda mengonfigurasi **remove**, header `X-Forwarded-For` dihapus sebelum permintaan dikirim ke layanan backend, terlepas dari apakah permintaan membawa bidang header `X-Forwarded-For`.\n> 3. Parameter ini didukung oleh pendengar HTTP dan HTTPS.",
                                                          "type": "string",
                                                          "example": "append"
                                                      },
                                                      "XForwardedForProtoEnabled": {
                                                          "title": "Apakah akan mendapatkan protokol pendengar instans SLB melalui bidang header X-Forwarded-Proto.",
                                                          "description": "Apakah akan mendapatkan protokol pendengar instans SLB melalui bidang header `X-Forwarded-Proto`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP, HTTPS, dan QUIC.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForSLBIdEnabled": {
                                                          "title": "Apakah akan mendapatkan ID instans SLB melalui bidang header SLB-ID.",
                                                          "description": "Apakah akan mendapatkan ID instans SLB melalui bidang header `SLB-ID`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP, HTTPS, dan QUIC.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForSLBPortEnabled": {
                                                          "title": "Apakah akan mendapatkan port pendengar instans SLB melalui bidang header X-Forwarded-Port. Ini valid untuk pendengar HTTPS.",
                                                          "description": "Apakah akan mendapatkan port pendengar instans SLB melalui bidang header `X-Forwarded-Port`. Nilai yang valid:\n\n- **true**: Ya.\n- **false**: Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP, HTTPS, dan QUIC.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "XForwardedForClientSourceIpsEnabled": {
                                                          "description": "Apakah akan mengizinkan ALB untuk menemukan IP klien asli dari bidang header X-Forwarded-For. Nilai yang valid:\n\n- **true**: Ya.\n\n- **false**: Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP dan HTTPS.",
                                                          "type": "boolean",
                                                          "example": "false"
                                                      },
                                                      "XForwardedForClientSourceIpsTrusted": {
                                                          "description": "Menentukan IP proksi tepercaya.\n\nApplication Load Balancer (ALB) melintasi `X-Forwarded-For` dari belakang ke depan, memilih IP pertama yang tidak ada dalam daftar IP tepercaya sebagai IP klien asli. IP ini digunakan untuk pembatasan laju IP sumber.",
                                                          "type": "string",
                                                          "example": "10.1.1.0/24"
                                                      },
                                                      "XForwardedForHostEnabled": {
                                                          "description": "Apakah akan mengaktifkan perolehan nama domain klien yang mengakses instans SLB melalui bidang header `X-Forwarded-Host`. Nilai yang valid:\n- **true**: Ya.\n- **false** (default): Tidak.\n\n> Parameter ini didukung oleh pendengar HTTP, HTTPS, dan QUIC.",
                                                          "type": "boolean",
                                                          "example": "false"
                                                      }
                                                  }
                                              },
                                              "Tags": {
                                                  "description": "Tag.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur tag.",
                                                      "type": "object",
                                                      "properties": {
                                                          "Key": {
                                                              "description": "Kunci tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                                              "type": "string",
                                                              "example": "env"
                                                          },
                                                          "Value": {
                                                              "description": "Nilai tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                                              "type": "string",
                                                              "example": "product"
                                                          }
                                                      }
                                                  }
                                              }
                                          }
                                      }
                                  },
                                  "MaxResults": {
                                      "title": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "description": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "50"
                                  },
                                  "NextToken": {
                                      "title": "Menunjukkan posisi di mana panggilan saat ini kembali untuk membaca. Kosong berarti data telah dibaca.",
                                      "description": "Posisi di mana panggilan saat ini kembali untuk membaca. Mengaturnya menjadi kosong berarti data telah dibaca.",
                                      "type": "string",
                                      "example": "FFmyTO70tTpLG6I3FmYAXGKPd****"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "365F4154-92F6-4AE4-92F8-7FF3******"
                                  },
                                  "TotalCount": {
                                      "title": "Jumlah total data di bawah kondisi permintaan ini.",
                                      "description": "Jumlah total data di bawah kondisi permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "1000"
                                  }
                              }
                          }
                      }
                  },
                  "errorCodes": {
                      "403": [
                          {
                              "errorCode": "Forbidden.LoadBalancer",
                              "errorMessage": "Autentikasi gagal untuk %s."
                          }
                      ]
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"Listeners\\\": [\\n    {\\n      \\\"DefaultActions\\\": [\\n        {\\n          \\\"ForwardGroupConfig\\\": {\\n            \\\"ServerGroupTuples\\\": [\\n              {\\n                \\\"ServerGroupId\\\": \\\"sgp-i5qt20******\\\"\\n              }\\n            ]\\n          },\\n          \\\"Type\\\": \\\"ForwardGroup\\\"\\n        }\\n      ],\\n      \\\"GzipEnabled\\\": false,\\n      \\\"Http2Enabled\\\": false,\\n      \\\"IdleTimeout\\\": 3,\\n      \\\"ListenerDescription\\\": \\\"HTTP_80\\\",\\n      \\\"ListenerId\\\": \\\"lsn-o4u34y73wq7b******\\\",\\n      \\\"ListenerPort\\\": 80,\\n      \\\"ListenerProtocol\\\": \\\"HTTP\\\",\\n      \\\"ListenerStatus\\\": \\\"Running\\\",\\n      \\\"LoadBalancerId\\\": \\\"alb-bd6oylbckp6k9x****\\\",\\n      \\\"LogConfig\\\": {\\n        \\\"AccessLogRecordCustomizedHeadersEnabled\\\": true,\\n        \\\"AccessLogTracingConfig\\\": {\\n          \\\"TracingEnabled\\\": true,\\n          \\\"TracingSample\\\": 100,\\n          \\\"TracingType\\\": \\\"Zipkin\\\"\\n        }\\n      },\\n      \\\"QuicConfig\\\": {\\n        \\\"QuicListenerId\\\": \\\"lsn-o4u54y73wq7b******\\\",\\n        \\\"QuicUpgradeEnabled\\\": true\\n      },\\n      \\\"RequestTimeout\\\": 34,\\n      \\\"SecurityPolicyId\\\": \\\"tls_cipher_policy_1_1\\\",\\n      \\\"XForwardedForConfig\\\": {\\n        \\\"XForwardedForClientCertClientVerifyAlias\\\": \\\"test_client-verify-alias_123456\\\",\\n        \\\"XForwardedForClientCertClientVerifyEnabled\\\": true,\\n        \\\"XForwardedForClientCertFingerprintAlias\\\": \\\"test_finger-print-alias_123456\\\",\\n        \\\"XForwardedForClientCertFingerprintEnabled\\\": true,\\n        \\\"XForwardedForClientCertIssuerDNAlias\\\": \\\"test_issue-dn-alias_123456\\\",\\n        \\\"XForwardedForClientCertIssuerDNEnabled\\\": true,\\n        \\\"XForwardedForClientCertSubjectDNAlias\\\": \\\"test_subject-dn-alias_123456\\\",\\n        \\\"XForwardedForClientCertSubjectDNEnabled\\\": true,\\n        \\\"XForwardedForClientSrcPortEnabled\\\": true,\\n        \\\"XForwardedForEnabled\\\": true,\\n        \\\"XForwardedForProcessingMode\\\": \\\"append\\\",\\n        \\\"XForwardedForProtoEnabled\\\": true,\\n        \\\"XForwardedForSLBIdEnabled\\\": true,\\n        \\\"XForwardedForSLBPortEnabled\\\": true,\\n        \\\"XForwardedForClientSourceIpsEnabled\\\": false,\\n        \\\"XForwardedForClientSourceIpsTrusted\\\": \\\"10.1.1.0/24\\\",\\n        \\\"XForwardedForHostEnabled\\\": false\\n      },\\n      \\\"Tags\\\": [\\n        {\\n          \\\"Key\\\": \\\"env\\\",\\n          \\\"Value\\\": \\\"product\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"MaxResults\\\": 50,\\n  \\\"NextToken\\\": \\\"FFmyTO70tTpLG6I3FmYAXGKPd****\\\",\\n  \\\"RequestId\\\": \\\"365F4154-92F6-4AE4-92F8-7FF3******\\\",\\n  \\\"TotalCount\\\": 1000\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<ListListenersResponse>\\n    <Listeners>\\n        <DefaultActions>\\n            <ForwardGroupConfig>\\n                <ServerGroupTuples>\\n                    <ServerGroupId>rsp-cige6j****</ServerGroupId>\\n                </ServerGroupTuples>\\n            </ForwardGroupConfig>\\n            <Type>ForwardGroup</Type>\\n        </DefaultActions>\\n        <GzipEnabled>false</GzipEnabled>\\n        <Http2Enabled>false</Http2Enabled>\\n        <IdleTimeout>3</IdleTimeout>\\n        <ListenerDescription>HTTP_80</ListenerDescription>\\n        <ListenerId>lsr-bp1bpn0kn908w4nbw****</ListenerId>\\n        <ListenerPort>80</ListenerPort>\\n        <ListenerProtocol>HTTP</ListenerProtocol>\\n        <ListenerStatus>Running</ListenerStatus>\\n        <LoadBalancerId>alb-bd6oylbckp6k9x****</LoadBalancerId>\\n        <LogConfig>\\n            <AccessLogRecordCustomizedHeadersEnabled>true</AccessLogRecordCustomizedHeadersEnabled>\\n            <AccessLogTracingConfig>\\n                <TracingEnabled>true</TracingEnabled>\\n                <TracingSample>100</TracingSample>\\n                <TracingType>Zipkin</TracingType>\\n            </AccessLogTracingConfig>\\n        </LogConfig>\\n        <QuicConfig>\\n            <QuicListenerId>lsr-bp1bpn908w4nbw****</QuicListenerId>\\n            <QuicUpgradeEnabled>true</QuicUpgradeEnabled>\\n        </QuicConfig>\\n        <RequestTimeout>34</RequestTimeout>\\n        <SecurityPolicyId>tls_cipher_policy_1_1</SecurityPolicyId>\\n        <XForwardedForConfig>\\n            <XForwardedForClientCertClientVerifyAlias>test_client-verify-alias_123456</XForwardedForClientCertClientVerifyAlias>\\n            <XForwardedForClientCertClientVerifyEnabled>true</XForwardedForClientCertClientVerifyEnabled>\\n            <XForwardedForClientCertFingerprintAlias>test_finger-print-alias_123456</XForwardedForClientCertFingerprintAlias>\\n            <XForwardedForClientCertFingerprintEnabled>true</XForwardedForClientCertFingerprintEnabled>\\n            <XForwardedForClientCertIssuerDNAlias>test_issue-dn-alias_123456</XForwardedForClientCertIssuerDNAlias>\\n            <XForwardedForClientCertIssuerDNEnabled>true</XForwardedForClientCertIssuerDNEnabled>\\n            <XForwardedForClientCertSubjectDNAlias>test_subject-dn-alias_123456</XForwardedForClientCertSubjectDNAlias>\\n            <XForwardedForClientCertSubjectDNEnabled>true</XForwardedForClientCertSubjectDNEnabled>\\n            <XForwardedForClientSrcPortEnabled>true</XForwardedForClientSrcPortEnabled>\\n            <XForwardedForEnabled>true</XForwardedForEnabled>\\n            <XForwardedForProtoEnabled>true</XForwardedForProtoEnabled>\\n            <XForwardedForSLBIdEnabled>true</XForwardedForSLBIdEnabled>\\n            <XForwardedForSLBPortEnabled>true</XForwardedForSLBPortEnabled>\\n            <XForwardedForClientSourceIpsEnabled>false</XForwardedForClientSourceIpsEnabled>\\n            <XForwardedForClientSourceIpsTrusted>10.1.1.0/24</XForwardedForClientSourceIpsTrusted>\\n        </XForwardedForConfig>\\n    </Listeners>\\n    <MaxResults>50</MaxResults>\\n    <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n    <RequestId>365F4154-92F6-4AE4-92F8-7FF34B540710</RequestId>\\n    <TotalCount>1000</TotalCount>\\n</ListListenersResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri pendengar"
              },
              "ListServerGroups": {
                  "summary": "Mengkueri daftar grup server.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "abilityTreeCode": "166",
                      "abilityTreeNodes": [
                          "FEATUREslbVRSQEA"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "ServerGroupIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID grup server",
                              "description": "Daftar ID grup server.",
                              "type": "array",
                              "items": {
                                  "description": "ID grup server. Maksimal 20 ID grup server dapat dikueri sekaligus.",
                                  "type": "string",
                                  "required": false,
                                  "example": "sgp-atstuj3rtop****"
                              },
                              "required": false,
                              "maxItems": 20
                          }
                      },
                      {
                          "name": "ServerGroupNames",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Nama grup server",
                              "description": "Daftar nama grup server, hingga 10.",
                              "type": "array",
                              "items": {
                                  "description": "Nama grup server. Maksimal 10 nama grup server dapat dikueri sekaligus.",
                                  "type": "string",
                                  "required": false,
                                  "example": "Group3"
                              },
                              "required": false,
                              "maxItems": 10
                          }
                      },
                      {
                          "name": "ResourceGroupId",
                          "in": "query",
                          "schema": {
                              "title": "ID kelompok sumber daya",
                              "description": "ID kelompok sumber daya.",
                              "type": "string",
                              "required": false,
                              "example": "rg-atstuj3rtop****"
                          }
                      },
                      {
                          "name": "NextToken",
                          "in": "query",
                          "schema": {
                              "title": "Pengidentifikasi kueri berhalaman",
                              "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika ini adalah kueri pertama Anda atau tidak ada lagi kueri, Anda tidak perlu mengisi ini.\n- Jika ada kueri berikutnya, atur ke nilai **NextToken** dari panggilan API sebelumnya.",
                              "type": "string",
                              "required": false,
                              "example": "FFmyTO70tTpLG6I3FmYAXG****"
                          }
                      },
                      {
                          "name": "MaxResults",
                          "in": "query",
                          "schema": {
                              "title": "Kuantitas kueri",
                              "description": "Jumlah entri yang akan ditampilkan per halaman untuk kueri berhalaman. Rentang nilainya adalah **1** hingga **100**. Nilai defaultnya adalah **20**.",
                              "type": "integer",
                              "format": "int32",
                              "required": false,
                              "maximum": "100",
                              "minimum": "1",
                              "example": "20",
                              "default": "20"
                          }
                      },
                      {
                          "name": "VpcId",
                          "in": "query",
                          "schema": {
                              "title": "VpcId",
                              "description": "ID instans VPC.",
                              "type": "string",
                              "required": false,
                              "example": "vpc-bp15zckdt37pq72zv****"
                          }
                      },
                      {
                          "name": "ServerGroupType",
                          "in": "query",
                          "schema": {
                              "title": "Jenis grup server",
                              "description": "Jenis grup server. Nilai yang valid:\n\n- **Instance**: Jenis server, termasuk instans ECS, ENI, dan ECI.\n\n- **Ip**: Jenis alamat IP.\n\n- **Fc**: Jenis Function Compute.\n\n- Jika tidak diisi, semua jenis akan dikueri.",
                              "type": "string",
                              "required": false,
                              "example": "Instance"
                          }
                      },
                      {
                          "name": "Tag",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar tag",
                              "description": "Daftar tag yang terikat pada grup server. Maksimal 10 tag didukung dalam daftar tag yang terikat dalam satu permintaan.",
                              "type": "array",
                              "items": {
                                  "description": "Tag yang terikat pada grup server. Satu permintaan mendukung pengiriman 10 tag.",
                                  "type": "object",
                                  "properties": {
                                      "Key": {
                                          "title": "Kunci tag",
                                          "description": "Kunci tag. Maksimal 10 kunci tag didukung.\n\nPanjangnya bisa mencapai 64 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                          "type": "string",
                                          "required": false,
                                          "example": "Test"
                                      },
                                      "Value": {
                                          "title": "Nilai tag",
                                          "description": "Nilai tag. Maksimal 10 nilai tag didukung.\n\nPanjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.\n\n",
                                          "type": "string",
                                          "required": false,
                                          "example": "Test"
                                      }
                                  },
                                  "required": false
                              },
                              "required": false,
                              "example": "Instance"
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": " Struktur data yang dikembalikan.",
                              "type": "object",
                              "properties": {
                                  "MaxResults": {
                                      "title": "Jumlah catatan yang dikembalikan oleh kueri ini",
                                      "description": "Jumlah entri yang ditampilkan per halaman untuk kueri berhalaman.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "50"
                                  },
                                  "NextToken": {
                                      "title": "Pengidentifikasi kueri berhalaman",
                                      "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika **NextToken** kosong, tidak ada lagi kueri.\n- Jika **NextToken** memiliki nilai kembali, nilai ini menunjukkan token untuk memulai kueri berikutnya.",
                                      "type": "string",
                                      "example": "caeba0bbb2be03f8****"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "CEF72CEB-54B6-4AE8-B225-F876******"
                                  },
                                  "ServerGroups": {
                                      "title": "Grup server",
                                      "description": "Daftar grup server backend.",
                                      "type": "array",
                                      "items": {
                                          "description": "Daftar grup server backend.",
                                          "type": "object",
                                          "properties": {
                                              "HealthCheckConfig": {
                                                  "title": "Konfigurasi pemeriksaan kesehatan",
                                                  "description": "Konfigurasi pemeriksaan kesehatan.",
                                                  "type": "object",
                                                  "properties": {
                                                      "HealthCheckConnectPort": {
                                                          "title": "Port",
                                                          "description": "Port server backend untuk pemeriksaan kesehatan. Rentang nilainya adalah **0** hingga **65535**.\n\nNilai kembali **0** berarti port server backend digunakan untuk pemeriksaan kesehatan.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "80"
                                                      },
                                                      "HealthCheckEnabled": {
                                                          "title": "Apakah akan mengaktifkan pemeriksaan kesehatan",
                                                          "description": "Apakah akan mengaktifkan pemeriksaan kesehatan. Nilai yang valid:\n- **true**: Diaktifkan.\n- **false**: Dinonaktifkan.",
                                                          "type": "boolean",
                                                          "example": "true"
                                                      },
                                                      "HealthCheckHost": {
                                                          "title": "Nama domain",
                                                          "description": "Nama domain pemeriksaan kesehatan.\n\n- **Gunakan IP internal server backend** (default): Alamat IP internal server backend digunakan sebagai nama domain pemeriksaan kesehatan.\n\n- **Tentukan nama domain tertentu**: Masukkan nama domain.\n\n  - Panjangnya 1 hingga 80 karakter.\n\n  - Dapat berisi huruf kecil, angka, tanda hubung (-), dan titik (.).\n\n  - Harus berisi setidaknya satu titik (.), dan titik (.) tidak boleh muncul di awal atau akhir.\n\n  - Label domain paling kanan hanya dapat berisi huruf dan tidak boleh berisi angka atau tanda hubung (-).\n\n  - Tanda hubung (-) tidak boleh muncul di awal atau akhir.\n\n> \n> Parameter ini hanya efektif ketika HealthCheckProtocol diatur ke HTTP, HTTPS, atau gRPC.",
                                                          "type": "string",
                                                          "example": "www.example.com"
                                                      },
                                                      "HealthCheckCodes": {
                                                          "title": "Kode status",
                                                          "description": "Daftar kode status normal untuk pemeriksaan kesehatan.",
                                                          "type": "array",
                                                          "items": {
                                                              "description": "Kode status normal untuk pemeriksaan kesehatan.\n\n- Ketika **HealthCheckProtocol** adalah **HTTP** atau **HTTPS**, **HealthCheckCodes** dapat berupa **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, atau **http\\_5xx**. Beberapa kode status dipisahkan dengan koma (,).\n\n- Ketika **HealthCheckProtocol** adalah **gRPC**, rentang kode status **HealthCheckCodes** adalah **0 hingga 99**. Input rentang didukung, dengan maksimal 20 nilai rentang, dipisahkan dengan koma (,).\n\n> Parameter ini efektif ketika **HealthCheckProtocol** adalah **HTTP**, **HTTPS**, atau **gRPC**.",
                                                              "type": "string",
                                                              "example": "http_2xx"
                                                          }
                                                      },
                                                      "HealthCheckHttpVersion": {
                                                          "title": "Versi",
                                                          "description": "Versi protokol HTTP pemeriksaan kesehatan.\n\nNilai yang valid: **HTTP1.0** atau **HTTP1.1**.\n\n> Parameter ini hanya efektif ketika **HealthCheckProtocol** diatur ke **HTTP** atau **HTTPS**.",
                                                          "type": "string",
                                                          "example": "HTTP1.1"
                                                      },
                                                      "HealthCheckInterval": {
                                                          "title": "Waktu interval",
                                                          "description": "Interval waktu untuk pemeriksaan kesehatan. Satuan: detik. Rentang nilainya adalah **1** hingga **50**.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "5"
                                                      },
                                                      "HealthCheckMethod": {
                                                          "title": "Metode",
                                                          "description": "Metode pemeriksaan kesehatan. Nilai yang valid:\n\n- **GET**: Jika panjang pesan respons melebihi 8K, pesan akan dipotong, tetapi tidak akan memengaruhi penentuan hasil pemeriksaan kesehatan.\n\n- **POST**: Pemeriksaan kesehatan pendengar gRPC menggunakan metode POST secara default.\n\n- **HEAD**: Pemeriksaan kesehatan pendengar HTTP dan HTTPS menggunakan metode HEAD secara default.\n\n\n> Parameter ini hanya efektif ketika **HealthCheckProtocol** diatur ke **HTTP**, **HTTPS**, atau **gRPC**.",
                                                          "type": "string",
                                                          "example": "HEAD"
                                                      },
                                                      "HealthCheckPath": {
                                                          "title": "URI",
                                                          "description": "Jalur aturan pengalihan untuk pemeriksaan kesehatan.\n\n> Parameter ini hanya efektif ketika **HealthCheckProtocol** diatur ke **HTTP** atau **HTTPS**.",
                                                          "type": "string",
                                                          "example": "/test/index.html"
                                                      },
                                                      "HealthCheckProtocol": {
                                                          "title": "Protokol",
                                                          "description": "Protokol pemeriksaan kesehatan. Nilai yang valid:\n\n- **HTTP**: Memeriksa apakah aplikasi server sehat dengan mengirimkan permintaan HEAD atau GET untuk mensimulasikan akses browser.\n\n- **HTTPS**: Memeriksa apakah aplikasi server sehat dengan mengirimkan permintaan HEAD atau GET untuk mensimulasikan akses browser. (Data dienkripsi, yang lebih aman daripada HTTP.)\n\n- **TCP**: Mendeteksi apakah port server hidup dengan mengirimkan pesan jabat tangan SYN.\n\n- **gRPC**: Memeriksa apakah aplikasi server sehat dengan mengirimkan permintaan POST atau GET.",
                                                          "type": "string",
                                                          "example": "HTTP"
                                                      },
                                                      "HealthCheckTimeout": {
                                                          "title": "Waktu habis",
                                                          "description": "Waktu untuk menunggu respons dari pemeriksaan kesehatan. Jika server backend tidak merespons dengan benar dalam waktu yang ditentukan, pemeriksaan kesehatan dianggap gagal. Satuan: detik.\n\n",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "3"
                                                      },
                                                      "HealthyThreshold": {
                                                          "title": "Ambang Batas Sehat",
                                                          "description": "Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server backend dari **gagal** menjadi **berhasil**.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "4"
                                                      },
                                                      "UnhealthyThreshold": {
                                                          "title": "Ambang Tidak Sehat",
                                                          "description": "Jumlah pemeriksaan kesehatan gagal berturut-turut yang diperlukan untuk mengubah status pemeriksaan kesehatan server backend dari **berhasil** menjadi **gagal**.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "4"
                                                      }
                                                  }
                                              },
                                              "Protocol": {
                                                  "title": "Protokol grup server",
                                                  "description": "Jenis protokol backend. Nilai yang valid:\n\n- **HTTP**: Mendukung asosiasi dengan pendengar HTTPS, HTTP, dan QUIC.\n- **HTTPS**: Mendukung asosiasi dengan pendengar HTTPS.\n\n- **GRPC**: Berasosiasi dengan pendengar HTTPS dan QUIC.\n",
                                                  "type": "string",
                                                  "example": "HTTP"
                                              },
                                              "RelatedLoadBalancerIds": {
                                                  "title": "ID instans terkait",
                                                  "description": "ID instans terkait",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "ID instans load balancer terkait",
                                                      "type": "string",
                                                      "example": "alb-n5qw04uq8savfe****"
                                                  }
                                              },
                                              "ResourceGroupId": {
                                                  "title": "ID kelompok sumber daya",
                                                  "description": "ID kelompok sumber daya.",
                                                  "type": "string",
                                                  "example": "rg-atstuj3rtop****"
                                              },
                                              "Scheduler": {
                                                  "title": "Kebijakan penjadwalan",
                                                  "description": "Algoritma penjadwalan. Nilai yang valid:\n\n- **Wrr**: Round-robin berbobot. Server backend dengan bobot lebih tinggi lebih mungkin untuk dijajaki.\n- **Wlc**: Koneksi terkecil berbobot. Selain penjajakan berdasarkan bobot yang ditetapkan untuk setiap server backend, beban aktual (jumlah koneksi) dari server backend juga dipertimbangkan. Ketika bobotnya sama, server backend dengan jumlah koneksi saat ini yang lebih kecil lebih mungkin untuk dijajaki.\n- **Sch**: Hashing konsisten. Permintaan dengan hasil perhitungan faktor hash yang sama akan dijadwalkan ke server backend yang sama. Ketika parameter UchConfig tidak dikonfigurasi, faktor hash default adalah IP sumber, dan permintaan dari alamat IP sumber yang sama akan didistribusikan ke server backend yang sama. Ketika parameter UchConfig dikonfigurasi, faktor hash adalah parameter URL, dan permintaan dengan parameter URL yang sama akan didistribusikan ke server backend yang sama.",
                                                  "type": "string",
                                                  "example": "Wrr"
                                              },
                                              "ServerGroupId": {
                                                  "title": "ID grup server",
                                                  "description": "ID grup server.",
                                                  "type": "string",
                                                  "example": "sgp-cige6j****"
                                              },
                                              "ServerGroupName": {
                                                  "title": "Nama grup server",
                                                  "description": "Nama grup server.",
                                                  "type": "string",
                                                  "example": "Group3"
                                              },
                                              "ServerGroupStatus": {
                                                  "title": "Status grup server",
                                                  "description": "Status grup server. Nilai yang valid:\n- **Creating**: Membuat.\n\n- **Available**: Tersedia.\n\n- **Configuring**: Mengubah.",
                                                  "type": "string",
                                                  "example": "Available"
                                              },
                                              "ServerGroupType": {
                                                  "title": "Jenis grup server",
                                                  "description": "Jenis grup server. Nilai yang valid:\n\n- **Instance**: Jenis server, termasuk instans ECS, ENI, dan ECI.\n\n- **Ip**: Jenis IP.\n\n- **Fc**: Jenis Function Compute.",
                                                  "type": "string",
                                                  "example": "Instance"
                                              },
                                              "StickySessionConfig": {
                                                  "title": "Konfigurasi persistensi sesi",
                                                  "description": "Struktur konfigurasi persistensi sesi.",
                                                  "type": "object",
                                                  "properties": {
                                                      "Cookie": {
                                                          "title": "Cookie",
                                                          "description": "Cookie yang dikonfigurasi di server.",
                                                          "type": "string",
                                                          "example": "B490B5EBF6F3CD402E515D22BCDA****"
                                                      },
                                                      "CookieTimeout": {
                                                          "title": "Waktu habis cookie",
                                                          "description": "Waktu habis cookie. Satuan: detik. Rentang nilainya adalah **1** hingga **86400**.\n\n> Parameter ini efektif ketika **StickySessionEnabled** adalah **true** dan **StickySessionType** adalah **Insert**.\n\n\n\n",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "1000"
                                                      },
                                                      "StickySessionEnabled": {
                                                          "title": "Apakah akan mengaktifkan persistensi sesi",
                                                          "description": "Apakah akan mengaktifkan persistensi sesi. Nilai yang valid:\n\n- **true**: Diaktifkan.\n- **false**: Dinonaktifkan.\n",
                                                          "type": "boolean",
                                                          "example": "false"
                                                      },
                                                      "StickySessionType": {
                                                          "title": "Jenis persistensi sesi",
                                                          "description": "Metode penanganan cookie. Nilai yang valid:\n\n- **Insert**: Sisipkan cookie.\nKetika klien mengunjungi untuk pertama kalinya, load balancer menyisipkan cookie (yaitu, menyisipkan SERVERID ke dalam pesan respons HTTP atau HTTPS). Lain kali klien mengunjungi dengan cookie ini, layanan SLB akan meneruskan permintaan ke server backend yang direkam sebelumnya.\n- **Server**: Tulis ulang cookie.\nKetika load balancer menemukan bahwa pengguna telah menyesuaikan cookie, ia akan menulis ulang cookie asli. Lain kali klien mengunjungi dengan cookie baru, layanan SLB akan meneruskan permintaan ke server backend yang direkam sebelumnya.",
                                                          "type": "string",
                                                          "example": "Insert"
                                                      }
                                                  }
                                              },
                                              "VpcId": {
                                                  "title": "ID VPC tempat grup server berada",
                                                  "description": "ID instans VPC.",
                                                  "type": "string",
                                                  "example": "vpc-bp15zckdt37pq72zv****"
                                              },
                                              "Tags": {
                                                  "title": "Daftar tag",
                                                  "description": "Daftar tag yang terikat pada grup server.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Daftar tag yang terikat pada grup server.",
                                                      "type": "object",
                                                      "properties": {
                                                          "Key": {
                                                              "title": "Kunci tag",
                                                              "description": "Kunci tag.",
                                                              "type": "string",
                                                              "example": "Test"
                                                          },
                                                          "Value": {
                                                              "title": "Nilai tag",
                                                              "description": "Nilai tag.",
                                                              "type": "string",
                                                              "example": "Test"
                                                          }
                                                      }
                                                  }
                                              },
                                              "ConfigManagedEnabled": {
                                                  "title": "Apakah akan mengaktifkan manajemen konfigurasi",
                                                  "description": "Apakah akan mengaktifkan manajemen konfigurasi. Nilai yang valid:\n- **true**: Diaktifkan.\n- **false**: Dinonaktifkan.",
                                                  "type": "boolean",
                                                  "example": "false"
                                              },
                                              "UpstreamKeepaliveEnabled": {
                                                  "title": "Apakah akan mengaktifkan koneksi persisten backend",
                                                  "description": "Apakah akan mengaktifkan koneksi persisten backend. Nilai yang valid:\n- **true**: Diaktifkan.\n- **false**: Dinonaktifkan.",
                                                  "type": "boolean",
                                                  "example": "false"
                                              },
                                              "Ipv6Enabled": {
                                                  "title": "Apakah akan mendukung IPv6",
                                                  "description": "Apakah akan mendukung IPv6. Nilai yang valid:\n- **true**: Didukung.\n- **false**: Tidak didukung.",
                                                  "type": "boolean",
                                                  "example": "false"
                                              },
                                              "ServerCount": {
                                                  "title": "Jumlah server di grup server",
                                                  "description": "Jumlah server di grup server.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "1"
                                              },
                                              "ServiceName": {
                                                  "title": "Nama server",
                                                  "description": "Nama layanan.",
                                                  "type": "string",
                                                  "example": "test"
                                              },
                                              "UchConfig": {
                                                  "title": "Konfigurasi parameter hash konsisten URL",
                                                  "description": "Konfigurasi parameter hash konsisten URL.",
                                                  "type": "object",
                                                  "properties": {
                                                      "Type": {
                                                          "title": "Jenis parameter",
                                                          "description": "Jenis parameter. Hanya bisa QueryString.",
                                                          "type": "string",
                                                          "example": "QueryString"
                                                      },
                                                      "Value": {
                                                          "title": "Nilai parameter hash konsisten",
                                                          "description": "Nilai parameter hash konsisten.",
                                                          "type": "string",
                                                          "example": "abc"
                                                      }
                                                  }
                                              },
                                              "CreateTime": {
                                                  "description": "Waktu sumber daya dibuat.",
                                                  "type": "string",
                                                  "example": "2022-07-02T02:49:05Z"
                                              },
                                              "ConnectionDrainConfig": {
                                                  "description": "Konfigurasi terkait dengan pengurasan koneksi.\n\nSetelah mengaktifkan pengurasan koneksi, ketika server backend dihapus atau pemeriksaan kesehatan gagal, load balancer memungkinkan koneksi yang ada untuk mentransmisikan secara normal untuk jangka waktu tertentu.\n>\n> - Instans Edisi Dasar tidak mendukung pengaktifan pengurasan koneksi. Hanya instans Edisi Standar dan Edisi yang diaktifkan WAF yang mendukungnya.\n> - Grup server jenis server dan jenis IP mendukung pengurasan koneksi. Jenis Function Compute tidak.\n",
                                                  "type": "object",
                                                  "properties": {
                                                      "ConnectionDrainEnabled": {
                                                          "description": "Apakah akan mengaktifkan pengurasan koneksi.\n\n- **true**: Diaktifkan\n- **false**: Dinonaktifkan",
                                                          "type": "boolean",
                                                          "example": "false"
                                                      },
                                                      "ConnectionDrainTimeout": {
                                                          "description": "Waktu habis pengurasan koneksi.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "300"
                                                      }
                                                  }
                                              },
                                              "SlowStartConfig": {
                                                  "title": "Konfigurasi mulai lambat",
                                                  "description": "Konfigurasi terkait dengan mulai lambat.\n\nSetelah mengaktifkan mulai lambat, server backend yang baru ditambahkan ke grup server backend akan dipanaskan untuk periode waktu yang ditentukan, dan jumlah permintaan yang diteruskan ke server tersebut akan meningkat secara linear.\n>\n> - Instans Edisi Dasar tidak mendukung pengaktifan mulai lambat. Hanya instans Edisi Standar dan Edisi yang diaktifkan WAF yang mendukungnya.\n> - Grup server jenis server dan jenis IP mendukung konfigurasi mulai lambat. Jenis Function Compute tidak.\n> - Mulai lambat hanya dapat diaktifkan ketika algoritma penjadwalan backend adalah round-robin berbobot.",
                                                  "type": "object",
                                                  "properties": {
                                                      "SlowStartEnabled": {
                                                          "description": "Apakah akan mengaktifkan mulai lambat.\n\n- **true**: Diaktifkan\n- **false**: Dinonaktifkan",
                                                          "type": "boolean",
                                                          "example": "false"
                                                      },
                                                      "SlowStartDuration": {
                                                          "description": "Durasi mulai lambat.",
                                                          "type": "integer",
                                                          "format": "int32",
                                                          "example": "30"
                                                      }
                                                  }
                                              },
                                              "CrossZoneEnabled": {
                                                  "description": "Apakah grup server mengaktifkan penyeimbangan beban lintas zona. Nilai yang valid:\n\n- **true**: Diaktifkan (default)\n\n- **false**: Dinonaktifkan",
                                                  "type": "boolean",
                                                  "example": "true"
                                              }
                                          }
                                      }
                                  },
                                  "TotalCount": {
                                      "title": "Total catatan",
                                      "description": "Jumlah entri daftar.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "1000"
                                  }
                              }
                          }
                      }
                  },
                  "eventInfo": {
                      "enable": false,
                      "eventNames": []
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"MaxResults\\\": 50,\\n  \\\"NextToken\\\": \\\"caeba0bbb2be03f8****\\\",\\n  \\\"RequestId\\\": \\\"CEF72CEB-54B6-4AE8-B225-F876******\\\",\\n  \\\"ServerGroups\\\": [\\n    {\\n      \\\"HealthCheckConfig\\\": {\\n        \\\"HealthCheckConnectPort\\\": 80,\\n        \\\"HealthCheckEnabled\\\": true,\\n        \\\"HealthCheckHost\\\": \\\"www.example.com\\\",\\n        \\\"HealthCheckCodes\\\": [\\n          \\\"http_2xx\\\"\\n        ],\\n        \\\"HealthCheckHttpVersion\\\": \\\"HTTP1.1\\\",\\n        \\\"HealthCheckInterval\\\": 5,\\n        \\\"HealthCheckMethod\\\": \\\"HEAD\\\",\\n        \\\"HealthCheckPath\\\": \\\"/test/index.html\\\",\\n        \\\"HealthCheckProtocol\\\": \\\"HTTP\\\",\\n        \\\"HealthCheckTimeout\\\": 3,\\n        \\\"HealthyThreshold\\\": 4,\\n        \\\"UnhealthyThreshold\\\": 4\\n      },\\n      \\\"Protocol\\\": \\\"HTTP\\\",\\n      \\\"RelatedLoadBalancerIds\\\": [\\n        \\\"alb-n5qw04uq8savfe****\\\"\\n      ],\\n      \\\"ResourceGroupId\\\": \\\"rg-atstuj3rtop****\\\",\\n      \\\"Scheduler\\\": \\\"Wrr\\\",\\n      \\\"ServerGroupId\\\": \\\"sgp-cige6j****\\\",\\n      \\\"ServerGroupName\\\": \\\"Group3\\\",\\n      \\\"ServerGroupStatus\\\": \\\"Available\\\",\\n      \\\"ServerGroupType\\\": \\\"Instance\\\",\\n      \\\"StickySessionConfig\\\": {\\n        \\\"Cookie\\\": \\\"B490B5EBF6F3CD402E515D22BCDA****\\\",\\n        \\\"CookieTimeout\\\": 1000,\\n        \\\"StickySessionEnabled\\\": false,\\n        \\\"StickySessionType\\\": \\\"Insert\\\"\\n      },\\n      \\\"VpcId\\\": \\\"vpc-bp15zckdt37pq72zv****\\\",\\n      \\\"Tags\\\": [\\n        {\\n          \\\"Key\\\": \\\"Test\\\",\\n          \\\"Value\\\": \\\"Test\\\"\\n        }\\n      ],\\n      \\\"ConfigManagedEnabled\\\": false,\\n      \\\"UpstreamKeepaliveEnabled\\\": false,\\n      \\\"Ipv6Enabled\\\": false,\\n      \\\"ServerCount\\\": 1,\\n      \\\"ServiceName\\\": \\\"test\\\",\\n      \\\"UchConfig\\\": {\\n        \\\"Type\\\": \\\"QueryString\\\",\\n        \\\"Value\\\": \\\"abc\\\"\\n      },\\n      \\\"CreateTime\\\": \\\"2022-07-02T02:49:05Z\\\",\\n      \\\"ConnectionDrainConfig\\\": {\\n        \\\"ConnectionDrainEnabled\\\": false,\\n        \\\"ConnectionDrainTimeout\\\": 300\\n      },\\n      \\\"SlowStartConfig\\\": {\\n        \\\"SlowStartEnabled\\\": false,\\n        \\\"SlowStartDuration\\\": 30\\n      },\\n      \\\"CrossZoneEnabled\\\": true\\n    }\\n  ],\\n  \\\"TotalCount\\\": 1000\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<ListServerGroupsResponse>\\n    <MaxResults>50</MaxResults>\\n    <NextToken>caeba0bbb2be03f8****</NextToken>\\n    <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n    <ServerGroups>\\n        <HealthCheckConfig>\\n            <HealthCheckConnectPort>80</HealthCheckConnectPort>\\n            <HealthCheckEnabled>true</HealthCheckEnabled>\\n            <HealthCheckHost>www.example.com</HealthCheckHost>\\n            <HealthCheckCodes>http_2xx</HealthCheckCodes>\\n            <HealthCheckHttpVersion>HTTP1.1</HealthCheckHttpVersion>\\n            <HealthCheckInterval>5</HealthCheckInterval>\\n            <HealthCheckMethod>HEAD</HealthCheckMethod>\\n            <HealthCheckPath>/test/index.html</HealthCheckPath>\\n            <HealthCheckProtocol>HTTP</HealthCheckProtocol>\\n            <HealthCheckTimeout>3</HealthCheckTimeout>\\n            <HealthyThreshold>4</HealthyThreshold>\\n            <UnhealthyThreshold>4</UnhealthyThreshold>\\n        </HealthCheckConfig>\\n        <Protocol>HTTP</Protocol>\\n        <ResourceGroupId>rg-atstuj3rtop****</ResourceGroupId>\\n        <Scheduler>Wrr</Scheduler>\\n        <ServerGroupId>sgp-cige6j****</ServerGroupId>\\n        <ServerGroupName>Group3</ServerGroupName>\\n        <ServerGroupStatus>Available</ServerGroupStatus>\\n        <ServerGroupType>Instance</ServerGroupType>\\n        <StickySessionConfig>\\n            <Cookie>B490B5EBF6F3CD402E515D22BCDA****</Cookie>\\n            <CookieTimeout>1000</CookieTimeout>\\n            <StickySessionEnabled>false</StickySessionEnabled>\\n            <StickySessionType>Insert</StickySessionType>\\n        </StickySessionConfig>\\n        <VpcId>vpc-bp15zckdt37pq72zv****</VpcId>\\n        <Tags>\\n            <Key>Test</Key>\\n            <Value>Test</Value>\\n        </Tags>\\n        <ConfigManagedEnabled>false</ConfigManagedEnabled>\\n        <UpstreamKeepaliveEnabled>false</UpstreamKeepaliveEnabled>\\n        <Ipv6Enabled>false</Ipv6Enabled>\\n        <ServerCount>1</ServerCount>\\n        <ServiceName>test</ServiceName>\\n        <CreateTime>2023-03-21T07:43:10Z</CreateTime>\\n    </ServerGroups>\\n    <TotalCount>1000</TotalCount>\\n</ListServerGroupsResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri grup server"
              },
              "ListServerGroupServers": {
                  "summary": "Mengkueri server dalam grup server.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "riskType": "none",
                      "chargeType": "free",
                      "abilityTreeCode": "167",
                      "abilityTreeNodes": [
                          "FEATUREslbULKWF1"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "NextToken",
                          "in": "query",
                          "schema": {
                              "title": "Pengidentifikasi kueri berhalaman",
                              "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika ini adalah kueri pertama Anda atau tidak ada lagi kueri, Anda tidak perlu mengisi ini.\n- Jika ada kueri berikutnya, atur ke nilai **NextToken** dari panggilan API sebelumnya.",
                              "type": "string",
                              "required": false,
                              "example": "FFmyTO70tTpLG6I3FmYAXG****"
                          }
                      },
                      {
                          "name": "MaxResults",
                          "in": "query",
                          "schema": {
                              "title": "Kuantitas kueri",
                              "description": "Jumlah maksimum catatan data yang akan dibaca kali ini. Rentang nilainya adalah **1** hingga **100**. Jika parameter kosong, nilai defaultnya adalah **20**.",
                              "type": "integer",
                              "format": "int32",
                              "required": false,
                              "maximum": "1000",
                              "minimum": "1",
                              "example": "50",
                              "default": "20"
                          }
                      },
                      {
                          "name": "ServerGroupId",
                          "in": "query",
                          "schema": {
                              "title": "ID grup server",
                              "description": "ID grup server.",
                              "type": "string",
                              "required": false,
                              "example": "sgp-cb25e2i2vr******"
                          }
                      },
                      {
                          "name": "ServerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID server",
                              "description": "Daftar ID server.",
                              "type": "array",
                              "items": {
                                  "title": "ID Server",
                                  "description": "ID server. Satu panggilan dapat menampilkan hingga 40 server.\n\n- Ketika grup server berjenis **Instance**, parameter ini adalah ID sumber daya ECS, ENI, atau ECI.\n- Ketika grup server berjenis **Ip**, parameter ini adalah alamat IP.\n- Ketika grup server berjenis **Fc**, parameter ini adalah pengidentifikasi ARN dari Function Compute.\n\n",
                                  "type": "string",
                                  "required": false,
                                  "example": "i-bp1e0u8f10by57wl****"
                              },
                              "required": false,
                              "maxItems": 20,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "Tag",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar tag yang terikat pada grup server",
                              "description": "Daftar tag yang terikat pada grup server. Maksimal 10 tag didukung dalam daftar tag yang terikat dalam satu permintaan.",
                              "type": "array",
                              "items": {
                                  "title": "Tag yang terikat pada grup server",
                                  "description": "Daftar tag yang terikat pada grup server. Maksimal 10 tag didukung dalam daftar tag yang terikat dalam satu permintaan.",
                                  "type": "object",
                                  "properties": {
                                      "Key": {
                                          "title": "Kunci tag",
                                          "description": "Kunci tag. Maksimal 10 kunci tag didukung.\n\nPanjangnya bisa mencapai 64 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                          "type": "string",
                                          "required": false,
                                          "example": "Test"
                                      },
                                      "Value": {
                                          "title": "Nilai tag",
                                          "description": "Nilai tag. Maksimal 10 nilai tag didukung.\n\nPanjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan `aliyun` atau `acs:`. Tidak boleh berisi `http://` atau `https://`.",
                                          "type": "string",
                                          "required": false,
                                          "example": "Test"
                                      }
                                  },
                                  "required": false
                              },
                              "required": false
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Struktur data yang dikembalikan.",
                              "type": "object",
                              "properties": {
                                  "MaxResults": {
                                      "title": "Jumlah catatan yang dikembalikan oleh kueri ini",
                                      "description": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "50"
                                  },
                                  "NextToken": {
                                      "title": "Pengidentifikasi kueri berhalaman",
                                      "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika **NextToken** kosong, tidak ada lagi kueri.\n- Jika **NextToken** memiliki nilai kembali, nilai ini menunjukkan token untuk memulai kueri berikutnya.",
                                      "type": "string",
                                      "example": "caeba0bbb2be03f8****"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "CEF72CEB-54B6-4AE8-B225-F876FF*****"
                                  },
                                  "Servers": {
                                      "title": "Daftar server backend",
                                      "description": "Daftar server.",
                                      "type": "array",
                                      "items": {
                                          "title": "Server backend",
                                          "description": "Struktur deskripsi server backend.",
                                          "type": "object",
                                          "properties": {
                                              "Description": {
                                                  "title": "Informasi deskripsi",
                                                  "description": "Deskripsi server backend.",
                                                  "type": "string",
                                                  "example": "test"
                                              },
                                              "Port": {
                                                  "title": "Port",
                                                  "description": "Port yang digunakan oleh server backend. Rentang nilainya adalah **1** hingga **65535**.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "80"
                                              },
                                              "ServerId": {
                                                  "title": "ID Server",
                                                  "description": "ID server backend.\n\n>Ketika **ServerType** adalah **Fc**, **ServerId** adalah pengidentifikasi ARN dari Function Compute.",
                                                  "type": "string",
                                                  "example": "i-bp1f9kdprbgy9uiu****"
                                              },
                                              "ServerIp": {
                                                  "title": "IP Server",
                                                  "description": "Alamat IP yang ditentukan.",
                                                  "type": "string",
                                                  "example": "192.168.XX.XX"
                                              },
                                              "ServerType": {
                                                  "title": "Jenis server backend",
                                                  "description": "Jenis server backend.",
                                                  "type": "string",
                                                  "example": "Ecs"
                                              },
                                              "Status": {
                                                  "title": "Status",
                                                  "description": "Status tambahan dari server backend. Nilai yang valid:\n\n- **Adding**: Menambahkan.\n- **Available**: Status tersedia normal.\n- **Configuring**: Mengonfigurasi.\n- **Removing**: Menghapus.",
                                                  "type": "string",
                                                  "example": "Available"
                                              },
                                              "Weight": {
                                                  "title": "Bobot",
                                                  "description": "Bobot server backend. Server dengan bobot lebih tinggi akan dialokasikan lebih banyak permintaan akses.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "100"
                                              },
                                              "ServerGroupId": {
                                                  "title": "ID grup server",
                                                  "description": "ID grup server.",
                                                  "type": "string",
                                                  "example": "sgp-qy042e1jabmprh****"
                                              },
                                              "RemoteIpEnabled": {
                                                  "title": "Apakah itu IP jarak jauh",
                                                  "description": "Apakah akan mengaktifkan IP jarak jauh. Nilai yang valid:\n \n- **true**: Ya.\n- **false**: Tidak.",
                                                  "type": "boolean",
                                                  "example": "true"
                                              }
                                          }
                                      }
                                  },
                                  "TotalCount": {
                                      "title": "Total catatan",
                                      "description": "Jumlah total data di bawah kondisi permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "3"
                                  }
                              }
                          }
                      }
                  },
                  "errorCodes": {
                      "403": [
                          {
                              "errorCode": "Forbidden.ServerGroup",
                              "errorMessage": "Autentikasi telah gagal untuk ServerGroup."
                          }
                      ]
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"MaxResults\\\": 50,\\n  \\\"NextToken\\\": \\\"caeba0bbb2be03f8****\\\",\\n  \\\"RequestId\\\": \\\"CEF72CEB-54B6-4AE8-B225-F876FF*****\\\",\\n  \\\"Servers\\\": [\\n    {\\n      \\\"Description\\\": \\\"test\\\",\\n      \\\"Port\\\": 80,\\n      \\\"ServerId\\\": \\\"i-bp1f9kdprbgy9uiu****\\\",\\n      \\\"ServerIp\\\": \\\"192.168.XX.XX\\\",\\n      \\\"ServerType\\\": \\\"Ecs\\\",\\n      \\\"Status\\\": \\\"Available\\\",\\n      \\\"Weight\\\": 100,\\n      \\\"ServerGroupId\\\": \\\"sgp-qy042e1jabmprh****\\\",\\n      \\\"RemoteIpEnabled\\\": true\\n    }\\n  ],\\n  \\\"TotalCount\\\": 3\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<ListServerGroupServersResponse>\\n    <MaxResults>50</MaxResults>\\n    <NextToken>caeba0bbb2be03f8****</NextToken>\\n    <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n    <Servers>\\n        <Description>test</Description>\\n        <Port>80</Port>\\n        <ServerId>i-bp1f9kdprbgy9uiu****</ServerId>\\n        <ServerIp>192.168.XX.XX</ServerIp>\\n        <ServerType>Ecs</ServerType>\\n        <Status>Available</Status>\\n        <Weight>100</Weight>\\n        <ServerGroupId>sgp-qy042e1jabmprh****</ServerGroupId>\\n        <RemoteIpEnabled>true</RemoteIpEnabled>\\n    </Servers>\\n    <TotalCount>3</TotalCount>\\n</ListServerGroupServersResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri server"
              },
              "ListRules": {
                  "summary": "Mengkueri aturan pengalihan di wilayah tertentu.",
                  "methods": [
                      "get",
                      "post"
                  ],
                  "schemes": [
                      "http",
                      "https"
                  ],
                  "security": [
                      {
                          "AK": []
                      }
                  ],
                  "operationType": "read",
                  "deprecated": false,
                  "systemTags": {
                      "operationType": "get",
                      "riskType": "none",
                      "chargeType": "free",
                      "abilityTreeNodes": [
                          "FEATUREslbM7ALO6"
                      ]
                  },
                  "parameters": [
                      {
                          "name": "NextToken",
                          "in": "query",
                          "schema": {
                              "title": "Menandai posisi awal saat ini untuk membaca. Biarkan kosong untuk memulai dari awal.",
                              "description": "Token untuk kueri berikutnya. Nilai yang valid:\n\n- Jika ini adalah kueri pertama Anda atau tidak ada lagi kueri, Anda tidak perlu mengisi ini.\n\n- Jika ada kueri berikutnya, atur ke nilai **NextToken** dari panggilan API sebelumnya.",
                              "type": "string",
                              "required": false,
                              "example": "FFmyTO70tTpLG6I3FmYAXGKPd****"
                          }
                      },
                      {
                          "name": "MaxResults",
                          "in": "query",
                          "schema": {
                              "title": "Jumlah maksimum catatan data yang akan dibaca kali ini. Parameter ini opsional. Nilainya adalah 1-100. Jika pengguna tidak memberikan nilai, defaultnya adalah 20.",
                              "description": "Jumlah maksimum catatan data yang akan dibaca.\n\nNilainya adalah **1 hingga 100**.\n\nNilai defaultnya adalah **20**, yang berarti pengguna tidak memasukkan data.\n\n> Parameter ini opsional.",
                              "type": "integer",
                              "format": "int32",
                              "required": false,
                              "example": "20"
                          }
                      },
                      {
                          "name": "RuleIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID aturan pengalihan, N mendukung maksimal 20",
                              "description": "Daftar aturan pengalihan. Maksimal 20 aturan pengalihan dapat dikueri sekaligus.",
                              "type": "array",
                              "items": {
                                  "description": "ID aturan pengalihan.",
                                  "type": "string",
                                  "required": false,
                                  "example": "rule-sada******"
                              },
                              "required": false,
                              "maxItems": 20,
                              "minItems": 1
                          }
                      },
                      {
                          "name": "ListenerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID pendengar",
                              "description": "Daftar ID pendengar. Maksimal 20 pendengar dapat dikueri sekaligus.",
                              "type": "array",
                              "items": {
                                  "description": "ID pendengar.",
                                  "type": "string",
                                  "required": false,
                                  "example": "lsn-i35udpz3pxsmnf****"
                              },
                              "required": false,
                              "maxItems": 20
                          }
                      },
                      {
                          "name": "LoadBalancerIds",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "title": "Daftar ID instans",
                              "description": "Daftar ID instans load balancer. Maksimal 20 instans dapat dikueri sekaligus.",
                              "type": "array",
                              "items": {
                                  "description": "ID instans load balancer.",
                                  "type": "string",
                                  "required": false,
                                  "example": "alb-x30o38azsuj0sx****"
                              },
                              "required": false,
                              "maxItems": 20
                          }
                      },
                      {
                          "name": "Direction",
                          "in": "query",
                          "schema": {
                              "title": "Arah aturan pengalihan",
                              "description": "Arah aturan pengalihan. Nilai yang valid:\n\n- **Request** (default): Jenis permintaan. Ini mencocokkan kondisi pada pesan yang dikirim dari klien ke ALB dan melakukan tindakan yang sesuai.\n\n- **Response**: Jenis respons. Ini mencocokkan kondisi pada pesan yang dikembalikan dari grup server backend ke ALB dan melakukan tindakan yang sesuai.\n\n>Instans ALB Edisi Dasar tidak mendukung jenis Respons.",
                              "type": "string",
                              "required": false,
                              "example": "Request"
                          }
                      },
                      {
                          "name": "Tag",
                          "in": "query",
                          "style": "flat",
                          "schema": {
                              "description": "Tag.",
                              "type": "array",
                              "items": {
                                  "description": "Struktur tag.",
                                  "type": "object",
                                  "properties": {
                                      "Key": {
                                          "description": "Kunci tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                          "type": "string",
                                          "required": false,
                                          "example": "env"
                                      },
                                      "Value": {
                                          "description": "Nilai tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                          "type": "string",
                                          "required": false,
                                          "example": "product"
                                      }
                                  },
                                  "required": false
                              },
                              "required": false,
                              "maxItems": 20
                          }
                      }
                  ],
                  "responses": {
                      "200": {
                          "schema": {
                              "title": "Skema Respons",
                              "description": "Aturan pengalihan.",
                              "type": "object",
                              "properties": {
                                  "MaxResults": {
                                      "title": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "description": "Jumlah maksimum catatan yang dikembalikan untuk permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "50"
                                  },
                                  "NextToken": {
                                      "title": "Menunjukkan posisi di mana panggilan saat ini kembali untuk membaca. Kosong berarti data telah dibaca.",
                                      "description": "Token untuk kueri berikutnya. Nilai yang valid:\n- Jika **NextToken** kosong, tidak ada lagi kueri.\n- Jika **NextToken** memiliki nilai kembali, nilai ini menunjukkan token untuk memulai kueri berikutnya.",
                                      "type": "string",
                                      "example": "FFmyTO70tTpLG6I3FmYAXGKPd****"
                                  },
                                  "RequestId": {
                                      "title": "Id permintaan",
                                      "description": "ID permintaan.",
                                      "type": "string",
                                      "example": "CEF72CEB-54B6-4AE8-B225-F876F******"
                                  },
                                  "Rules": {
                                      "title": "Daftar aturan pengalihan",
                                      "description": "Daftar aturan pengalihan.",
                                      "type": "array",
                                      "items": {
                                          "description": "Struktur aturan pengalihan.",
                                          "type": "object",
                                          "properties": {
                                              "ListenerId": {
                                                  "title": "ID Pendengar",
                                                  "description": "ID pendengar tempat aturan pengalihan berada.",
                                                  "type": "string",
                                                  "example": "lsn-i35udpz3pxsmnf****"
                                              },
                                              "LoadBalancerId": {
                                                  "title": "ID Instans",
                                                  "description": "ID instans load balancer tempat aturan pengalihan berada.",
                                                  "type": "string",
                                                  "example": "alb-x30o38azsuj0sx****"
                                              },
                                              "Priority": {
                                                  "title": "Prioritas aturan pengalihan",
                                                  "description": "Prioritas aturan. Nilainya adalah **1 hingga 10000**. Nilai yang lebih kecil menunjukkan prioritas yang lebih tinggi.\n\n> Prioritas aturan harus unik dalam pendengar yang sama.",
                                                  "type": "integer",
                                                  "format": "int32",
                                                  "example": "1"
                                              },
                                              "RuleActions": {
                                                  "title": "Aksi aturan pengalihan",
                                                  "description": "Daftar aksi aturan pengalihan.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur aksi aturan pengalihan.",
                                                      "type": "object",
                                                      "properties": {
                                                          "FixedResponseConfig": {
                                                              "title": "Konfigurasi aksi respons konten tetap",
                                                              "description": "Konfigurasi konten respons tetap.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Content": {
                                                                      "title": "Konten",
                                                                      "description": "Konten tetap yang akan dikembalikan. Maksimal 1 KB byte, hanya mendukung karakter ASCII.",
                                                                      "type": "string",
                                                                      "example": "dssacav"
                                                                  },
                                                                  "ContentType": {
                                                                      "title": "Tipe konten",
                                                                      "description": "Format konten tetap yang dikembalikan.\n\nNilai yang valid: **text/plain**, **text/css**, **text/html**, **application/javascript**, atau **application/json**.",
                                                                      "type": "string",
                                                                      "example": "text/plain"
                                                                  },
                                                                  "HttpCode": {
                                                                      "title": "Kode respons HTTP",
                                                                      "description": "Kode respons HTTP yang akan dikembalikan. Hanya mendukung string numerik **HTTP_2xx**, **HTTP_4xx**, dan **HTTP_5xx**, di mana **x** adalah digit apa pun.",
                                                                      "type": "string",
                                                                      "example": "HTTP_2xx"
                                                                  }
                                                              }
                                                          },
                                                          "ForwardGroupConfig": {
                                                              "title": "Konfigurasi aksi grup pengalihan",
                                                              "description": "Konfigurasi grup pengalihan.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "ServerGroupTuples": {
                                                                      "title": "Daftar grup server tujuan untuk dialihkan",
                                                                      "description": "Daftar grup server tujuan untuk dialihkan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Daftar grup server tujuan untuk dialihkan.",
                                                                          "type": "object",
                                                                          "properties": {
                                                                              "ServerGroupId": {
                                                                                  "title": "Identitas grup server",
                                                                                  "description": "ID grup server tujuan untuk dialihkan.",
                                                                                  "type": "string",
                                                                                  "example": "sgp-atstuj3rtoptyui****"
                                                                              },
                                                                              "Weight": {
                                                                                  "title": "Ketika jumlah ServerGroupTuple.N lebih besar dari 1, bobot setiap grup server dapat dikonfigurasi",
                                                                                  "description": "Bobot. Rentang nilainya adalah **0** hingga **100**.",
                                                                                  "type": "integer",
                                                                                  "format": "int32",
                                                                                  "example": "2"
                                                                              }
                                                                          }
                                                                      }
                                                                  },
                                                                  "ServerGroupStickySession": {
                                                                      "title": "Konfigurasi persistensi sesi antar grup server",
                                                                      "description": "Konfigurasi persistensi sesi antar grup server",
                                                                      "type": "object",
                                                                      "properties": {
                                                                          "Enabled": {
                                                                              "title": "Ketika jumlah ServerGroupTuple.N lebih besar dari 1, opsional apakah akan mengaktifkan persistensi sesi antar grup server",
                                                                              "description": "Ketika jumlah ServerGroupTuple.N lebih besar dari 1, opsional apakah akan mengaktifkan persistensi sesi antar grup server",
                                                                              "type": "boolean"
                                                                          },
                                                                          "Timeout": {
                                                                              "title": "Ketika Enabled=True, waktu habis persistensi sesi dapat dikonfigurasi",
                                                                              "description": "Ketika Enabled=True, waktu habis persistensi sesi dapat dikonfigurasi",
                                                                              "type": "integer",
                                                                              "format": "int32",
                                                                              "example": "100"
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "InsertHeaderConfig": {
                                                              "title": "Konfigurasi aksi sisipkan header",
                                                              "description": "Konfigurasi bidang header tulis.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Key": {
                                                                      "title": "Header HTTP",
                                                                      "description": "Nama bidang header yang akan disisipkan. Panjangnya 1 hingga 40 karakter, mendukung huruf besar dan kecil a-z, angka, garis bawah (_), dan tanda hubung (-). Nama bidang header tidak dapat digunakan berulang kali di `InsertHeader`.\n\n> Pengguna tidak diizinkan menggunakan **Cookie** dan **Host** dalam nama bidang header.",
                                                                      "type": "string",
                                                                      "example": "key"
                                                                  },
                                                                  "Value": {
                                                                      "title": "Konten header HTTP",
                                                                      "description": "Konten bidang header yang akan disisipkan.\n\n- Ketika **ValueType** adalah **SystemDefined**, nilainya adalah sebagai berikut:\n    - **ClientSrcPort**: Port klien.\n    - **ClientSrcIp**: Alamat IP klien.\n    - **Protocol**: Protokol permintaan klien (HTTP atau HTTPS).\n    - **SLBId**: ID instans Application Load Balancer.\n    - **SLBPort**: Port pendengar instans Application Load Balancer.\n- Ketika **ValueType** adalah **UserDefined**: Anda dapat menyesuaikan konten bidang header. Panjangnya dibatasi hingga 1 hingga 128 karakter, mendukung wildcard tanda bintang (*) dan tanda tanya (?), dan karakter yang dapat dicetak dalam rentang nilai ASCII `ch >= 32 && ch < 127`. Awal dan akhir tidak boleh spasi.\n- Ketika **ValueType** adalah **ReferenceHeader**: Anda dapat mereferensikan bidang di header permintaan. Panjangnya dibatasi hingga 1 hingga 128 karakter, mendukung huruf kecil a-z, angka, tanda hubung (-), dan garis bawah (_).",
                                                                      "type": "string",
                                                                      "example": "ClientSrcPort"
                                                                  },
                                                                  "ValueType": {
                                                                      "title": "Jenis nilai",
                                                                      "description": "Jenis konten bidang header. Nilai yang valid:\n\n- **UserDefined**: Ditentukan pengguna.\n\n- **ReferenceHeader**: Mereferensikan bidang di header permintaan pengguna.\n\n- **SystemDefined**: Ditentukan sistem.",
                                                                      "type": "string",
                                                                      "example": "SystemDefined"
                                                                  }
                                                              }
                                                          },
                                                          "Order": {
                                                              "title": "Prioritas",
                                                              "description": "Urutan eksekusi aksi aturan pengalihan. Nilainya adalah **1 hingga 50000**. Aksi dieksekusi dalam urutan nilai menaik. Nilai tidak boleh kosong dan tidak boleh diulang.",
                                                              "type": "integer",
                                                              "format": "int32",
                                                              "example": "1"
                                                          },
                                                          "RedirectConfig": {
                                                              "title": "Konfigurasi aksi pengalihan",
                                                              "description": "Konfigurasi pengalihan.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Host": {
                                                                      "title": "Alamat host untuk melompat",
                                                                      "description": "Alamat host untuk melompat. Nilai yang valid:\n- **${host}** (default): Nilai ini tidak dapat digunakan bersama dengan karakter lain.\n- Nilai lain, dengan batasan set karakter dan format berikut:\n    - Panjang nama host adalah 3 hingga 128 karakter, mendukung huruf kecil a-z, angka, tanda hubung (-), titik (.), dan wildcard tanda bintang (*) dan tanda tanya (?).\n    - Nama host harus berisi setidaknya satu titik (.), dan titik (.) tidak boleh muncul di awal atau akhir.\n    - Label domain paling kanan hanya dapat berisi huruf dan wildcard, dan tidak boleh berisi angka atau tanda hubung (-).\n    - Tanda hubung (-) tidak boleh muncul di awal atau akhir label domain lain.\n    - Wildcard tanda bintang (*) dan tanda tanya (?) dapat muncul di mana saja di label domain.",
                                                                      "type": "string",
                                                                      "example": "www.example.com"
                                                                  },
                                                                  "HttpCode": {
                                                                      "title": "Metode lompat",
                                                                      "description": "Metode lompat. Nilainya adalah **301**, **302**, **303**, **307**, atau **308**.",
                                                                      "type": "string",
                                                                      "example": "301"
                                                                  },
                                                                  "Path": {
                                                                      "title": "Jalur untuk melompat",
                                                                      "description": "Jalur untuk melompat. Nilai yang valid:\n- **${path}** (default): Dapat mereferensikan **${host}**, **${protocol}**, dan **${port}**, yang terdiri dari **${host}**, **${protocol}**, dan **${port}**. Setiap variabel dapat muncul paling banyak sekali. Variabel-variabel ini dapat digunakan secara bersamaan atau digabungkan dengan string dalam rentang nilai yang diizinkan yang tercantum di bawah ini.\n- Nilai lain, dengan batasan set karakter dan format berikut:\n    - Panjangnya 1 hingga 128 karakter.\n    - Harus dimulai dengan garis miring (/), dan mendukung huruf, angka, dan karakter khusus `$-_.+/&~@:`. Tidak mendukung `“%#;!()[]^,”`. Juga mendukung wildcard tanda bintang (*) dan tanda tanya (?).",
                                                                      "type": "string",
                                                                      "example": "/test"
                                                                  },
                                                                  "Port": {
                                                                      "title": "Port untuk melompat",
                                                                      "description": "Port untuk melompat. Nilai yang valid:\n- **${port}** (default): Nilai ini tidak dapat digunakan dengan karakter lain pada saat yang sama.\n- Nilai lain: **1 hingga 63335**.",
                                                                      "type": "string",
                                                                      "example": "10"
                                                                  },
                                                                  "Protocol": {
                                                                      "title": "Protokol untuk melompat",
                                                                      "description": "Protokol untuk melompat. Nilai yang valid:\n- **${protocol}** (default): Nilai ini tidak dapat digunakan bersama dengan karakter lain.\n- **HTTP** atau **HTTPS**.\n\n    \n> Pendengar HTTPS hanya mendukung lompatan ke protokol HTTPS.",
                                                                      "type": "string",
                                                                      "example": "HTTP"
                                                                  },
                                                                  "Query": {
                                                                      "title": "String kueri untuk melompat",
                                                                      "description": "String kueri untuk melompat. Panjangnya 1 hingga 128 karakter, mendukung huruf kecil dan karakter yang terlihat. Tidak mendukung `#[]{}\\|<>&`.\n",
                                                                      "type": "string",
                                                                      "example": "quert"
                                                                  }
                                                              }
                                                          },
                                                          "RemoveHeaderConfig": {
                                                              "title": "Hapus header HTTP",
                                                              "description": "Konfigurasi hapus header HTTP.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Key": {
                                                                      "title": "Header HTTP",
                                                                      "description": "Nama bidang header yang akan dihapus. Panjangnya 1 hingga 40 karakter, mendukung huruf besar dan kecil a-z, angka, garis bawah (_), dan tanda hubung (-). Nama bidang header tidak dapat digunakan berulang kali di RemoveHeader.\n\n* Arah permintaan (Arah adalah Permintaan): Nama header tidak dapat diatur ke bidang berikut (tidak peka huruf besar-kecil): `slb-id`, `slb-ip`, `x-forwarded-for`, `x-forwarded-proto`, `x-forwarded-eip`, `x-forwarded-port`, `x-forwarded-client-srcport`, `connection`, `upgrade`, `content-length`, `transfer-encoding`, `keep-alive`, `te`, `host`, `cookie`, `remoteip`, `authority`.\n* Arah respons (Arah adalah Respons): Nama header tidak dapat diatur ke bidang berikut (tidak peka huruf besar-kecil): `connection`, `upgrade`, `content-length`, `transfer-encoding`.",
                                                                      "type": "string",
                                                                      "example": "key"
                                                                  }
                                                              }
                                                          },
                                                          "RewriteConfig": {
                                                              "title": "Konfigurasi aksi pengalihan internal",
                                                              "description": "Konfigurasi penulisan ulang.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Host": {
                                                                      "title": "Hostname",
                                                                      "description": "Alamat host untuk melompat. Nilai yang valid:\n- **${host}** (default): Nilai ini tidak dapat digunakan bersama dengan karakter lain.\n- Nilai lain, dengan batasan set karakter dan format berikut:\n    - Panjang nama host adalah 3 hingga 128 karakter, mendukung huruf kecil a-z, angka, tanda hubung (-), titik (.), dan wildcard tanda bintang (*) dan tanda tanya (?).\n    - Nama host harus berisi setidaknya satu titik (.), dan titik (.) tidak boleh muncul di awal atau akhir.\n    - Label domain paling kanan hanya dapat berisi huruf dan wildcard, dan tidak boleh berisi angka atau tanda hubung (-).\n    - Tanda hubung (-) tidak boleh muncul di awal atau akhir label domain lain.\n    - Wildcard tanda bintang (*) dan tanda tanya (?) dapat muncul di mana saja di label domain.",
                                                                      "type": "string",
                                                                      "example": "www.example.com"
                                                                  },
                                                                  "Path": {
                                                                      "title": "Jalur",
                                                                      "description": "Jalur tujuan untuk lompatan internal. Panjangnya 1 hingga 128 karakter, dimulai dengan garis miring (/), dan mendukung huruf, angka, tanda bintang (*), tanda tanya (?), dan `$-_.+/&~@:`. Tidak mendukung `“%#;!()[]^,”`.",
                                                                      "type": "string",
                                                                      "example": "/tsdf"
                                                                  },
                                                                  "Query": {
                                                                      "title": "Kueri",
                                                                      "description": "String kueri untuk lompatan internal. Panjangnya 1 hingga 128 karakter, mendukung huruf kecil dan karakter yang terlihat. Tidak mendukung `#[]{}\\|<>&`.\n\n",
                                                                      "type": "string",
                                                                      "example": "quedsa"
                                                                  }
                                                              }
                                                          },
                                                          "TrafficMirrorConfig": {
                                                              "title": "Konfigurasi yang sesuai dengan aksi TrafficMirror, yang diperlukan dan valid ketika jenisnya adalah TrafficMirror",
                                                              "description": "Pencerminan lalu lintas.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "TargetType": {
                                                                      "title": "Tujuan pencerminan lalu lintas, yang dapat berupa grup server",
                                                                      "description": "Tujuan pencerminan lalu lintas, yang dapat berupa grup server",
                                                                      "type": "string",
                                                                      "example": "ForwardGroupMirror"
                                                                  },
                                                                  "MirrorGroupConfig": {
                                                                      "title": "Diperlukan ketika TargetType adalah grup server, grup server target",
                                                                      "description": "Pencerminan lalu lintas ke grup server.",
                                                                      "type": "object",
                                                                      "properties": {
                                                                          "ServerGroupTuples": {
                                                                              "description": "Pencerminan lalu lintas ke grup server.",
                                                                              "type": "array",
                                                                              "items": {
                                                                                  "type": "object",
                                                                                  "properties": {
                                                                                      "ServerGroupId": {
                                                                                          "description": "ID grup server.",
                                                                                          "type": "string",
                                                                                          "example": "sgp-00mkgijak0w4qgz9****"
                                                                                      },
                                                                                      "Weight": {
                                                                                          "description": "Bobot. Rentang nilainya adalah **0** hingga **100**.",
                                                                                          "type": "integer",
                                                                                          "format": "int32",
                                                                                          "example": "2"
                                                                                      }
                                                                                  }
                                                                              }
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "TrafficLimitConfig": {
                                                              "description": "Pembatasan laju lalu lintas.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "QPS": {
                                                                      "description": "Jumlah permintaan per detik. Rentang nilainya adalah **1** hingga **100000**.",
                                                                      "type": "integer",
                                                                      "format": "int32",
                                                                      "example": "4"
                                                                  },
                                                                  "PerIpQps": {
                                                                      "description": "Jumlah permintaan per detik per IP. Rentang nilainya adalah **1 hingga 100000**.\n\n> Jika parameter **QPS** juga dikonfigurasi, nilai parameter **PerIpQps** harus lebih kecil dari nilai parameter **QPS**.",
                                                                      "type": "integer",
                                                                      "format": "int32",
                                                                      "example": "80"
                                                                  }
                                                              }
                                                          },
                                                          "Type": {
                                                              "title": "Jenis aksi aturan pengalihan",
                                                              "description": "Jenis aksi. Nilai yang valid:\n\n- **ForwardGroup**: Meneruskan ke beberapa grup server virtual.\n\n- **Redirect**: Mengalihkan.\n\n- **FixedResponse**: Mengembalikan konten tetap.\n\n- **Rewrite**: Menulis ulang.\n\n- **InsertHeader**: Menulis bidang header.\n\n- **RemoveHeaderConfig**: Menghapus bidang header.\n\n- **TrafficLimitConfig**: Pembatasan laju lalu lintas.\n\n- **TrafficMirrorConfig**: Pencerminan lalu lintas.\n\n- **CorsConfig**: Lintas domain.",
                                                              "type": "string",
                                                              "example": "ForwardGroup"
                                                          },
                                                          "CorsConfig": {
                                                              "title": "Lintas domain",
                                                              "description": "Lintas domain.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "AllowOrigin": {
                                                                      "title": "Sumber akses yang diizinkan",
                                                                      "description": "Sumber akses yang diizinkan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Sumber akses yang diizinkan. Dapat dikonfigurasi sebagai `*` atau sebagai satu atau lebih nilai nilai. Nilai nilai tidak boleh `*`.\n\n- Nilai tunggal harus dimulai dengan `http://` atau `https://`, diikuti oleh nama domain yang benar atau nama domain wildcard tingkat pertama (misalnya, `*.test.abc.example.com`).\n- Nilai tunggal dapat tanpa port, atau port dapat ditentukan. Rentang port adalah **1** hingga **65535**.",
                                                                          "type": "string",
                                                                          "example": "http://test.com"
                                                                      }
                                                                  },
                                                                  "AllowMethods": {
                                                                      "title": "Pilih metode HTTP yang diizinkan untuk akses lintas domain",
                                                                      "description": "Pilih metode HTTP yang diizinkan untuk akses lintas domain.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Pilih metode HTTP yang diizinkan untuk akses lintas domain. Nilai yang valid:\n- **GET**.\n- **POST**.\n- **PUT**.\n- **DELETE**.\n- **HEAD**.\n- **OPTIONS**.\n- **PATCH**.",
                                                                          "type": "string",
                                                                          "example": "GET"
                                                                      }
                                                                  },
                                                                  "AllowHeaders": {
                                                                      "title": "Daftar header lintas domain yang diizinkan",
                                                                      "description": "Daftar header lintas domain yang diizinkan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Daftar header lintas domain yang diizinkan. Dapat dikonfigurasi sebagai `*` atau sebagai satu atau lebih nilai nilai, dipisahkan dengan koma (,). Nilai tunggal hanya dapat berisi huruf besar dan kecil, angka, dan garis bawah (_) dan tanda hubung (-) yang tidak berada di awal atau akhir. Panjang maksimum adalah 32 karakter.",
                                                                          "type": "string",
                                                                          "example": "test_123"
                                                                      }
                                                                  },
                                                                  "ExposeHeaders": {
                                                                      "title": "Daftar header yang diekspos yang diizinkan",
                                                                      "description": "Daftar header yang diekspos yang diizinkan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Daftar header lintas domain yang diizinkan. Dapat dikonfigurasi sebagai `*` atau sebagai satu atau lebih nilai nilai, dipisahkan dengan koma (,). Nilai tunggal hanya dapat berisi huruf besar dan kecil, angka, dan garis bawah (_) dan tanda hubung (-) yang tidak berada di awal atau akhir. Panjang maksimum adalah 32 karakter.",
                                                                          "type": "string",
                                                                          "example": "test_123"
                                                                      }
                                                                  },
                                                                  "AllowCredentials": {
                                                                      "title": "Apakah akan mengizinkan membawa informasi kredensial",
                                                                      "description": "Apakah akan mengizinkan membawa informasi kredensial. Nilai yang valid:\n\n- **on**: Ya.\n- **off**: Tidak.",
                                                                      "type": "string",
                                                                      "example": "on"
                                                                  },
                                                                  "MaxAge": {
                                                                      "title": "Waktu cache maksimum permintaan preflight di browser",
                                                                      "description": "Waktu cache maksimum permintaan preflight di browser, dalam detik.\n\nRentang nilainya adalah **-1** hingga **172800**.",
                                                                      "type": "integer",
                                                                      "format": "int64",
                                                                      "example": "1000"
                                                                  }
                                                              }
                                                          }
                                                      }
                                                  }
                                              },
                                              "RuleConditions": {
                                                  "title": "Kondisi aturan pengalihan",
                                                  "description": "Daftar kondisi aturan pengalihan.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur kondisi aturan pengalihan.",
                                                      "type": "object",
                                                      "properties": {
                                                          "CookieConfig": {
                                                              "title": "Konfigurasi kondisi cookie",
                                                              "description": "Konfigurasi cookie.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar pasangan kunci-nilai kondisi cookie",
                                                                      "description": "Nilai cookie.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Nilai cookie.",
                                                                          "type": "object",
                                                                          "properties": {
                                                                              "Key": {
                                                                                  "title": "Kunci kondisi cookie",
                                                                                  "description": "Kunci cookie. Panjangnya 1 hingga 100 karakter, mendukung huruf kecil, karakter yang terlihat, tanda bintang (*), dan tanda tanya (?). Tidak mendukung spasi dan `#[]{}\\|<>&`.",
                                                                                  "type": "string",
                                                                                  "example": "test"
                                                                              },
                                                                              "Value": {
                                                                                  "title": "Nilai kondisi cookie",
                                                                                  "description": "Nilai cookie. Panjangnya 1 hingga 128 karakter, mendukung huruf kecil, karakter yang terlihat, tanda bintang (*), dan tanda tanya (?). Tidak mendukung spasi dan `#[]{}\\|<>&`.",
                                                                                  "type": "string",
                                                                                  "example": "test"
                                                                              }
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "HeaderConfig": {
                                                              "title": "Konfigurasi kondisi header HTTP",
                                                              "description": "Konfigurasi bidang header.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Key": {
                                                                      "title": "Kunci header HTTP",
                                                                      "description": "Kunci bidang header. Panjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_). Tidak mendukung Cookie dan Host.",
                                                                      "type": "string",
                                                                      "example": "Port"
                                                                  },
                                                                  "Values": {
                                                                      "title": "Daftar nilai header HTTP",
                                                                      "description": "Nilai bidang header.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Nilai bidang header. Panjangnya 1 hingga 128 karakter. Mendukung karakter yang dapat dicetak dalam rentang nilai ASCII `ch >= 32 && ch < 127`, huruf kecil, tanda bintang (*), dan tanda tanya (?). Awal dan akhir tidak boleh spasi.",
                                                                          "type": "string",
                                                                          "example": "5006"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "HostConfig": {
                                                              "title": "Konfigurasi kondisi nama host",
                                                              "description": "Konfigurasi host.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar nama host",
                                                                      "description": "Nama host.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Nama host. Aturan penamaan:\n\n- Panjang nama domain adalah 3 hingga 128 karakter, mendukung huruf kecil a-z, angka, tanda hubung (-), titik (.), tanda bintang (*), dan tanda tanya (?).\n\n- Nama domain harus berisi setidaknya satu titik (.), dan titik (.) tidak boleh muncul di awal atau akhir.\n\n- Label domain paling kanan hanya dapat berisi huruf, tanda bintang (*), dan tanda tanya (?), dan tidak boleh berisi angka atau tanda hubung (-).\n\n- Tanda hubung (-) tidak boleh muncul di awal atau akhir label domain lain. Tanda bintang (*) dan tanda tanya (?) dapat muncul di mana saja di label domain.",
                                                                          "type": "string",
                                                                          "example": "www.example.com"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "MethodConfig": {
                                                              "title": "Konfigurasi kondisi metode permintaan HTTP",
                                                              "description": "Konfigurasi metode permintaan.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar metode permintaan HTTP",
                                                                      "description": "Metode permintaan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Metode permintaan.\n\nNilai yang valid: **HEAD**, **GET**, **POST**, **OPTIONS**, **PUT**, **PATCH**, atau **DELETE**.",
                                                                          "type": "string",
                                                                          "example": "PUT"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "PathConfig": {
                                                              "title": "Konfigurasi kondisi jalur",
                                                              "description": "Konfigurasi jalur pengalihan.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar kondisi jalur",
                                                                      "description": "Jalur pengalihan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Jalur pengalihan. Panjangnya 1 hingga 128 karakter, dimulai dengan garis miring (/), dan mendukung huruf, angka, tanda bintang (*), tanda tanya (?), dan `$-_.+/&~@:`. Tidak mendukung `“%#;!()[]^,”`.",
                                                                          "type": "string",
                                                                          "example": "/test"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "QueryStringConfig": {
                                                              "title": "Konfigurasi kondisi string kueri",
                                                              "description": "Konfigurasi string kueri.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar pasangan kunci-nilai kondisi string kueri",
                                                                      "description": "String kueri.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "String kueri.",
                                                                          "type": "object",
                                                                          "properties": {
                                                                              "Key": {
                                                                                  "title": "Kunci kondisi string kueri",
                                                                                  "description": "Kunci string kueri. Panjangnya 1 hingga 100 karakter, mendukung huruf kecil, karakter yang terlihat, tanda bintang (*), dan tanda tanya (?). Tidak mendukung spasi dan `#[]{}\\|<>&`.",
                                                                                  "type": "string",
                                                                                  "example": "test"
                                                                              },
                                                                              "Value": {
                                                                                  "title": "Nilai kondisi string kueri",
                                                                                  "description": "Nilai string kueri. Panjangnya 1 hingga 128 karakter, mendukung huruf kecil, karakter yang terlihat, tanda bintang (*), dan tanda tanya (?). Tidak mendukung spasi dan `#[]{}\\|<>&`.",
                                                                                  "type": "string",
                                                                                  "example": "test"
                                                                              }
                                                                          }
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "SourceIpConfig": {
                                                              "title": "Pencocokan lalu lintas layanan IP sumber",
                                                              "description": "Pencocokan berdasarkan lalu lintas layanan IP sumber.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar IP sumber untuk dicocokkan",
                                                                      "description": "Daftar IP sumber untuk dicocokkan.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Tambahkan satu atau lebih alamat IP atau rentang alamat IP.\n\nSatu aturan pengalihan mendukung penambahan hingga 5 IP sumber.",
                                                                          "type": "string",
                                                                          "example": "192.168.XX.XX/32"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "ResponseStatusCodeConfig": {
                                                              "title": "Kondisi kode status kembali",
                                                              "description": "Konfigurasi kode status respons.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Values": {
                                                                      "title": "Daftar kondisi kode status kembali",
                                                                      "description": "Daftar kode status respons.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Kode status respons.",
                                                                          "type": "string",
                                                                          "example": "200"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "ResponseHeaderConfig": {
                                                              "title": "Kembalikan header HTTP",
                                                              "description": "Konfigurasi header HTTP respons.",
                                                              "type": "object",
                                                              "properties": {
                                                                  "Key": {
                                                                      "title": "Kunci header HTTP kembali",
                                                                      "description": "Kunci header HTTP respons. Panjangnya 1 hingga 40 karakter. Mendukung huruf a-z, angka, tanda hubung (-), dan garis bawah (_). Tidak mendukung Cookie dan Host.",
                                                                      "type": "string",
                                                                      "example": "key"
                                                                  },
                                                                  "Values": {
                                                                      "title": "Nilai header HTTP kembali",
                                                                      "description": "Daftar nilai header HTTP respons.",
                                                                      "type": "array",
                                                                      "items": {
                                                                          "description": "Nilai header HTTP respons. Panjangnya 1 hingga 128 karakter.",
                                                                          "type": "string",
                                                                          "example": "value"
                                                                      }
                                                                  }
                                                              }
                                                          },
                                                          "Type": {
                                                              "title": "Jenis kondisi",
                                                              "description": "Jenis aturan pengalihan. Nilai yang valid:\n\n- **Host**: Host.\n\n- **Path**: Jalur.\n\n- **Header**: Bidang header HTTP.\n\n- **QueryString**: String kueri.\n\n- **Method**: Metode permintaan.\n\n- **Cookie**: Cookie.\n\n- **SourceIp**: IP Sumber.",
                                                              "type": "string",
                                                              "example": "Host"
                                                          }
                                                      },
                                                      "required": true
                                                  }
                                              },
                                              "RuleId": {
                                                  "title": "Identitas aturan pengalihan",
                                                  "description": "ID aturan pengalihan.",
                                                  "type": "string",
                                                  "example": "rule-bpn0kn908w4nbw****"
                                              },
                                              "RuleName": {
                                                  "title": "Nama aturan pengalihan",
                                                  "description": "Nama aturan pengalihan. Panjangnya 2 hingga 128 karakter bahasa Inggris atau Mandarin. Harus dimulai dengan huruf besar atau kecil atau karakter Mandarin dan dapat berisi angka, titik (.), garis bawah (_), dan tanda hubung (-).",
                                                  "type": "string",
                                                  "example": "rule-instance-test"
                                              },
                                              "RuleStatus": {
                                                  "title": "Status aturan pengalihan",
                                                  "description": "Status aturan pengalihan. Nilai yang valid:\n\n- **Provisioning**: Membuat.\n\n- **Configuring**: Mengubah.\n\n- **Available**: Berjalan.",
                                                  "type": "string",
                                                  "example": "Available"
                                              },
                                              "Direction": {
                                                  "title": "Arah aturan pengalihan",
                                                  "description": "Arah aturan pengalihan. Nilai yang valid:\n\n* Request (default): Jenis permintaan. Ini mencocokkan kondisi pada pesan yang dikirim dari klien ke ALB dan melakukan tindakan yang sesuai.\n\n* Response: Jenis respons. Ini mencocokkan kondisi pada pesan yang dikembalikan dari grup server backend ke ALB dan melakukan tindakan yang sesuai.\n\n> Instans ALB Edisi Dasar tidak mendukung jenis Respons.",
                                                  "type": "string",
                                                  "example": "Request"
                                              },
                                              "Tags": {
                                                  "description": "Tag.",
                                                  "type": "array",
                                                  "items": {
                                                      "description": "Struktur tag.",
                                                      "type": "object",
                                                      "properties": {
                                                          "Key": {
                                                              "description": "Kunci tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                                              "type": "string",
                                                              "example": "env"
                                                          },
                                                          "Value": {
                                                              "description": "Nilai tag. Panjangnya bisa mencapai 128 karakter dan tidak boleh diawali dengan aliyun atau acs:. Tidak boleh berisi http:// atau https://.",
                                                              "type": "string",
                                                              "example": "product"
                                                          }
                                                      }
                                                  }
                                              }
                                          }
                                      }
                                  },
                                  "TotalCount": {
                                      "title": "Jumlah total data di bawah kondisi permintaan ini.",
                                      "description": "Jumlah total catatan data yang dikembalikan di bawah kondisi permintaan ini.",
                                      "type": "integer",
                                      "format": "int32",
                                      "example": "1000"
                                  }
                              }
                          }
                      }
                  },
                  "errorCodes": {
                      "403": [
                          {
                              "errorCode": "Forbidden.LoadBalancer",
                              "errorMessage": "Autentikasi gagal untuk %s."
                          }
                      ]
                  },
                  "responseDemo": "[{\"type\":\"json\",\"example\":\"{\\n  \\\"MaxResults\\\": 50,\\n  \\\"NextToken\\\": \\\"FFmyTO70tTpLG6I3FmYAXGKPd****\\\",\\n  \\\"RequestId\\\": \\\"CEF72CEB-54B6-4AE8-B225-F876F******\\\",\\n  \\\"Rules\\\": [\\n    {\\n      \\\"Listener\\\": \\\"lsn-i35udpz3pxsmnf****\\\",\\n      \\\"LoadBalancerId\\\": \\\"alb-x30o38azsuj0sx****\\\",\\n      \\\"Priority\\\": 1,\\n      \\\"RuleActions\\\": [\\n        {\\n          \\\"FixedResponseConfig\\\": {\\n            \\\"Content\\\": \\\"dssacav\\\",\\n            \\\"ContentType\\\": \\\"text/plain\\\",\\n            \\\"HttpCode\\\": \\\"HTTP_2xx\\\"\\n          },\\n          \\\"ForwardGroupConfig\\\": {\\n            \\\"ServerGroupTuples\\\": [\\n              {\\n                \\\"ServerGroupId\\\": \\\"sgp-atstuj3rtoptyui****\\\",\\n                \\\"Weight\\\": 2\\n              }\\n            ],\\n            \\\"ServerGroupStickySession\\\": {\\n              \\\"Enabled\\\": true,\\n              \\\"Timeout\\\": 100\\n            }\\n          },\\n          \\\"InsertHeaderConfig\\\": {\\n            \\\"Key\\\": \\\"key\\\",\\n            \\\"Value\\\": \\\"ClientSrcPort\\\",\\n            \\\"ValueType\\\": \\\"SystemDefined\\\"\\n          },\\n          \\\"Order\\\": 1,\\n          \\\"RedirectConfig\\\": {\\n            \\\"Host\\\": \\\"www.example.com\\\",\\n            \\\"HttpCode\\\": \\\"301\\\",\\n            \\\"Path\\\": \\\"/test\\\",\\n            \\\"Port\\\": \\\"10\\\",\\n            \\\"Protocol\\\": \\\"HTTP\\\",\\n            \\\"Query\\\": \\\"quert\\\"\\n          },\\n          \\\"RemoveHeaderConfig\\\": {\\n            \\\"Key\\\": \\\"key\\\"\\n          },\\n          \\\"RewriteConfig\\\": {\\n            \\\"Host\\\": \\\"www.example.com\\\",\\n            \\\"Path\\\": \\\"/tsdf\\\",\\n            \\\"Query\\\": \\\"quedsa\\\"\\n          },\\n          \\\"TrafficMirrorConfig\\\": {\\n            \\\"TargetType\\\": \\\"ForwardGroupMirror\\\",\\n            \\\"MirrorGroupConfig\\\": {\\n              \\\"ServerGroupTuples\\\": [\\n                {\\n                  \\\"ServerGroupId\\\": \\\"sgp-00mkgijak0w4qgz9****\\\",\\n                  \\\"Weight\\\": 2\\n                }\\n              ]\\n            }\\n          },\\n          \\\"TrafficLimitConfig\\\": {\\n            \\\"QPS\\\": 4,\\n            \\\"PerIpQps\\\": 80\\n          },\\n          \\\"Type\\\": \\\"ForwardGroup\\\",\\n          \\\"CorsConfig\\\": {\\n            \\\"AllowOrigin\\\": [\\n              \\\"http://test.com\\\"\\n            ],\\n            \\\"AllowMethods\\\": [\\n              \\\"GET\\\"\\n            ],\\n            \\\"AllowHeaders\\\": [\\n              \\\"test_123\\\"\\n            ],\\n            \\\"ExposeHeaders\\\": [\\n              \\\"test_123\\\"\\n            ],\\n            \\\"AllowCredentials\\\": \\\"on\\\",\\n            \\\"MaxAge\\\": 1000\\n          }\\n        }\\n      ],\\n      \\\"RuleConditions\\\": [\\n        {\\n          \\\"CookieConfig\\\": {\\n            \\\"Values\\\": [\\n              {\\n                \\\"Key\\\": \\\"test\\\",\\n                \\\"Value\\\": \\\"test\\\"\\n              }\\n            ]\\n          },\\n          \\\"HeaderConfig\\\": {\\n            \\\"Key\\\": \\\"Port\\\",\\n            \\\"Values\\\": [\\n              \\\"5006\\\"\\n            ]\\n          },\\n          \\\"HostConfig\\\": {\\n            \\\"Values\\\": [\\n              \\\"www.example.com\\\"\\n            ]\\n          },\\n          \\\"MethodConfig\\\": {\\n            \\\"Values\\\": [\\n              \\\"PUT\\\"\\n            ]\\n          },\\n          \\\"PathConfig\\\": {\\n            \\\"Values\\\": [\\n              \\\"/test\\\"\\n            ]\\n          },\\n          \\\"QueryStringConfig\\\": {\\n            \\\"Values\\\": [\\n              {\\n                \\\"Key\\\": \\\"test\\\",\\n                \\\"Value\\\": \\\"test\\\"\\n              }\\n            ]\\n          },\\n          \\\"SourceIpConfig\\\": {\\n            \\\"Values\\\": [\\n              \\\"192.168.XX.XX/32\\\"\\n            ]\\n          },\\n          \\\"ResponseStatusCodeConfig\\\": {\\n            \\\"Values\\\": [\\n              \\\"200\\\"\\n            ]\\n          },\\n          \\\"ResponseHeaderConfig\\\": {\\n            \\\"Key\\\": \\\"key\\\",\\n            \\\"Values\\\": [\\n              \\\"value\\\"\\n            ]\\n          },\\n          \\\"Type\\\": \\\"Host\\\"\\n        }\\n      ],\\n      \\\"RuleId\\\": \\\"rule-bpn0kn908w4nbw****\\\",\\n      \\\"RuleName\\\": \\\"rule-instance-test\\\",\\n      \\\"RuleStatus\\\": \\\"Available\\\",\\n      \\\"Direction\\\": \\\"Request\\\",\\n      \\\"Tags\\\": [\\n        {\\n          \\\"Key\\\": \\\"env\\\",\\n          \\\"Value\\\": \\\"product\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"TotalCount\\\": 1000\\n}\",\"errorExample\":\"\"},{\"type\":\"xml\",\"example\":\"<ListRulesResponse>\\n    <MaxResults>50</MaxResults>\\n    <NextToken>FFmyTO70tTpLG6I3FmYAXGKPd****</NextToken>\\n    <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n    <Rules>\\n        <ListenerId>lsn-i35udpz3pxsmnf****</ListenerId>\\n        <LoadBalancerId>alb-x30o38azsuj0sx****</LoadBalancerId>\\n        <Priority>1</Priority>\\n        <RuleActions>\\n            <FixedResponseConfig>\\n                <Content>dssacav</Content>\\n                <ContentType>text/plain</ContentType>\\n                <HttpCode>HTTP_2xx</HttpCode>\\n            </FixedResponseConfig>\\n            <ForwardGroupConfig>\\n                <ServerGroupTuples>\\n                    <ServerGroupId>sg-atstuj3rtoptyui****</ServerGroupId>\\n                    <Weight>2</Weight>\\n                </ServerGroupTuples>\\n            </ForwardGroupConfig>\\n            <InsertHeaderConfig>\\n                <Key>key</Key>\\n                <Value>ClientSrcPort</Value>\\n                <ValueType>SystemDefined</ValueType>\\n            </InsertHeaderConfig>\\n            <Order>1</Order>\\n            <RedirectConfig>\\n                <Host>www.example.com</Host>\\n                <HttpCode>301</HttpCode>\\n                <Path>/test</Path>\\n                <Port>10</Port>\\n                <Protocol>HTTP</Protocol>\\n                <Query>quert</Query>\\n            </RedirectConfig>\\n            <RewriteConfig>\\n                <Host>www.example.com</Host>\\n                <Path>/tsdf</Path>\\n                <Query>quedsa</Query>\\n            </RewriteConfig>\\n            <TrafficMirrorConfig>\\n                <MirrorGroupConfig>\\n                    <ServerGroupTuples>\\n                        <ServerGroupId>srg-00mkgijak0w4qgz9****</ServerGroupId>\\n                        <Weight>2</Weight>\\n                    </ServerGroupTuples>\\n                </MirrorGroupConfig>\\n            </TrafficMirrorConfig>\\n            <TrafficLimitConfig>\\n                <QPS>4</QPS>\\n                <PerIpQps>80</PerIpQps>\\n            </TrafficLimitConfig>\\n            <Type>ForwardGroup</Type>\\n            <CorsConfig>\\n                <AllowOrigin>http://test.com</AllowOrigin>\\n                <AllowMethods>GET</AllowMethods>\\n                <AllowHeaders>test_123</AllowHeaders>\\n                <ExposeHeaders>test_123</ExposeHeaders>\\n                <AllowCredentials>on</AllowCredentials>\\n                <MaxAge>1000</MaxAge>\\n            </CorsConfig>\\n        </RuleActions>\\n        <RuleConditions>\\n            <CookieConfig>\\n                <Values>\\n                    <Key>test</Key>\\n                    <Value>test</Value>\\n                </Values>\\n            </CookieConfig>\\n            <HeaderConfig>\\n                <Key>Port</Key>\\n                <Values>5006</Values>\\n            </HeaderConfig>\\n            <HostConfig>\\n                <Values>www.example.com</Values>\\n            </HostConfig>\\n            <MethodConfig>\\n                <Values>PUT</Values>\\n            </MethodConfig>\\n            <PathConfig>\\n                <Values>/test</Values>\\n            </PathConfig>\\n            <QueryStringConfig>\\n                <Values>\\n                    <Key>test</Key>\\n                    <Value>test</Value>\\n                </Values>\\n            </QueryStringConfig>\\n            <SourceIpConfig>\\n                <Values>192.168.XX.XX/32</Values>\\n            </SourceIpConfig>\\n            <Type>Host</Type>\\n        </RuleConditions>\\n        <RuleId>rule-bpn0kn908w4nbw****</RuleId>\\n        <RuleName>rule-instance-test</RuleName>\\n        <RuleStatus>Available</RuleStatus>\\n    </Rules>\\n    <TotalCount>1000</TotalCount>\\n</ListRulesResponse>\",\"errorExample\":\"\"}]",
                  "title": "Kueri aturan pengalihan"
              }
          },
          "endpoints": [
              {
                  "regionId": "cn-wulanchabu",
                  "endpoint": "alb.cn-wulanchabu.aliyuncs.com"
              }
          ]
      }
    • Outbound Authentication: Pilih kredensial AccessKey yang dibuat pada langkah sebelumnya.

Function Compute

Contoh ini mengintegrasikan fungsi web perhitungan matematika.

Sebelum menambahkan layanan Function Compute, Anda harus membuat dan menerapkan fungsi web di Konsol Function Compute:

  1. Klik Create Function. Untuk **Function Type**, pilih Web Function. Masukkan Function Name. Untuk **Runtime Environment**, pilih Custom Runtime > Python > Python 3.10 (Debian 11). Untuk Code Upload Method, pilih Use Sample Code. Untuk Startup Command, pilih Command Mode dan masukkan python app.py. Klik Create.

  2. Di WebIDE, ganti kode contoh dengan kode layanan perhitungan matematika berikut. Ubah nama file menjadi app.py, simpan, lalu klik Deploy.

  3. Di sisi kanan antarmuka, klik Copy ARN. Anda akan membutuhkannya saat menambahkan layanan nanti.

Kode contoh untuk fungsi web yang menyediakan perhitungan matematika

from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib
import json

class MathHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        """Handle GET request: /?a=10&b=5&op=add"""
        params = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)
        
        try:
            a = float(params.get('a', [0])[0])
            b = float(params.get('b', [0])[0])
            op = params.get('op', ['add'])[0]
            
            # Perform calculation
            if op == 'add':
                result = a + b
            elif op == 'sub':
                result = a - b
            elif op == 'mul':
                result = a * b
            elif op == 'div':
                result = a / b
            else:
                raise ValueError(f"Unsupported operation: {op}")
            
            response = {'result': result, 'message': f'{a} {op} {b} = {result}'}
            self.send_response(200)
            
        except (ValueError, ZeroDivisionError) as e:
            response = {'error': str(e)}
            self.send_response(400)
        
        self.send_header('Content-type', 'application/json')
        self.end_headers()
        self.wfile.write(json.dumps(response).encode())

if __name__ == "__main__":
    server = HTTPServer(('0.0.0.0', 9000), MathHandler)
    print("Server running on http://localhost:9000")
    server.serve_forever()

Setelah menyelesaikan persiapan, kembali ke grup server MCP, klik Add MCP Service, lengkapi pengaturan berikut, lalu klik OK.

  • Service Name: Masukkan nama yang mudah dipahami oleh LLM. Topik ini menggunakan math-calculator, yang merepresentasikan layanan perhitungan matematika.

  • Service Type: Pilih Function Compute.

  • Function Compute ARN: Masukkan ARN fungsi yang disalin.

  • OpenAPI Configuration: Tempel atau impor file konfigurasi OpenAPI berikut.

  • Outbound Authentication: Pilih RAM Role.

Konfigurasi OpenAPI untuk fungsi di atas

{
    "openapi": "3.1.0",
    "info": {
        "title": "Math Calculator API",
        "version": "1.0.0",
        "description": "Math calculator supporting addition, subtraction, multiplication, and division"
    },
    "paths": {
        "/": {
            "get": {
                "summary": "Math calculation",
                "description": "Perform basic mathematical operations (addition, subtraction, multiplication, division)",
                "operationId": "calculate",
                "parameters": [
                    {
                        "name": "op",
                        "in": "query",
                        "required": true,
                        "description": "Operation type: add=addition, sub=subtraction, mul=multiplication, div=division",
                        "schema": {
                            "type": "string",
                            "enum": ["add", "sub", "mul", "div"]
                        }
                    },
                    {
                        "name": "a",
                        "in": "query",
                        "required": true,
                        "description": "First operand",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "b",
                        "in": "query",
                        "required": true,
                        "description": "Second operand",
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculation successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "result": {
                                            "type": "number",
                                            "description": "Calculation result"
                                        },
                                        "message": {
                                            "type": "string",
                                            "description": "Calculation description"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

3. Buat pendengar

  1. Di Konsol ALB, klik ID instans target untuk membuka halaman Instance Details. Di tab Listener, klik Create Listener.

  2. Pada langkah Configure Listener, atur Listener Protocol menjadi HTTPS dan Listener Port menjadi 443. Lalu klik Next.

  3. Pada langkah Configure SSL Certificate, pilih sertifikat server yang sesuai dengan nama domain kustom Anda dan klik Next.

  4. Pada langkah Select Server Group, pilih Server dan grup server sgp-default. Lalu klik Next.

    Grup server yang dipilih di sini digunakan untuk aturan default pendengar, yang menangani permintaan yang tidak cocok dengan aturan pengalihan lainnya. Dalam topik ini, semua permintaan MCP dicocokkan secara tepat oleh aturan pengalihan dan tidak akan diproses oleh aturan ini.
  5. Pada langkah Configuration Review, konfirmasi pengaturan dan klik Submit.

4. Konfigurasikan aturan pengalihan

Permintaan dicocokkan terhadap aturan pengalihan dalam urutan prioritas menaik. Ketika permintaan cocok dengan aturan, aksi pengalihannya dieksekusi, dan tidak ada aturan lebih lanjut yang dicocokkan. Buat aturan pengalihan dengan kondisi diatur ke Path untuk mengarahkan permintaan terkait MCP ke grup server MCP.

  1. Di tab Listener instans, klik ID pendengar target. Di halaman Listener Details, klik tab Forwarding Rules.

  2. Klik Add New Rule, lengkapi pengaturan berikut, lalu klik OK.

    • Add Condition: Pilih Path, atur metode pencocokan ke Exact Match, dan masukkan /mcp.

    • Service Extension (Optional): Pilih Create from Template, pilih MCP Authentication Proxy, dan klik Create. Masukkan Extension name, pilih Enable Semantic Search, dan klik Create. Templat ini secara otomatis menambahkan komponen API Key Authentication dan menghasilkan kredensial.

    • Action: Atur Forward To grup server sgp-mcp.

  3. Di daftar aturan pengalihan, klik ID ekstensi layanan yang baru dibuat untuk membuka halaman detailnya. Di bagian bawah halaman, perluas komponen API Key Authentication. Di field Credential, ambil kunci API. Anda akan membutuhkannya untuk pengujian verifikasi nanti.

5. Siapkan resolusi nama domain

Arahkan nama domain kustom Anda ke nama DNS instans ALB menggunakan rekaman CNAME. Klien kemudian akan mengakses ALB melalui nama domain kustom Anda.

Topik ini menggunakan Alibaba Cloud DNS sebagai contoh. Untuk nama domain yang tidak didaftarkan di Alibaba Cloud, Anda harus terlebih dahulu menambahkan nama domain ke konsol Cloud DNS.

  1. Di Konsol ALB, salin Domain Name dari instans target.

  2. Masuk ke Domain Name Resolution console. Pada kolom Actions untuk domain target, klik Settings. Di halaman Settings, klik Add Record.

  3. Tambahkan rekaman CNAME dengan informasi berikut dan klik OK.

    • Record Type: Pilih CNAME.

    • Hostname: Masukkan awalan domain seperti mcp. Jika domain root Anda adalah example.com, domain untuk mengakses ALB akan menjadi mcp.example.com.

    • Query Source dan TTL: Pertahankan nilai default.

    • Record Value: Masukkan nama DNS instans ALB.

  4. Di kotak dialog Change Resource Record Confirmation, konfirmasi informasi resolusi dan klik OK.

6. Verifikasi dan pengujian

Setelah menyelesaikan konfigurasi di atas, Anda dapat memverifikasi bahwa layanan MCP berjalan dengan benar menggunakan salah satu metode berikut.

Debugging MCP Inspector

  1. Instal lingkungan Node.js dan jalankan perintah berikut untuk memulai MCP Inspector:

    npx @modelcontextprotocol/inspector
  2. Alihkan Transport Type ke Streamable HTTP. Di field URL, masukkan endpoint layanan MCP ALB, seperti https://mcp.example.com/mcp. Perluas Authentication dan tambahkan header di Custom Headers. Atur nama menjadi Authorization dan nilai menjadi Bearer <API Key credential> (kredensial yang Anda ambil di Langkah 4). Aktifkan sakelar untuk header tersebut. Klik Connect. Status Connected menunjukkan koneksi berhasil.

  3. Klik List Tools untuk mengambil daftar semua alat yang saat ini dipasang. Verifikasi setiap jenis layanan secara terpisah:

    • MCP Server Type: Anda dapat memilih alat temperature-converter::celsius_to_fahrenheit. Masukkan 22 untuk celsius dan klik Run Tool. Hasilnya adalah 71,6 derajat Fahrenheit.

    • Function Compute type: Pilih alat perhitungan matematika math-calculator::calculate. Pilih op sebagai add, a sebagai 10, dan b sebagai 5. Klik Run Tool untuk mendapatkan hasil perhitungan 15.

    • REST API Type: Pilih alat pengelolaan ALB alb-operator::ListLoadBalancers dan klik Run Tool untuk mengambil daftar instans ALB di akun tujuan.

    • Semantic Search: Pilih alat x-aliyun-alb-search untuk menggunakan kemampuan pencarian semantik bawaan komponen proxy MCP guna mencari alat yang sesuai. Misalnya, masukkan query sebagai query load balancer information dan topk sebagai 2. Ini mengembalikan dua alat yang paling sesuai, sehingga menghindari kebutuhan untuk memuat daftar alat lengkap dan menghemat konsumsi token LLM.

Pengujian agen

Contoh berikut membangun agen berbasis LangChain. Agen ini secara dinamis mengambil dan memanggil alat menggunakan kemampuan pencarian semantik komponen proxy MCP.

  1. Instal Python (versi 3.10 atau lebih baru) dan dependensinya:

    pip install "langchain>=1.2.4" "langchain-community>=0.4.1" "langchain-mcp-adapters>=0.2.1" "langchain-openai>=1.0.1" "langgraph>=1.0.1"
  2. Simpan kode berikut sebagai agent.py:

    # -*- coding: utf-8 -*-
    import asyncio
    import os
    import httpx
    
    from langchain.agents import create_agent
    from langchain_openai import ChatOpenAI
    from mcp import ClientSession
    from mcp.client.streamable_http import streamable_http_client
    from mcp.types import Tool
    from langchain_mcp_adapters.tools import convert_mcp_tool_to_langchain_tool
    
    
    async def search_alb_tools(session: ClientSession, query: str, topk: int = 3) -> list:
        """Search for relevant tools via MCP protocol."""
        result = await session.call_tool(
            "x-aliyun-alb-search",
            {"query": query, "topk": topk}
        )
        payload = result.structuredContent or {}
        allowed_fields = {"name", "title", "description", "inputSchema"}
        mcp_tools = [
            Tool(**{k: v for k, v in t.items() if k in allowed_fields and v})
            for t in payload.get("tools", [])
        ]
        return [convert_mcp_tool_to_langchain_tool(session, t) for t in mcp_tools]
    
    
    class AlbChatAgent:
        def __init__(self, session: ClientSession, llm: ChatOpenAI):
            self.session = session
            self.llm = llm
    
        async def chat(self, user_query: str) -> None:
            print(f"\nUser: {user_query}")
            tools = await search_alb_tools(self.session, user_query)
            system_prompt = (
                "You are an expert assistant. Only use the provided ALB tools to answer questions. "
                "If the tools are insufficient, clearly inform the user. Be concise and professional."
            )
            agent = create_agent(
                model=self.llm,
                tools=tools,
                system_prompt=system_prompt
            )
            try:
                response = await agent.ainvoke(
                    {"messages": [{"role": "user", "content": user_query}]},
                )
                print(f"Assistant: {response['messages'][-1].content}")
            except Exception as e:
                print(f"Error: {type(e).__name__}: {str(e)}")
    
    
    async def main():
        mcp_url = os.getenv("MCP_URL")
        mcp_api_key = os.getenv("MCP_API_KEY")
        qwen_api_key = os.getenv("QWEN_API_KEY")
        if not mcp_url:
            raise EnvironmentError("Environment variable not set: MCP_URL")
        if not mcp_api_key:
            raise EnvironmentError("Environment variable not set: MCP_API_KEY")
        if not qwen_api_key:
            raise EnvironmentError("Environment variable not set: QWEN_API_KEY")
    
        async with httpx.AsyncClient(
            headers={"Authorization": f"Bearer {mcp_api_key}"},
            timeout=httpx.Timeout(60, read=300),
        ) as http_client:
            async with streamable_http_client(
                mcp_url,
                http_client=http_client,
            ) as (reader, writer, _):
                async with ClientSession(reader, writer) as session:
                    await session.initialize()
                    llm = ChatOpenAI(
                        model="qwen-plus",
                        api_key=qwen_api_key,
                        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
                    )
                    agent = AlbChatAgent(session, llm)
                    while True:
                        try:
                            query = input("\n>>> ").strip()
                            if query:
                                await agent.chat(query)
                        except (KeyboardInterrupt, EOFError):
                            break
    
    
    if __name__ == "__main__":
        asyncio.run(main())
  3. Atur variabel lingkungan berikut dan jalankan skrip:

    • MCP_URL: Endpoint layanan MCP instans ALB. Dalam topik ini, yaitu https://mcp.example.com/mcp.

    • MCP_API_KEY: Kredensial Kunci API yang dihasilkan di Langkah 4.

    • QWEN_API_KEY: Setelah Anda mengaktifkan Alibaba Cloud Model Studio, ambil kunci API dari Konsol Model Studio.

    Linux/macOS

    export MCP_URL=https://mcp.example.com/mcp
    export MCP_API_KEY=your_api_key
    export QWEN_API_KEY=sk-xxx
    python agent.py

    Windows

    $env:MCP_URL="https://mcp.example.com/mcp"
    $env:MCP_API_KEY="your_api_key"
    $env:QWEN_API_KEY="sk-xxx"
    python agent.py
  4. Setelah skrip dijalankan, masukkan pertanyaan dalam bahasa alami. Agen akan mengambil dan memanggil alat yang sesuai menggunakan x-aliyun-alb-search.

    >>> Help me convert 22 degrees Celsius to Fahrenheit
    
    User: Help me convert 22 degrees Celsius to Fahrenheit
    Assistant: 22 degrees Celsius is equal to 71.6 degrees Fahrenheit.
    
    >>> Help me calculate 22 * 33
    
    User: Help me calculate 22 * 33
    Assistant: 22 × 33 = 726
    
    >>> Help me list the current ALB instances
    
    User: Help me list the current ALB instances
    Assistant: There are currently 2 ALB instances. The details are as follows:
    
    | Instance ID | Name | Address Type | Status |
    |--------|------|----------|------|
    | alb-xxxx1 | my-alb-1 | Internet | Active |
    | alb-xxxx2 | my-alb-2 | Intranet | Active |

Informasi lebih lanjut

Penagihan

  • ALB Edisi Enhanced saat ini dalam pratinjau publik dan gratis untuk digunakan.

  • Biaya nama domain dan resolusi DNS: Selain biaya nama domain dari penyedia Anda, konfigurasi resolusi DNS di Alibaba Cloud dikenai biaya resolusi otoritatif publik.

  • Biaya sertifikat: Pembelian sertifikat dari Alibaba Cloud atau pengunggahan sertifikat ke Alibaba Cloud dikenai biaya sertifikat server.

  • Biaya Function Compute: Biaya ditagih oleh Function Compute.

  • Biaya model Model Studio: Pemanggilan API Model Studio dikenai biaya model.

Wilayah yang mendukung ALB Edisi Ditingkatkan

Area

Region

Zone

China

China (Ulanqab)

Zone A, Zone B, dan Zone C

China (Hangzhou)

Zone J dan Zone K

China (Beijing)

Zone I, Zone K, dan Zone L

China (Shanghai)

Zone B dan Zone F

China (Hong Kong)

Zone B, Zone C, dan Zone D

Asia-Pacific

Singapore

Zone A, Zone B, dan Zone C

Japan (Tokyo)

Zone B, Zone C, dan Zone E

Malaysia (Kuala Lumpur)

Zone A, Zone B, dan Zone C

Europe and Americas

Germany (Frankfurt)

Zone A dan Zone B

US (Silicon Valley)

Zone A dan Zone B

Middle East

UAE (Dubai)

Zone A dan Zone B

Saran

  • Strategi pengambilan daftar alat: Jika Anda memiliki jumlah alat yang sedikit, Anda dapat langsung memanggil tools/list untuk mengambil daftar lengkap. Jika Anda memiliki banyak alat, kami menyarankan Anda menggunakan x-aliyun-alb-search untuk pencarian semantik guna menemukan alat yang relevan dan mengurangi konsumsi token.

  • Optimasi deskripsi alat: Deskripsi alat dalam konfigurasi OpenAPI secara langsung memengaruhi akurasi pencocokan pencarian semantik. Kami menyarankan Anda menggambarkan tujuan setiap alat secara akurat dalam bahasa alami. Jika perlu, Anda dapat menggunakan model bahasa besar (LLM) untuk mengoptimalkan teks deskripsi.

  • Resolusi nama domain jaringan internal: ALB Edisi Enhanced menyelesaikan alamat server MCP melalui DNS publik. Jika server MCP diterapkan di VPC, Anda harus mengarahkan nama domain ke alamat IP pribadi yang sesuai di DNS publik dan memastikan bahwa instans ALB dapat mengakses server tersebut.

  • Keamanan: Hindari hardcoding kunci API di kode klien. Kami menyarankan Anda mengelolanya menggunakan variabel lingkungan atau layanan manajemen kunci.

FAQ

Koneksi server MCP mengalami timeout, melaporkan "upstream connect error" atau "connection timeout"

  • Pastikan jaringan antara instans ALB dan server MCP dapat dijangkau.

    • Jika layanan MCP diterapkan di VPC: Pastikan instans ALB dapat mengakses layanan MCP melalui jaringan pribadi. Konektivitas dibuat secara default dalam VPC yang sama. Untuk skenario lintas-VPC atau lintas-wilayah, Anda harus menghubungkan jaringan pribadi menggunakan produk seperti Cloud Enterprise Network. Juga, pastikan aturan grup keamanan mengizinkan instans ALB mengakses port layanan MCP.

    • Jika layanan MCP diterapkan di jaringan publik: Pastikan vSwitch tempat instans ALB berada dikonfigurasi dengan benar untuk SNAT publik.

  • Konfirmasi bahwa resolusi nama domain dikonfigurasi dengan benar di DNS publik.

  • Konfirmasi bahwa proses server MCP telah dimulai dan mendengarkan pada port yang diharapkan.

Pencarian semantik tidak mengembalikan alat yang diharapkan

  • Periksa apakah deskripsi alat cukup akurat. Pencarian semantik bergantung pada kesamaan semantik antara deskripsi dan kueri.

  • Tingkatkan nilai parameter topk untuk mengembalikan lebih banyak kandidat alat.

Layanan tipe Function Compute tidak dapat dipanggil setelah ditambahkan

  • Konfirmasi bahwa format file konfigurasi OpenAPI benar dan path serta parameter API konsisten dengan perilaku aktual fungsi.

  • Konfirmasi bahwa kode telah berhasil diterapkan ke layanan Function Compute.