chore(all): auto-regenerate gapics (#4369)
This is an auto-generated regeneration of the gapic clients by
cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is
submitted, genbot will update this PR with a newer dependency to the newer
version of genproto and assign reviewers to this PR.
If you have been assigned to review this PR, please:
- Ensure that the version of genproto in go.mod has been updated.
- Ensure that CI is passing. If it's failing, it requires your manual attention.
- Approve and submit this PR if you believe it's ready to ship.
Corresponding genproto PR: https://github.com/googleapis/go-genproto/pull/630
Changes:
chore(datastream): Add package/namespace options for C#, Ruby and PHP. This is a breaking change *only* for those languages, and packages for those languages have not been published yet.
PiperOrigin-RevId: 382509175
Source-Link: https://github.com/googleapis/googleapis/commit/0c62f63ad7ca987f1c22f524d6378cff29da8a33
diff --git a/compute/apiv1/firewall_policies_client.go b/compute/apiv1/firewall_policies_client.go
new file mode 100644
index 0000000..4b224a9
--- /dev/null
+++ b/compute/apiv1/firewall_policies_client.go
@@ -0,0 +1,1194 @@
+// Copyright 2021 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
+
+package compute
+
+import (
+ "bytes"
+ "context"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/option"
+ "google.golang.org/api/option/internaloption"
+ httptransport "google.golang.org/api/transport/http"
+ computepb "google.golang.org/genproto/googleapis/cloud/compute/v1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/metadata"
+ "google.golang.org/protobuf/encoding/protojson"
+)
+
+var newFirewallPoliciesClientHook clientHook
+
+// FirewallPoliciesCallOptions contains the retry settings for each method of FirewallPoliciesClient.
+type FirewallPoliciesCallOptions struct {
+ AddAssociation []gax.CallOption
+ AddRule []gax.CallOption
+ CloneRules []gax.CallOption
+ Delete []gax.CallOption
+ Get []gax.CallOption
+ GetAssociation []gax.CallOption
+ GetIamPolicy []gax.CallOption
+ GetRule []gax.CallOption
+ Insert []gax.CallOption
+ List []gax.CallOption
+ ListAssociations []gax.CallOption
+ Move []gax.CallOption
+ Patch []gax.CallOption
+ PatchRule []gax.CallOption
+ RemoveAssociation []gax.CallOption
+ RemoveRule []gax.CallOption
+ SetIamPolicy []gax.CallOption
+ TestIamPermissions []gax.CallOption
+}
+
+// internalFirewallPoliciesClient is an interface that defines the methods availaible from Google Compute Engine API.
+type internalFirewallPoliciesClient interface {
+ Close() error
+ setGoogleClientInfo(...string)
+ Connection() *grpc.ClientConn
+ AddAssociation(context.Context, *computepb.AddAssociationFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ AddRule(context.Context, *computepb.AddRuleFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ CloneRules(context.Context, *computepb.CloneRulesFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ Delete(context.Context, *computepb.DeleteFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ Get(context.Context, *computepb.GetFirewallPolicyRequest, ...gax.CallOption) (*computepb.FirewallPolicy, error)
+ GetAssociation(context.Context, *computepb.GetAssociationFirewallPolicyRequest, ...gax.CallOption) (*computepb.FirewallPolicyAssociation, error)
+ GetIamPolicy(context.Context, *computepb.GetIamPolicyFirewallPolicyRequest, ...gax.CallOption) (*computepb.Policy, error)
+ GetRule(context.Context, *computepb.GetRuleFirewallPolicyRequest, ...gax.CallOption) (*computepb.FirewallPolicyRule, error)
+ Insert(context.Context, *computepb.InsertFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ List(context.Context, *computepb.ListFirewallPoliciesRequest, ...gax.CallOption) (*computepb.FirewallPolicyList, error)
+ ListAssociations(context.Context, *computepb.ListAssociationsFirewallPolicyRequest, ...gax.CallOption) (*computepb.FirewallPoliciesListAssociationsResponse, error)
+ Move(context.Context, *computepb.MoveFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ Patch(context.Context, *computepb.PatchFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ PatchRule(context.Context, *computepb.PatchRuleFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ RemoveAssociation(context.Context, *computepb.RemoveAssociationFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ RemoveRule(context.Context, *computepb.RemoveRuleFirewallPolicyRequest, ...gax.CallOption) (*computepb.Operation, error)
+ SetIamPolicy(context.Context, *computepb.SetIamPolicyFirewallPolicyRequest, ...gax.CallOption) (*computepb.Policy, error)
+ TestIamPermissions(context.Context, *computepb.TestIamPermissionsFirewallPolicyRequest, ...gax.CallOption) (*computepb.TestPermissionsResponse, error)
+}
+
+// FirewallPoliciesClient is a client for interacting with Google Compute Engine API.
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+//
+// The FirewallPolicies API.
+type FirewallPoliciesClient struct {
+ // The internal transport-dependent client.
+ internalClient internalFirewallPoliciesClient
+
+ // The call options for this service.
+ CallOptions *FirewallPoliciesCallOptions
+}
+
+// Wrapper methods routed to the internal client.
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *FirewallPoliciesClient) Close() error {
+ return c.internalClient.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *FirewallPoliciesClient) setGoogleClientInfo(keyval ...string) {
+ c.internalClient.setGoogleClientInfo(keyval...)
+}
+
+// Connection returns a connection to the API service.
+//
+// Deprecated.
+func (c *FirewallPoliciesClient) Connection() *grpc.ClientConn {
+ return c.internalClient.Connection()
+}
+
+// AddAssociation inserts an association for the specified firewall policy.
+func (c *FirewallPoliciesClient) AddAssociation(ctx context.Context, req *computepb.AddAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.AddAssociation(ctx, req, opts...)
+}
+
+// AddRule inserts a rule into a firewall policy.
+func (c *FirewallPoliciesClient) AddRule(ctx context.Context, req *computepb.AddRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.AddRule(ctx, req, opts...)
+}
+
+// CloneRules copies rules to the specified firewall policy.
+func (c *FirewallPoliciesClient) CloneRules(ctx context.Context, req *computepb.CloneRulesFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.CloneRules(ctx, req, opts...)
+}
+
+// Delete deletes the specified policy.
+func (c *FirewallPoliciesClient) Delete(ctx context.Context, req *computepb.DeleteFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.Delete(ctx, req, opts...)
+}
+
+// Get returns the specified firewall policy.
+func (c *FirewallPoliciesClient) Get(ctx context.Context, req *computepb.GetFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicy, error) {
+ return c.internalClient.Get(ctx, req, opts...)
+}
+
+// GetAssociation gets an association with the specified name.
+func (c *FirewallPoliciesClient) GetAssociation(ctx context.Context, req *computepb.GetAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyAssociation, error) {
+ return c.internalClient.GetAssociation(ctx, req, opts...)
+}
+
+// GetIamPolicy gets the access control policy for a resource. May be empty if no such policy or resource exists.
+func (c *FirewallPoliciesClient) GetIamPolicy(ctx context.Context, req *computepb.GetIamPolicyFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Policy, error) {
+ return c.internalClient.GetIamPolicy(ctx, req, opts...)
+}
+
+// GetRule gets a rule of the specified priority.
+func (c *FirewallPoliciesClient) GetRule(ctx context.Context, req *computepb.GetRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyRule, error) {
+ return c.internalClient.GetRule(ctx, req, opts...)
+}
+
+// Insert creates a new policy in the specified project using the data included in the request.
+func (c *FirewallPoliciesClient) Insert(ctx context.Context, req *computepb.InsertFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.Insert(ctx, req, opts...)
+}
+
+// List lists all the policies that have been configured for the specified project.
+func (c *FirewallPoliciesClient) List(ctx context.Context, req *computepb.ListFirewallPoliciesRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyList, error) {
+ return c.internalClient.List(ctx, req, opts...)
+}
+
+// ListAssociations lists associations of a specified target, i.e., organization or folder.
+func (c *FirewallPoliciesClient) ListAssociations(ctx context.Context, req *computepb.ListAssociationsFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPoliciesListAssociationsResponse, error) {
+ return c.internalClient.ListAssociations(ctx, req, opts...)
+}
+
+// Move moves the specified firewall policy.
+func (c *FirewallPoliciesClient) Move(ctx context.Context, req *computepb.MoveFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.Move(ctx, req, opts...)
+}
+
+// Patch patches the specified policy with the data included in the request.
+func (c *FirewallPoliciesClient) Patch(ctx context.Context, req *computepb.PatchFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.Patch(ctx, req, opts...)
+}
+
+// PatchRule patches a rule of the specified priority.
+func (c *FirewallPoliciesClient) PatchRule(ctx context.Context, req *computepb.PatchRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.PatchRule(ctx, req, opts...)
+}
+
+// RemoveAssociation removes an association for the specified firewall policy.
+func (c *FirewallPoliciesClient) RemoveAssociation(ctx context.Context, req *computepb.RemoveAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.RemoveAssociation(ctx, req, opts...)
+}
+
+// RemoveRule deletes a rule of the specified priority.
+func (c *FirewallPoliciesClient) RemoveRule(ctx context.Context, req *computepb.RemoveRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ return c.internalClient.RemoveRule(ctx, req, opts...)
+}
+
+// SetIamPolicy sets the access control policy on the specified resource. Replaces any existing policy.
+func (c *FirewallPoliciesClient) SetIamPolicy(ctx context.Context, req *computepb.SetIamPolicyFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Policy, error) {
+ return c.internalClient.SetIamPolicy(ctx, req, opts...)
+}
+
+// TestIamPermissions returns permissions that a caller has on the specified resource.
+func (c *FirewallPoliciesClient) TestIamPermissions(ctx context.Context, req *computepb.TestIamPermissionsFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.TestPermissionsResponse, error) {
+ return c.internalClient.TestIamPermissions(ctx, req, opts...)
+}
+
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type firewallPoliciesRESTClient struct {
+ // The http endpoint to connect to.
+ endpoint string
+
+ // The http client.
+ httpClient *http.Client
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewFirewallPoliciesRESTClient creates a new firewall policies rest client.
+//
+// The FirewallPolicies API.
+func NewFirewallPoliciesRESTClient(ctx context.Context, opts ...option.ClientOption) (*FirewallPoliciesClient, error) {
+ clientOpts := append(defaultFirewallPoliciesRESTClientOptions(), opts...)
+ httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...)
+ if err != nil {
+ return nil, err
+ }
+
+ c := &firewallPoliciesRESTClient{
+ endpoint: endpoint,
+ httpClient: httpClient,
+ }
+ c.setGoogleClientInfo()
+
+ return &FirewallPoliciesClient{internalClient: c, CallOptions: &FirewallPoliciesCallOptions{}}, nil
+}
+
+func defaultFirewallPoliciesRESTClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ internaloption.WithDefaultEndpoint("compute.googleapis.com"),
+ internaloption.WithDefaultMTLSEndpoint("compute.mtls.googleapis.com"),
+ internaloption.WithDefaultAudience("https://compute.googleapis.com/"),
+ internaloption.WithDefaultScopes(DefaultAuthScopes()...),
+ }
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *firewallPoliciesRESTClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN")
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *firewallPoliciesRESTClient) Close() error {
+ // Replace httpClient with nil to force cleanup.
+ c.httpClient = nil
+ return nil
+}
+
+// Connection returns a connection to the API service.
+//
+// Deprecated.
+func (c *firewallPoliciesRESTClient) Connection() *grpc.ClientConn {
+ return nil
+}
+
+// AddAssociation inserts an association for the specified firewall policy.
+func (c *firewallPoliciesRESTClient) AddAssociation(ctx context.Context, req *computepb.AddAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetFirewallPolicyAssociationResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/addAssociation", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.ReplaceExistingAssociation != nil {
+ params.Add("replaceExistingAssociation", fmt.Sprintf("%v", req.GetReplaceExistingAssociation()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// AddRule inserts a rule into a firewall policy.
+func (c *firewallPoliciesRESTClient) AddRule(ctx context.Context, req *computepb.AddRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetFirewallPolicyRuleResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/addRule", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// CloneRules copies rules to the specified firewall policy.
+func (c *firewallPoliciesRESTClient) CloneRules(ctx context.Context, req *computepb.CloneRulesFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/cloneRules", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+ if req != nil && req.SourceFirewallPolicy != nil {
+ params.Add("sourceFirewallPolicy", fmt.Sprintf("%v", req.GetSourceFirewallPolicy()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// Delete deletes the specified policy.
+func (c *firewallPoliciesRESTClient) Delete(ctx context.Context, req *computepb.DeleteFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("DELETE", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// Get returns the specified firewall policy.
+func (c *firewallPoliciesRESTClient) Get(ctx context.Context, req *computepb.GetFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicy, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v", req.GetFirewallPolicy())
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.FirewallPolicy{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// GetAssociation gets an association with the specified name.
+func (c *firewallPoliciesRESTClient) GetAssociation(ctx context.Context, req *computepb.GetAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyAssociation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/getAssociation", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.Name != nil {
+ params.Add("name", fmt.Sprintf("%v", req.GetName()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.FirewallPolicyAssociation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// GetIamPolicy gets the access control policy for a resource. May be empty if no such policy or resource exists.
+func (c *firewallPoliciesRESTClient) GetIamPolicy(ctx context.Context, req *computepb.GetIamPolicyFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Policy, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/getIamPolicy", req.GetResource())
+
+ params := url.Values{}
+ if req != nil && req.OptionsRequestedPolicyVersion != nil {
+ params.Add("optionsRequestedPolicyVersion", fmt.Sprintf("%v", req.GetOptionsRequestedPolicyVersion()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Policy{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// GetRule gets a rule of the specified priority.
+func (c *firewallPoliciesRESTClient) GetRule(ctx context.Context, req *computepb.GetRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyRule, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/getRule", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.Priority != nil {
+ params.Add("priority", fmt.Sprintf("%v", req.GetPriority()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.FirewallPolicyRule{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// Insert creates a new policy in the specified project using the data included in the request.
+func (c *firewallPoliciesRESTClient) Insert(ctx context.Context, req *computepb.InsertFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetFirewallPolicyResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies")
+
+ params := url.Values{}
+ if req != nil && req.ParentId != nil {
+ params.Add("parentId", fmt.Sprintf("%v", req.GetParentId()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// List lists all the policies that have been configured for the specified project.
+func (c *firewallPoliciesRESTClient) List(ctx context.Context, req *computepb.ListFirewallPoliciesRequest, opts ...gax.CallOption) (*computepb.FirewallPolicyList, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies")
+
+ params := url.Values{}
+ if req != nil && req.Filter != nil {
+ params.Add("filter", fmt.Sprintf("%v", req.GetFilter()))
+ }
+ if req != nil && req.MaxResults != nil {
+ params.Add("maxResults", fmt.Sprintf("%v", req.GetMaxResults()))
+ }
+ if req != nil && req.OrderBy != nil {
+ params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy()))
+ }
+ if req != nil && req.PageToken != nil {
+ params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken()))
+ }
+ if req != nil && req.ParentId != nil {
+ params.Add("parentId", fmt.Sprintf("%v", req.GetParentId()))
+ }
+ if req != nil && req.ReturnPartialSuccess != nil {
+ params.Add("returnPartialSuccess", fmt.Sprintf("%v", req.GetReturnPartialSuccess()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.FirewallPolicyList{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// ListAssociations lists associations of a specified target, i.e., organization or folder.
+func (c *firewallPoliciesRESTClient) ListAssociations(ctx context.Context, req *computepb.ListAssociationsFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.FirewallPoliciesListAssociationsResponse, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/listAssociations")
+
+ params := url.Values{}
+ if req != nil && req.TargetResource != nil {
+ params.Add("targetResource", fmt.Sprintf("%v", req.GetTargetResource()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("GET", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.FirewallPoliciesListAssociationsResponse{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// Move moves the specified firewall policy.
+func (c *firewallPoliciesRESTClient) Move(ctx context.Context, req *computepb.MoveFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/move", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.ParentId != nil {
+ params.Add("parentId", fmt.Sprintf("%v", req.GetParentId()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// Patch patches the specified policy with the data included in the request.
+func (c *firewallPoliciesRESTClient) Patch(ctx context.Context, req *computepb.PatchFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetFirewallPolicyResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// PatchRule patches a rule of the specified priority.
+func (c *firewallPoliciesRESTClient) PatchRule(ctx context.Context, req *computepb.PatchRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetFirewallPolicyRuleResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/patchRule", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.Priority != nil {
+ params.Add("priority", fmt.Sprintf("%v", req.GetPriority()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// RemoveAssociation removes an association for the specified firewall policy.
+func (c *firewallPoliciesRESTClient) RemoveAssociation(ctx context.Context, req *computepb.RemoveAssociationFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/removeAssociation", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.Name != nil {
+ params.Add("name", fmt.Sprintf("%v", req.GetName()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// RemoveRule deletes a rule of the specified priority.
+func (c *firewallPoliciesRESTClient) RemoveRule(ctx context.Context, req *computepb.RemoveRuleFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Operation, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ jsonReq, err := m.Marshal(req)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/removeRule", req.GetFirewallPolicy())
+
+ params := url.Values{}
+ if req != nil && req.Priority != nil {
+ params.Add("priority", fmt.Sprintf("%v", req.GetPriority()))
+ }
+ if req != nil && req.RequestId != nil {
+ params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId()))
+ }
+
+ baseUrl.RawQuery = params.Encode()
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Operation{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// SetIamPolicy sets the access control policy on the specified resource. Replaces any existing policy.
+func (c *firewallPoliciesRESTClient) SetIamPolicy(ctx context.Context, req *computepb.SetIamPolicyFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.Policy, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetGlobalOrganizationSetPolicyRequestResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/setIamPolicy", req.GetResource())
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.Policy{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}
+
+// TestIamPermissions returns permissions that a caller has on the specified resource.
+func (c *firewallPoliciesRESTClient) TestIamPermissions(ctx context.Context, req *computepb.TestIamPermissionsFirewallPolicyRequest, opts ...gax.CallOption) (*computepb.TestPermissionsResponse, error) {
+ m := protojson.MarshalOptions{AllowPartial: true, EmitUnpopulated: true}
+ body := req.GetTestPermissionsRequestResource()
+ jsonReq, err := m.Marshal(body)
+ if err != nil {
+ return nil, err
+ }
+
+ baseUrl, _ := url.Parse(c.endpoint)
+ baseUrl.Path += fmt.Sprintf("/compute/v1/locations/global/firewallPolicies/%v/testIamPermissions", req.GetResource())
+
+ httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
+ if err != nil {
+ return nil, err
+ }
+ httpReq = httpReq.WithContext(ctx)
+ // Set the headers
+ for k, v := range c.xGoogMetadata {
+ httpReq.Header[k] = v
+ }
+ httpReq.Header["Content-Type"] = []string{"application/json"}
+
+ httpRsp, err := c.httpClient.Do(httpReq)
+ if err != nil {
+ return nil, err
+ }
+ defer httpRsp.Body.Close()
+
+ if httpRsp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf(httpRsp.Status)
+ }
+
+ buf, err := ioutil.ReadAll(httpRsp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
+ rsp := &computepb.TestPermissionsResponse{}
+
+ return rsp, unm.Unmarshal(buf, rsp)
+}