Bagikan melalui


@azure/core-rest-pipeline package

Antarmuka

AddPipelineOptions

Opsi saat menambahkan kebijakan ke alur. Digunakan untuk mengekspresikan dependensi pada kebijakan lain.

Agent

Antarmuka yang kompatibel dengan http.AgentNodeJS. Kami ingin menghindari mengekspor ulang antarmuka aktual secara publik, karena mungkin bervariasi di seluruh versi runtime.

AuthorizeRequestOnChallengeOptions

Opsi yang dikirim ke callback authorizeRequestOnChallenge

AuthorizeRequestOptions

Opsi yang dikirim ke panggilan balik authorizeRequest

AuxiliaryAuthenticationHeaderPolicyOptions

Opsi untuk mengonfigurasi auxiliaryAuthenticationHeaderPolicy

BearerTokenAuthenticationPolicyOptions

Opsi untuk mengonfigurasi bearerTokenAuthenticationPolicy

BodyPart

Bagian dari isi permintaan dalam permintaan multipihak.

ChallengeCallbacks

Opsi untuk mengambil alih pemrosesan tantangan Evaluasi Akses Berkelanjutan.

CreateFileFromStreamOptions

Opsi tambahan untuk createFile saat aliran sedang diteruskan.

CreateFileOptions

Opsi yang diteruskan ke createFile yang menentukan metadata tentang file.

DefaultRetryPolicyOptions

Opsi yang mengontrol cara mencoba kembali permintaan yang gagal.

ExponentialRetryPolicyOptions

Opsi yang mengontrol cara mencoba kembali permintaan yang gagal.

HttpClient

Antarmuka yang diperlukan untuk klien yang membuat permintaan HTTP atas nama alur.

HttpHeaders

Mewakili sekumpulan header HTTP pada permintaan/respons. Nama header diperlakukan sebagai tidak peka huruf besar/kecil.

InternalPipelineOptions

Menentukan opsi yang digunakan untuk mengonfigurasi opsi internal alur HTTP untuk klien SDK.

KeyObject

Antarmuka yang kompatibel dengan tls.KeyObjectNodeJS. Kami ingin menghindari mengekspor ulang antarmuka aktual secara publik, karena mungkin bervariasi di seluruh versi runtime.

LogPolicyOptions

Opsi untuk mengonfigurasi logPolicy.

MultipartRequestBody

Isi permintaan yang terdiri dari beberapa bagian.

Pipeline

Mewakili alur untuk membuat permintaan HTTP ke URL. Alur dapat memiliki beberapa kebijakan untuk mengelola manipulasi setiap permintaan sebelum dan sesudah dibuat ke server.

PipelineOptions

Menentukan opsi yang digunakan untuk mengonfigurasi alur HTTP untuk klien SDK.

PipelinePolicy

Kebijakan alur memanipulasi permintaan saat melakukan perjalanan melalui alur. Ini secara konseptual adalah middleware yang diizinkan untuk memodifikasi permintaan sebelum dibuat serta respons ketika diterima.

PipelineRequest

Metadata tentang permintaan yang dibuat oleh alur.

PipelineRequestOptions

Pengaturan untuk menginisialisasi permintaan. Hampir setara dengan Partial<PipelineRequest>, tetapi url wajib.

PipelineResponse

Metadata tentang respons yang diterima oleh alur.

PipelineRetryOptions

Opsi yang mengontrol cara mencoba kembali permintaan yang gagal.

ProxySettings

Opsi untuk mengonfigurasi proksi untuk permintaan keluar (hanyaNode.js).

PxfObject

Antarmuka yang kompatibel dengan tls.PxfObjectNodeJS. Kami ingin menghindari mengekspor ulang antarmuka aktual secara publik, karena mungkin bervariasi di seluruh versi runtime.

RedirectPolicyOptions

Opsi untuk bagaimana respons pengalihan ditangani.

RestError

Jenis kesalahan kustom untuk permintaan alur yang gagal.

RestErrorConstructor

Jenis kesalahan kustom untuk permintaan alur yang gagal.

RestErrorOptions

Opsi yang didukung oleh RestError.

RetryInformation

Informasi yang diberikan untuk strategi coba lagi tentang kemajuan kebijakan coba lagi saat ini.

