func()

in pkg/providers/imagefamily/nodeimageversionsclient.go [41:78]


func (l *NodeImageVersionsClient) List(ctx context.Context, location, subscription string) (NodeImageVersionsResponse, error) {
	resourceURL := fmt.Sprintf(
		"https://management.azure.com/subscriptions/%s/providers/Microsoft.ContainerService/locations/%s/nodeImageVersions?api-version=%s",
		subscription, location, "2024-04-02-preview",
	)

	token, err := l.cred.GetToken(ctx, policy.TokenRequestOptions{
		Scopes: []string{"https://management.azure.com/.default"},
	})
	if err != nil {
		return NodeImageVersionsResponse{}, err
	}

	req, err := http.NewRequestWithContext(context.Background(), "GET", resourceURL, nil)
	if err != nil {
		return NodeImageVersionsResponse{}, err
	}

	req.Header.Set("Authorization", "Bearer "+token.Token)
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return NodeImageVersionsResponse{}, err
	}
	defer resp.Body.Close()

	var response NodeImageVersionsResponse
	decoder := json.NewDecoder(resp.Body)
	err = decoder.Decode(&response)
	if err != nil {
		return NodeImageVersionsResponse{}, err
	}

	response.Values = FilteredNodeImages(response.Values)
	return response, nil
}