Я понял это, необходимый формат был буквально тем, что опубликовал Google, поэтому мне просто пришлось настроить тело в соответствии с тем, что я хочу. Пример, приведенный ниже, это просто «Доказательство концепции», и ему потребуются некоторые функции для автоматизации заполнения массива.
$URL = 'https://www.googleapis.com/batch/admin/directory_v1'
$boundary = [System.Guid]::NewGuid().ToString();
$LF = "`r`n";
$header = @{
"Content-type" = "multipart/mixed; boundary=$boundary"
"Authorization" = "Bearer <token>"
}
$request1 = [pscustomobject][ordered]@{
email = "vas1@gs.vasil.com"
role = "MEMBER"
} | ConvertTo-Json
$request2 = [pscustomobject][ordered]@{
email = "vas2@gs.vasil.com"
role = "MEMBER"
} | ConvertTo-Json
$nestedBody = (
"--$boundary",
"Content-Type: application/http$LF",
"POST /admin/directory/v1/groups/vtest@gs.vasil.com/members",
"Content-Type: application/json$LF",
"$($request1)$LF",
"--$boundary--",
"Content-Type: application/http$LF",
"POST /admin/directory/v1/groups/vtest@gs.vasil.com/members",
"Content-Type: application/json$LF",
"$($request2)$LF",
"--$boundary--"
) -join $LF
$sendRequest = @{
Uri = $URL
header = $header
Method = "Post"
Body = $nestedBody
}
Invoke-RestMethod @sendRequest
Я пришел к таким выводам, установив прокси Fiddler
и посмотрев, как мой запроскак на практике, смотрите скриншот ниже.