RetryModifiers

Properti yang dapat mengubah perilaku kebijakan coba lagi.

RetryPolicyOptions

Opsi untuk retryPolicy

RetryStrategy

Strategi coba lagi dimaksudkan untuk menentukan apakah akan mencoba kembali atau tidak, dan cara mencoba kembali.

SystemErrorRetryPolicyOptions

Opsi yang mengontrol cara mencoba kembali permintaan yang gagal.

TelemetryOptions

Menentukan opsi yang digunakan untuk mengonfigurasi telemetri umum dan info pelacakan

ThrottlingRetryPolicyOptions

Opsi yang mengontrol cara mencoba kembali permintaan yang gagal.

TlsSettings

Mewakili sertifikat untuk autentikasi TLS.

TracingPolicyOptions

Opsi untuk mengonfigurasi kebijakan pelacakan.

UserAgentPolicyOptions

Opsi untuk menambahkan detail agen pengguna ke permintaan keluar.

Alias Jenis

FormDataMap

Objek sederhana yang menyediakan data formulir, seolah-olah dari formulir browser.

FormDataValue

Setiap entri data formulir dapat berupa string, Blob, atau File. Jika Anda ingin meneruskan file dengan nama tetapi tidak memiliki akses ke kelas File, Anda dapat menggunakan pembantu createFile untuk membuatnya.

HttpMethods

Metode HTTP yang didukung untuk digunakan saat membuat permintaan.

PipelinePhase

Kebijakan dijalankan dalam fase. Urutan eksekusi adalah:

  1. Fase Serialisasi
  2. Kebijakan tidak dalam fase
  3. Fase Deserialisasi
  4. Fase Coba Lagi
  5. Fase Tanda Tangan
RawHttpHeaders

Koleksi HttpHeaders direpresentasikan sebagai objek JSON sederhana.

RawHttpHeadersInput

Koleksi HttpHeaders untuk input, diwakili sebagai objek JSON sederhana.

RequestBodyType

Jenis isi yang didukung pada permintaan. NodeJS.ReadableStream dan () => NodeJS.ReadableStream hanya node. Blob, ReadableStream<Uint8Array>, dan () => ReadableStream<Uint8Array> hanya browser.

SendRequest

Antarmuka sederhana untuk membuat permintaan alur dan menerima respons.

TransferProgressEvent

Diaktifkan sebagai respons terhadap kemajuan unggahan atau unduhan.

Fungsi

agentPolicy(Agent)

Mendapatkan kebijakan alur yang menetapkan http.agent

auxiliaryAuthenticationHeaderPolicy(AuxiliaryAuthenticationHeaderPolicyOptions)

Kebijakan untuk token eksternal ke header x-ms-authorization-auxiliary. Header ini akan digunakan saat membuat aplikasi lintas penyewa, kita mungkin perlu menangani permintaan autentikasi untuk sumber daya yang berada di penyewa yang berbeda. Anda dapat melihat dokumen ARM untuk rundown cara kerja fitur ini

bearerTokenAuthenticationPolicy(BearerTokenAuthenticationPolicyOptions)

Kebijakan yang dapat meminta token dari implementasi TokenCredential lalu menerapkannya ke header Otorisasi permintaan sebagai token Pembawa.

createDefaultHttpClient()

Buat HttpClient yang benar untuk lingkungan saat ini.

createEmptyPipeline()

Membuat alur yang benar-benar kosong. Berguna untuk menguji atau membuat yang kustom.

createFile(Uint8Array, string, CreateFileOptions)

Buat objek yang mengimplementasikan antarmuka File. Objek ini dimaksudkan untuk diteruskan ke RequestBodyType.formData, dan tidak dijamin berfungsi seperti yang diharapkan dalam situasi lain.

Gunakan fungsi ini membuat objek File untuk digunakan di RequestBodyType.formData di lingkungan tempat objek File global tidak tersedia.

createFileFromStream(() => ReadableStream<Uint8Array> | ReadableStream, string, CreateFileFromStreamOptions)

Buat objek yang mengimplementasikan antarmuka File. Objek ini dimaksudkan untuk diteruskan ke RequestBodyType.formData, dan tidak dijamin berfungsi seperti yang diharapkan dalam situasi lain.

Gunakan fungsi ini untuk:

  • Buat objek File untuk digunakan di RequestBodyType.formData di lingkungan tempat objek File global tidak tersedia.
  • Buat objek Seperti file dari aliran yang dapat dibaca tanpa membaca aliran ke dalam memori.
createHttpHeaders(RawHttpHeadersInput)

Membuat objek yang memenuhi antarmuka HttpHeaders.

createPipelineFromOptions(InternalPipelineOptions)

Buat alur baru dengan sekumpulan kebijakan default yang dapat disesuaikan.

createPipelineRequest(PipelineRequestOptions)

Membuat permintaan alur baru dengan opsi yang diberikan. Metode ini untuk memungkinkan pengaturan nilai default yang mudah dan tidak diperlukan.

decompressResponsePolicy()

Kebijakan untuk mengaktifkan dekompresi respons sesuai dengan https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding header Accept-Encoding

defaultRetryPolicy(DefaultRetryPolicyOptions)

Kebijakan yang mencoba kembali sesuai dengan tiga strategi:

  • Saat server mengirim respons 429 dengan header Retry-After.
  • Ketika ada kesalahan di lapisan transportasi yang mendasar (misalnya kegagalan pencarian DNS).
  • Atau jika tidak jika permintaan keluar gagal, permintaan akan mencoba kembali dengan penundaan yang meningkat secara eksponensial.
exponentialRetryPolicy(ExponentialRetryPolicyOptions)

Kebijakan yang mencoba mencoba kembali permintaan sambil memperkenalkan penundaan yang meningkat secara eksponensial.

formDataPolicy()

Kebijakan yang mengodekan FormData pada permintaan ke dalam isi.

getDefaultProxySettings(string)

Metode ini mengonversi url proksi menjadi ProxySettings untuk digunakan dengan ProxyPolicy. Jika tidak ada argumen yang diberikan, ia mencoba mengurai URL proksi dari variabel lingkungan HTTPS_PROXY atau HTTP_PROXY.

isRestError(unknown)

Typeguard untuk RestError

logPolicy(LogPolicyOptions)

Kebijakan yang mencatat semua permintaan dan respons.

multipartPolicy()

Kebijakan alur untuk permintaan multipihak

ndJsonPolicy()

ndJsonPolicy adalah kebijakan yang digunakan untuk mengontrol pengaturan tetap hidup untuk setiap permintaan.

proxyPolicy(ProxySettings, { customNoProxyList?: string[] })

Kebijakan yang memungkinkan seseorang menerapkan pengaturan proksi ke semua permintaan. Jika tidak melewati pengaturan statis, pengaturan akan diambil dari variabel lingkungan HTTPS_PROXY atau HTTP_PROXY.

redirectPolicy(RedirectPolicyOptions)

Kebijakan untuk mengikuti Header lokasi dari server untuk mendukung pengalihan sisi server. Di browser, kebijakan ini tidak digunakan.

retryPolicy(RetryStrategy[], RetryPolicyOptions)

retryPolicy adalah kebijakan umum untuk mengaktifkan permintaan coba lagi saat kondisi tertentu terpenuhi

setClientRequestIdPolicy(string)

Setiap PipelineRequest mendapatkan id unik saat dibuat. Kebijakan ini meneruskan id unik tersebut melalui header HTTP untuk memungkinkan telemetri dan pelacakan yang lebih baik.

systemErrorRetryPolicy(SystemErrorRetryPolicyOptions)

Kebijakan coba lagi yang secara khusus berusaha menangani kesalahan di lapisan transportasi yang mendasar (misalnya kegagalan pencarian DNS) daripada kode kesalahan yang dapat diulang dari server itu sendiri.

throttlingRetryPolicy(ThrottlingRetryPolicyOptions)

Kebijakan yang mencoba kembali saat server mengirim respons 429 dengan header Retry-After.

Untuk mempelajari lebih lanjut, lihat https://learn.microsoft.com/azure/azure-resource-manager/resource-manager-request-limits, https://learn.microsoft.com/azure/azure-subscription-service-limits, dan https://learn.microsoft.com/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors

tlsPolicy(TlsSettings)

Mendapatkan kebijakan alur yang menambahkan sertifikat klien ke agen HttpClient untuk autentikasi.

tracingPolicy(TracingPolicyOptions)

Kebijakan sederhana untuk membuat Rentang OpenTelemetry untuk setiap permintaan yang dibuat oleh alur yang memiliki SpanOptions dengan induk. Permintaan yang dibuat tanpa rentang induk tidak akan direkam.

userAgentPolicy(UserAgentPolicyOptions)

Kebijakan yang mengatur header User-Agent (atau setara) untuk mencerminkan versi pustaka.

Detail Fungsi

agentPolicy(Agent)

Mendapatkan kebijakan alur yang menetapkan http.agent

function agentPolicy(agent?: Agent): PipelinePolicy

Parameter

agent
Agent

Mengembalikan

auxiliaryAuthenticationHeaderPolicy(AuxiliaryAuthenticationHeaderPolicyOptions)

Kebijakan untuk token eksternal ke header x-ms-authorization-auxiliary. Header ini akan digunakan saat membuat aplikasi lintas penyewa, kita mungkin perlu menangani permintaan autentikasi untuk sumber daya yang berada di penyewa yang berbeda. Anda dapat melihat dokumen ARM untuk rundown cara kerja fitur ini

function auxiliaryAuthenticationHeaderPolicy(options: AuxiliaryAuthenticationHeaderPolicyOptions): PipelinePolicy

Parameter

Mengembalikan

bearerTokenAuthenticationPolicy(BearerTokenAuthenticationPolicyOptions)

Kebijakan yang dapat meminta token dari implementasi TokenCredential lalu menerapkannya ke header Otorisasi permintaan sebagai token Pembawa.

function bearerTokenAuthenticationPolicy(options: BearerTokenAuthenticationPolicyOptions): PipelinePolicy

Parameter

Mengembalikan

createDefaultHttpClient()

Buat HttpClient yang benar untuk lingkungan saat ini.

function createDefaultHttpClient(): HttpClient

Mengembalikan

createEmptyPipeline()

Membuat alur yang benar-benar kosong. Berguna untuk menguji atau membuat yang kustom.

function createEmptyPipeline(): Pipeline

Mengembalikan

createFile(Uint8Array, string, CreateFileOptions)

Buat objek yang mengimplementasikan antarmuka File. Objek ini dimaksudkan untuk diteruskan ke RequestBodyType.formData, dan tidak dijamin berfungsi seperti yang diharapkan dalam situasi lain.

Gunakan fungsi ini membuat objek File untuk digunakan di RequestBodyType.formData di lingkungan tempat objek File global tidak tersedia.

function createFile(content: Uint8Array, name: string, options?: CreateFileOptions): File

Parameter

content

Uint8Array

konten file sebagai Uint8Array dalam memori.

name

string

nama file.

options
CreateFileOptions

metadata opsional tentang file, misalnya nama file, ukuran file, jenis MIME.

Mengembalikan

File

createFileFromStream(() => ReadableStream<Uint8Array> | ReadableStream, string, CreateFileFromStreamOptions)

Buat objek yang mengimplementasikan antarmuka File. Objek ini dimaksudkan untuk diteruskan ke RequestBodyType.formData, dan tidak dijamin berfungsi seperti yang diharapkan dalam situasi lain.

Gunakan fungsi ini untuk:

  • Buat objek File untuk digunakan di RequestBodyType.formData di lingkungan tempat objek File global tidak tersedia.
  • Buat objek Seperti file dari aliran yang dapat dibaca tanpa membaca aliran ke dalam memori.
function createFileFromStream(stream: () => ReadableStream<Uint8Array> | ReadableStream, name: string, options?: CreateFileFromStreamOptions): File

Parameter

stream

() => ReadableStream<Uint8Array> | ReadableStream

konten file sebagai panggilan balik yang mengembalikan aliran. Ketika objek File yang dibuat menggunakan createFile diteruskan dalam peta data formulir permintaan, aliran tidak akan dibaca ke dalam memori dan sebaliknya akan dialirkan saat permintaan dibuat. Jika terjadi coba lagi, aliran perlu dibaca lagi, sehingga panggilan balik ini HARUS mengembalikan aliran baru jika memungkinkan.

name

string

nama file.

options
CreateFileFromStreamOptions

metadata opsional tentang file, misalnya nama file, ukuran file, jenis MIME.

Mengembalikan

File

createHttpHeaders(RawHttpHeadersInput)

Membuat objek yang memenuhi antarmuka HttpHeaders.

function createHttpHeaders(rawHeaders?: RawHttpHeadersInput): HttpHeaders

Parameter

rawHeaders
RawHttpHeadersInput

Objek sederhana yang mewakili header awal

Mengembalikan

createPipelineFromOptions(InternalPipelineOptions)

Buat alur baru dengan sekumpulan kebijakan default yang dapat disesuaikan.

function createPipelineFromOptions(options: InternalPipelineOptions): Pipeline

Parameter

options
InternalPipelineOptions

Opsi untuk mengonfigurasi alur kustom.

Mengembalikan

createPipelineRequest(PipelineRequestOptions)

Membuat permintaan alur baru dengan opsi yang diberikan. Metode ini untuk memungkinkan pengaturan nilai default yang mudah dan tidak diperlukan.

function createPipelineRequest(options: PipelineRequestOptions): PipelineRequest

Parameter

options
PipelineRequestOptions

Opsi untuk membuat permintaan.

Mengembalikan

decompressResponsePolicy()

Kebijakan untuk mengaktifkan dekompresi respons sesuai dengan https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding header Accept-Encoding

function decompressResponsePolicy(): PipelinePolicy

Mengembalikan

defaultRetryPolicy(DefaultRetryPolicyOptions)

Kebijakan yang mencoba kembali sesuai dengan tiga strategi:

  • Saat server mengirim respons 429 dengan header Retry-After.
  • Ketika ada kesalahan di lapisan transportasi yang mendasar (misalnya kegagalan pencarian DNS).
  • Atau jika tidak jika permintaan keluar gagal, permintaan akan mencoba kembali dengan penundaan yang meningkat secara eksponensial.
function defaultRetryPolicy(options?: DefaultRetryPolicyOptions): PipelinePolicy

Parameter

Mengembalikan

exponentialRetryPolicy(ExponentialRetryPolicyOptions)

Kebijakan yang mencoba mencoba kembali permintaan sambil memperkenalkan penundaan yang meningkat secara eksponensial.

function exponentialRetryPolicy(options?: ExponentialRetryPolicyOptions): PipelinePolicy

Parameter

options
ExponentialRetryPolicyOptions

Opsi yang mengonfigurasi logika coba lagi.

Mengembalikan

formDataPolicy()

Kebijakan yang mengodekan FormData pada permintaan ke dalam isi.

function formDataPolicy(): PipelinePolicy

Mengembalikan

getDefaultProxySettings(string)

Peringatan

API ini sudah tidak digunakan lagi.

  • Internally this method is no longer necessary when setting proxy information.

Metode ini mengonversi url proksi menjadi ProxySettings untuk digunakan dengan ProxyPolicy. Jika tidak ada argumen yang diberikan, ia mencoba mengurai URL proksi dari variabel lingkungan HTTPS_PROXY atau HTTP_PROXY.

function getDefaultProxySettings(proxyUrl?: string): ProxySettings | undefined

Parameter

proxyUrl

string

Url proksi yang akan digunakan. Mungkin berisi informasi autentikasi.

Mengembalikan

ProxySettings | undefined

isRestError(unknown)

Typeguard untuk RestError

function isRestError(e: unknown): e

Parameter

e

unknown

Sesuatu tertangkap oleh klausul tangkapan.

Mengembalikan

e

logPolicy(LogPolicyOptions)

Kebijakan yang mencatat semua permintaan dan respons.

function logPolicy(options?: LogPolicyOptions): PipelinePolicy

Parameter

options
LogPolicyOptions

Opsi untuk mengonfigurasi logPolicy.

Mengembalikan

multipartPolicy()

Kebijakan alur untuk permintaan multipihak

function multipartPolicy(): PipelinePolicy

Mengembalikan

ndJsonPolicy()

ndJsonPolicy adalah kebijakan yang digunakan untuk mengontrol pengaturan tetap hidup untuk setiap permintaan.

function ndJsonPolicy(): PipelinePolicy

Mengembalikan

proxyPolicy(ProxySettings, { customNoProxyList?: string[] })

Kebijakan yang memungkinkan seseorang menerapkan pengaturan proksi ke semua permintaan. Jika tidak melewati pengaturan statis, pengaturan akan diambil dari variabel lingkungan HTTPS_PROXY atau HTTP_PROXY.

function proxyPolicy(proxySettings?: ProxySettings, options?: { customNoProxyList?: string[] }): PipelinePolicy

Parameter

proxySettings
ProxySettings

ProxySettings untuk digunakan pada setiap permintaan.

options

{ customNoProxyList?: string[] }

pengaturan tambahan, misalnya, pola NO_PROXY kustom

Mengembalikan

redirectPolicy(RedirectPolicyOptions)

Kebijakan untuk mengikuti Header lokasi dari server untuk mendukung pengalihan sisi server. Di browser, kebijakan ini tidak digunakan.

function redirectPolicy(options?: RedirectPolicyOptions): PipelinePolicy

Parameter

options
RedirectPolicyOptions

Opsi untuk mengontrol perilaku kebijakan.

Mengembalikan

retryPolicy(RetryStrategy[], RetryPolicyOptions)

retryPolicy adalah kebijakan umum untuk mengaktifkan permintaan coba lagi saat kondisi tertentu terpenuhi

function retryPolicy(strategies: RetryStrategy[], options?: RetryPolicyOptions): PipelinePolicy

Parameter

strategies

RetryStrategy[]

Mengembalikan

setClientRequestIdPolicy(string)

Setiap PipelineRequest mendapatkan id unik saat dibuat. Kebijakan ini meneruskan id unik tersebut melalui header HTTP untuk memungkinkan telemetri dan pelacakan yang lebih baik.

function setClientRequestIdPolicy(requestIdHeaderName?: string): PipelinePolicy

Parameter

requestIdHeaderName

string

Nama header untuk meneruskan ID permintaan.

Mengembalikan

systemErrorRetryPolicy(SystemErrorRetryPolicyOptions)

Kebijakan coba lagi yang secara khusus berusaha menangani kesalahan di lapisan transportasi yang mendasar (misalnya kegagalan pencarian DNS) daripada kode kesalahan yang dapat diulang dari server itu sendiri.

function systemErrorRetryPolicy(options?: SystemErrorRetryPolicyOptions): PipelinePolicy

Parameter

options
SystemErrorRetryPolicyOptions

Opsi yang menyesuaikan kebijakan.

Mengembalikan

throttlingRetryPolicy(ThrottlingRetryPolicyOptions)

Kebijakan yang mencoba kembali saat server mengirim respons 429 dengan header Retry-After.

Untuk mempelajari lebih lanjut, lihat https://learn.microsoft.com/azure/azure-resource-manager/resource-manager-request-limits, https://learn.microsoft.com/azure/azure-subscription-service-limits, dan https://learn.microsoft.com/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors

function throttlingRetryPolicy(options?: ThrottlingRetryPolicyOptions): PipelinePolicy

Parameter

options
ThrottlingRetryPolicyOptions

Opsi yang mengonfigurasi logika coba lagi.

Mengembalikan

tlsPolicy(TlsSettings)

Mendapatkan kebijakan alur yang menambahkan sertifikat klien ke agen HttpClient untuk autentikasi.

function tlsPolicy(tlsSettings?: TlsSettings): PipelinePolicy

Parameter

tlsSettings
TlsSettings

Mengembalikan

tracingPolicy(TracingPolicyOptions)

Kebijakan sederhana untuk membuat Rentang OpenTelemetry untuk setiap permintaan yang dibuat oleh alur yang memiliki SpanOptions dengan induk. Permintaan yang dibuat tanpa rentang induk tidak akan direkam.

function tracingPolicy(options?: TracingPolicyOptions): PipelinePolicy

Parameter

options
TracingPolicyOptions

Opsi untuk mengonfigurasi telemetri yang dicatat oleh kebijakan pelacakan.

Mengembalikan

userAgentPolicy(UserAgentPolicyOptions)

Kebijakan yang mengatur header User-Agent (atau setara) untuk mencerminkan versi pustaka.

function userAgentPolicy(options?: UserAgentPolicyOptions): PipelinePolicy

Parameter

options
UserAgentPolicyOptions

Opsi untuk menyesuaikan nilai agen pengguna.

Mengembalikan