diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/iap')
9 files changed, 1561 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/iap/BUILD.bazel b/third_party/googleapis/google/cloud/iap/BUILD.bazel new file mode 100644 index 0000000..1b081f0 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/BUILD.bazel @@ -0,0 +1,40 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-iap. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "ruby_cloud_gapic_library", +    "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for iap. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( +    name = "iap_ruby_wrapper", +    srcs = ["//google/cloud/iap/v1:iap_proto_with_info"], +    extra_protoc_parameters = [ +        "ruby-cloud-gem-name=google-cloud-iap", +        "ruby-cloud-wrapper-of=v1:0.0", +        "ruby-cloud-env-prefix=IAP", +        "ruby-cloud-product-url=https://cloud.google.com/iap/", +        "ruby-cloud-api-id=iap.googleapis.com", +        "ruby-cloud-api-shortname=iap", +    ], +    ruby_cloud_description = "IAP lets you establish a central authorization layer for applications accessed by HTTPS, so you can use an application-level access control model instead of relying on network-level firewalls.", +    ruby_cloud_title = "Identity-Aware Proxy", +) + +# Open Source package. +ruby_gapic_assembly_pkg( +    name = "google-cloud-iap-ruby", +    deps = [ +        ":iap_ruby_wrapper", +    ], +) diff --git a/third_party/googleapis/google/cloud/iap/v1/BUILD.bazel b/third_party/googleapis/google/cloud/iap/v1/BUILD.bazel new file mode 100644 index 0000000..576c398 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1/BUILD.bazel @@ -0,0 +1,391 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +#    * extra_protoc_parameters +#    * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( +    name = "iap_proto", +    srcs = [ +        "service.proto", +    ], +    deps = [ +        "//google/api:annotations_proto", +        "//google/api:client_proto", +        "//google/api:field_behavior_proto", +        "//google/api:resource_proto", +        "//google/iam/v1:iam_policy_proto", +        "//google/iam/v1:policy_proto", +        "@com_google_protobuf//:duration_proto", +        "@com_google_protobuf//:empty_proto", +        "@com_google_protobuf//:field_mask_proto", +        "@com_google_protobuf//:wrappers_proto", +    ], +) + +proto_library_with_info( +    name = "iap_proto_with_info", +    deps = [ +        ":iap_proto", +        "//google/cloud:common_resources_proto", +    ], +) + +############################################################################## +# Java +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "java_gapic_assembly_gradle_pkg", +    "java_gapic_library", +    "java_gapic_test", +    "java_grpc_library", +    "java_proto_library", +) + +java_proto_library( +    name = "iap_java_proto", +    deps = [":iap_proto"], +) + +java_grpc_library( +    name = "iap_java_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_java_proto"], +) + +java_gapic_library( +    name = "iap_java_gapic", +    srcs = [":iap_proto_with_info"], +    gapic_yaml = None, +    grpc_service_config = "iap_grpc_service_config.json", +    service_yaml = "iap_v1.yaml", +    test_deps = [ +        ":iap_java_grpc", +        "//google/iam/v1:iam_java_grpc", +    ], +    transport = "grpc+rest", +    deps = [ +        ":iap_java_proto", +        "//google/api:api_java_proto", +        "//google/iam/v1:iam_java_proto", +    ], +) + +java_gapic_test( +    name = "iap_java_gapic_test_suite", +    test_classes = [ +        "com.google.cloud.iap.v1.IdentityAwareProxyAdminServiceClientHttpJsonTest", +        "com.google.cloud.iap.v1.IdentityAwareProxyAdminServiceClientTest", +        "com.google.cloud.iap.v1.IdentityAwareProxyOAuthServiceClientHttpJsonTest", +        "com.google.cloud.iap.v1.IdentityAwareProxyOAuthServiceClientTest", +    ], +    runtime_deps = [":iap_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( +    name = "google-cloud-iap-v1-java", +    include_samples = True, +    transport = "grpc+rest", +    deps = [ +        ":iap_java_gapic", +        ":iap_java_grpc", +        ":iap_java_proto", +        ":iap_proto", +    ], +) + +############################################################################## +# Go +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "go_gapic_assembly_pkg", +    "go_gapic_library", +    "go_proto_library", +    "go_test", +) + +go_proto_library( +    name = "iap_go_proto", +    compilers = ["@io_bazel_rules_go//proto:go_grpc"], +    importpath = "google.golang.org/genproto/googleapis/cloud/iap/v1", +    protos = [":iap_proto"], +    deps = [ +        "//google/api:annotations_go_proto", +        "//google/iam/v1:iam_go_proto", +    ], +) + +go_gapic_library( +    name = "iap_go_gapic", +    srcs = [":iap_proto_with_info"], +    grpc_service_config = "iap_grpc_service_config.json", +    importpath = "cloud.google.com/go/iap/apiv1;iap", +    metadata = True, +    service_yaml = "iap_v1.yaml", +    transport = "grpc+rest", +    deps = [ +        ":iap_go_proto", +        "//google/iam/v1:iam_go_proto", +        "@io_bazel_rules_go//proto/wkt:duration_go_proto", +    ], +) + +go_test( +    name = "iap_go_gapic_test", +    srcs = [":iap_go_gapic_srcjar_test"], +    embed = [":iap_go_gapic"], +    importpath = "cloud.google.com/go/iap/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( +    name = "gapi-cloud-iap-v1-go", +    deps = [ +        ":iap_go_gapic", +        ":iap_go_gapic_srcjar-metadata.srcjar", +        ":iap_go_gapic_srcjar-test.srcjar", +        ":iap_go_proto", +    ], +) + +############################################################################## +# Python +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "py_gapic_assembly_pkg", +    "py_gapic_library", +    "py_test", +) + +py_gapic_library( +    name = "iap_py_gapic", +    srcs = [":iap_proto"], +    grpc_service_config = "iap_grpc_service_config.json", +    transport = "grpc", +    deps = [ +        "//google/iam/v1:iam_policy_py_proto", +    ], +) + +py_test( +    name = "iap_py_gapic_test", +    srcs = [ +        "iap_py_gapic_pytest.py", +        "iap_py_gapic_test.py", +    ], +    legacy_create_init = False, +    deps = [":iap_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( +    name = "iap-v1-py", +    deps = [ +        ":iap_py_gapic", +    ], +) + +############################################################################## +# PHP +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "php_gapic_assembly_pkg", +    "php_gapic_library", +    "php_grpc_library", +    "php_proto_library", +) + +php_proto_library( +    name = "iap_php_proto", +    deps = [":iap_proto"], +) + +php_grpc_library( +    name = "iap_php_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_php_proto"], +) + +php_gapic_library( +    name = "iap_php_gapic", +    srcs = [":iap_proto_with_info"], +    grpc_service_config = "iap_grpc_service_config.json", +    service_yaml = "iap_v1.yaml", +    deps = [ +        ":iap_php_grpc", +        ":iap_php_proto", +    ], +) + +# Open Source Packages +php_gapic_assembly_pkg( +    name = "google-cloud-iap-v1-php", +    deps = [ +        ":iap_php_gapic", +        ":iap_php_grpc", +        ":iap_php_proto", +    ], +) + +############################################################################## +# Node.js +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "nodejs_gapic_assembly_pkg", +    "nodejs_gapic_library", +) + +nodejs_gapic_library( +    name = "iap_nodejs_gapic", +    package_name = "@google-cloud/iap", +    src = ":iap_proto_with_info", +    extra_protoc_parameters = ["metadata"], +    grpc_service_config = "iap_grpc_service_config.json", +    package = "google.cloud.iap.v1", +    service_yaml = "iap_v1.yaml", +    deps = [], +) + +nodejs_gapic_assembly_pkg( +    name = "iap-v1-nodejs", +    deps = [ +        ":iap_nodejs_gapic", +        ":iap_proto", +    ], +) + +############################################################################## +# Ruby +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "ruby_cloud_gapic_library", +    "ruby_gapic_assembly_pkg", +    "ruby_grpc_library", +    "ruby_proto_library", +) + +ruby_proto_library( +    name = "iap_ruby_proto", +    deps = [":iap_proto"], +) + +ruby_grpc_library( +    name = "iap_ruby_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_ruby_proto"], +) + +ruby_cloud_gapic_library( +    name = "iap_ruby_gapic", +    srcs = [":iap_proto_with_info"], +    extra_protoc_parameters = [ +        "ruby-cloud-api-id=iap.googleapis.com", +        "ruby-cloud-api-shortname=iap", +        "ruby-cloud-env-prefix=IAP", +        "ruby-cloud-gem-name=google-cloud-iap-v1", +        "ruby-cloud-product-url=https://cloud.google.com/iap/", +    ], +    grpc_service_config = "iap_grpc_service_config.json", +    ruby_cloud_description = "IAP lets you establish a central authorization layer for applications accessed by HTTPS, so you can use an application-level access control model instead of relying on network-level firewalls.", +    ruby_cloud_title = "Identity-Aware Proxy V1", +    deps = [ +        ":iap_ruby_grpc", +        ":iap_ruby_proto", +    ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( +    name = "google-cloud-iap-v1-ruby", +    deps = [ +        ":iap_ruby_gapic", +        ":iap_ruby_grpc", +        ":iap_ruby_proto", +    ], +) + +############################################################################## +# C# +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "csharp_gapic_assembly_pkg", +    "csharp_gapic_library", +    "csharp_grpc_library", +    "csharp_proto_library", +) + +csharp_proto_library( +    name = "iap_csharp_proto", +    deps = [":iap_proto"], +) + +csharp_grpc_library( +    name = "iap_csharp_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_csharp_proto"], +) + +csharp_gapic_library( +    name = "iap_csharp_gapic", +    srcs = [":iap_proto_with_info"], +    common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", +    grpc_service_config = "iap_grpc_service_config.json", +    service_yaml = "iap_v1.yaml", +    deps = [ +        ":iap_csharp_grpc", +        ":iap_csharp_proto", +    ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( +    name = "google-cloud-iap-v1-csharp", +    deps = [ +        ":iap_csharp_gapic", +        ":iap_csharp_grpc", +        ":iap_csharp_proto", +    ], +) + +############################################################################## +# C++ +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "cc_grpc_library", +    "cc_proto_library", +) + +cc_proto_library( +    name = "iap_cc_proto", +    deps = [":iap_proto"], +) + +cc_grpc_library( +    name = "iap_cc_grpc", +    srcs = [":iap_proto"], +    grpc_only = True, +    deps = [":iap_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/iap/v1/iap_grpc_service_config.json b/third_party/googleapis/google/cloud/iap/v1/iap_grpc_service_config.json new file mode 100644 index 0000000..b4f74c2 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1/iap_grpc_service_config.json @@ -0,0 +1,15 @@ +{ +  "methodConfig": [ +    { +      "name": [ +        { +          "service": "google.cloud.iap.v1.IdentityAwareProxyAdminService" +        }, +        { +          "service": "google.cloud.iap.v1.IdentityAwareProxyOAuthService" +        } +      ], +      "timeout": "60s" +    } +  ] +} diff --git a/third_party/googleapis/google/cloud/iap/v1/iap_v1.yaml b/third_party/googleapis/google/cloud/iap/v1/iap_v1.yaml new file mode 100644 index 0000000..babbf04 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1/iap_v1.yaml @@ -0,0 +1,22 @@ +type: google.api.Service +config_version: 3 +name: iap.googleapis.com +title: Cloud Identity-Aware Proxy API + +apis: +- name: google.cloud.iap.v1.IdentityAwareProxyAdminService +- name: google.cloud.iap.v1.IdentityAwareProxyOAuthService + +documentation: +  summary: Controls access to cloud applications running on Google Cloud Platform. + +authentication: +  rules: +  - selector: 'google.cloud.iap.v1.IdentityAwareProxyAdminService.*' +    oauth: +      canonical_scopes: |- +        https://www.googleapis.com/auth/cloud-platform +  - selector: 'google.cloud.iap.v1.IdentityAwareProxyOAuthService.*' +    oauth: +      canonical_scopes: |- +        https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/iap/v1/service.proto b/third_party/googleapis/google/cloud/iap/v1/service.proto new file mode 100644 index 0000000..cb28b24 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1/service.proto @@ -0,0 +1,630 @@ +// Copyright 2022 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 +// +//     http://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. + +syntax = "proto3"; + +package google.cloud.iap.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/wrappers.proto"; + +option csharp_namespace = "Google.Cloud.Iap.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/iap/v1;iap"; +option java_multiple_files = true; +option java_package = "com.google.cloud.iap.v1"; +option php_namespace = "Google\\Cloud\\Iap\\V1"; +option ruby_package = "Google::Cloud::Iap::V1"; +option (google.api.resource_definition) = { +  type: "iap.googleapis.com/TunnelLocation" +  pattern: "projects/{project}/iap_tunnel/locations/{location}" +}; + +// APIs for Identity-Aware Proxy Admin configurations. +service IdentityAwareProxyAdminService { +  option (google.api.default_host) = "iap.googleapis.com"; +  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + +  // Sets the access control policy for an Identity-Aware Proxy protected +  // resource. Replaces any existing policy. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { +    option (google.api.http) = { +      post: "/v1/{resource=**}:setIamPolicy" +      body: "*" +    }; +  } + +  // Gets the access control policy for an Identity-Aware Proxy protected +  // resource. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { +    option (google.api.http) = { +      post: "/v1/{resource=**}:getIamPolicy" +      body: "*" +    }; +  } + +  // Returns permissions that a caller has on the Identity-Aware Proxy protected +  // resource. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { +    option (google.api.http) = { +      post: "/v1/{resource=**}:testIamPermissions" +      body: "*" +    }; +  } + +  // Gets the IAP settings on a particular IAP protected resource. +  rpc GetIapSettings(GetIapSettingsRequest) returns (IapSettings) { +    option (google.api.http) = { +      get: "/v1/{name=**}:iapSettings" +    }; +  } + +  // Updates the IAP settings on a particular IAP protected resource. It +  // replaces all fields unless the `update_mask` is set. +  rpc UpdateIapSettings(UpdateIapSettingsRequest) returns (IapSettings) { +    option (google.api.http) = { +      patch: "/v1/{iap_settings.name=**}:iapSettings" +      body: "iap_settings" +    }; +  } + +  // Lists the existing TunnelDestGroups. To group across all locations, use a +  // `-` as the location ID. For example: +  // `/v1/projects/123/iap_tunnel/locations/-/destGroups` +  rpc ListTunnelDestGroups(ListTunnelDestGroupsRequest) returns (ListTunnelDestGroupsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Creates a new TunnelDestGroup. +  rpc CreateTunnelDestGroup(CreateTunnelDestGroupRequest) returns (TunnelDestGroup) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/iap_tunnel/locations/*}/destGroups" +      body: "tunnel_dest_group" +    }; +    option (google.api.method_signature) = "parent,tunnel_dest_group,tunnel_dest_group_id"; +  } + +  // Retrieves an existing TunnelDestGroup. +  rpc GetTunnelDestGroup(GetTunnelDestGroupRequest) returns (TunnelDestGroup) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Deletes a TunnelDestGroup. +  rpc DeleteTunnelDestGroup(DeleteTunnelDestGroupRequest) returns (google.protobuf.Empty) { +    option (google.api.http) = { +      delete: "/v1/{name=projects/*/iap_tunnel/locations/*/destGroups/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Updates a TunnelDestGroup. +  rpc UpdateTunnelDestGroup(UpdateTunnelDestGroupRequest) returns (TunnelDestGroup) { +    option (google.api.http) = { +      patch: "/v1/{tunnel_dest_group.name=projects/*/iap_tunnel/locations/*/destGroups/*}" +      body: "tunnel_dest_group" +    }; +    option (google.api.method_signature) = "tunnel_dest_group,update_mask"; +  } +} + +// The request to ListTunnelDestGroups. +message ListTunnelDestGroupsRequest { +  // Required. Google Cloud Project ID and location. +  // In the following format: +  // `projects/{project_number/id}/iap_tunnel/locations/{location}`. +  // A `-` can be used for the location to group across all locations. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "iap.googleapis.com/TunnelLocation" +    } +  ]; + +  // The maximum number of groups to return. The service might return fewer than +  // this value. +  // If unspecified, at most 100 groups are returned. +  // The maximum value is 1000; values above 1000 are coerced to 1000. +  int32 page_size = 2; + +  // A page token, received from a previous `ListTunnelDestGroups` +  // call. Provide this to retrieve the subsequent page. +  // +  // When paginating, all other parameters provided to +  // `ListTunnelDestGroups` must match the call that provided the page +  // token. +  string page_token = 3; +} + +// The response from ListTunnelDestGroups. +message ListTunnelDestGroupsResponse { +  // TunnelDestGroup existing in the project. +  repeated TunnelDestGroup tunnel_dest_groups = 1; + +  // A token that you can send as `page_token` to retrieve the next page. +  // If this field is omitted, there are no subsequent pages. +  string next_page_token = 2; +} + +// The request to CreateTunnelDestGroup. +message CreateTunnelDestGroupRequest { +  // Required. Google Cloud Project ID and location. +  // In the following format: +  // `projects/{project_number/id}/iap_tunnel/locations/{location}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "iap.googleapis.com/TunnelDestGroup" +    } +  ]; + +  // Required. The TunnelDestGroup to create. +  TunnelDestGroup tunnel_dest_group = 2 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The ID to use for the TunnelDestGroup, which becomes the final component of +  // the resource name. +  // +  // This value must be 4-63 characters, and valid characters +  // are `[a-z][0-9]-`. +  string tunnel_dest_group_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request to GetTunnelDestGroup. +message GetTunnelDestGroupRequest { +  // Required. Name of the TunnelDestGroup to be fetched. +  // In the following format: +  // `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "iap.googleapis.com/TunnelDestGroup" +    } +  ]; +} + +// The request to DeleteTunnelDestGroup. +message DeleteTunnelDestGroupRequest { +  // Required. Name of the TunnelDestGroup to delete. +  // In the following format: +  // `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "iap.googleapis.com/TunnelDestGroup" +    } +  ]; +} + +// The request to UpdateTunnelDestGroup. +message UpdateTunnelDestGroupRequest { +  // Required. The new values for the TunnelDestGroup. +  TunnelDestGroup tunnel_dest_group = 1 [(google.api.field_behavior) = REQUIRED]; + +  // A field mask that specifies which IAP settings to update. +  // If omitted, then all of the settings are updated. See +  // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask +  google.protobuf.FieldMask update_mask = 2; +} + +// A TunnelDestGroup. +message TunnelDestGroup { +  option (google.api.resource) = { +    type: "iap.googleapis.com/TunnelDestGroup" +    pattern: "projects/{project}/iap_tunnel/locations/{location}/destGroups/{dest_group}" +  }; + +  // Required. Immutable. Identifier for the TunnelDestGroup. Must be unique within the +  // project. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.field_behavior) = IMMUTABLE +  ]; + +  // null List of CIDRs that this group applies to. +  repeated string cidrs = 2 [(google.api.field_behavior) = UNORDERED_LIST]; + +  // null List of FQDNs that this group applies to. +  repeated string fqdns = 3 [(google.api.field_behavior) = UNORDERED_LIST]; +} + +// API to programmatically create, list and retrieve Identity Aware Proxy (IAP) +// OAuth brands; and create, retrieve, delete and reset-secret of IAP OAuth +// clients. +service IdentityAwareProxyOAuthService { +  option (google.api.default_host) = "iap.googleapis.com"; +  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + +  // Lists the existing brands for the project. +  rpc ListBrands(ListBrandsRequest) returns (ListBrandsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*}/brands" +    }; +  } + +  // Constructs a new OAuth brand for the project if one does not exist. +  // The created brand is "internal only", meaning that OAuth clients created +  // under it only accept requests from users who belong to the same Google +  // Workspace organization as the project. The brand is created in an +  // un-reviewed status. NOTE: The "internal only" status can be manually +  // changed in the Google Cloud Console. Requires that a brand does not already +  // exist for the project, and that the specified support email is owned by the +  // caller. +  rpc CreateBrand(CreateBrandRequest) returns (Brand) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*}/brands" +      body: "brand" +    }; +  } + +  // Retrieves the OAuth brand of the project. +  rpc GetBrand(GetBrandRequest) returns (Brand) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/brands/*}" +    }; +  } + +  // Creates an Identity Aware Proxy (IAP) OAuth client. The client is owned +  // by IAP. Requires that the brand for the project exists and that it is +  // set for internal-only use. +  rpc CreateIdentityAwareProxyClient(CreateIdentityAwareProxyClientRequest) returns (IdentityAwareProxyClient) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/brands/*}/identityAwareProxyClients" +      body: "identity_aware_proxy_client" +    }; +  } + +  // Lists the existing clients for the brand. +  rpc ListIdentityAwareProxyClients(ListIdentityAwareProxyClientsRequest) returns (ListIdentityAwareProxyClientsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/brands/*}/identityAwareProxyClients" +    }; +  } + +  // Retrieves an Identity Aware Proxy (IAP) OAuth client. +  // Requires that the client is owned by IAP. +  rpc GetIdentityAwareProxyClient(GetIdentityAwareProxyClientRequest) returns (IdentityAwareProxyClient) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/brands/*/identityAwareProxyClients/*}" +    }; +  } + +  // Resets an Identity Aware Proxy (IAP) OAuth client secret. Useful if the +  // secret was compromised. Requires that the client is owned by IAP. +  rpc ResetIdentityAwareProxyClientSecret(ResetIdentityAwareProxyClientSecretRequest) returns (IdentityAwareProxyClient) { +    option (google.api.http) = { +      post: "/v1/{name=projects/*/brands/*/identityAwareProxyClients/*}:resetSecret" +      body: "*" +    }; +  } + +  // Deletes an Identity Aware Proxy (IAP) OAuth client. Useful for removing +  // obsolete clients, managing the number of clients in a given project, and +  // cleaning up after tests. Requires that the client is owned by IAP. +  rpc DeleteIdentityAwareProxyClient(DeleteIdentityAwareProxyClientRequest) returns (google.protobuf.Empty) { +    option (google.api.http) = { +      delete: "/v1/{name=projects/*/brands/*/identityAwareProxyClients/*}" +    }; +  } +} + +// The request sent to GetIapSettings. +message GetIapSettingsRequest { +  // Required. The resource name for which to retrieve the settings. +  // Authorization: Requires the `getSettings` permission for the associated +  // resource. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to UpdateIapSettings. +message UpdateIapSettingsRequest { +  // Required. The new values for the IAP settings to be updated. +  // Authorization: Requires the `updateSettings` permission for the associated +  // resource. +  IapSettings iap_settings = 1 [(google.api.field_behavior) = REQUIRED]; + +  // The field mask specifying which IAP settings should be updated. +  // If omitted, the all of the settings are updated. See +  // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask +  google.protobuf.FieldMask update_mask = 2; +} + +// The IAP configurable settings. +message IapSettings { +  // Required. The resource name of the IAP protected resource. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Top level wrapper for all access related setting in IAP +  AccessSettings access_settings = 5; + +  // Top level wrapper for all application related settings in IAP +  ApplicationSettings application_settings = 6; +} + +// Access related settings for IAP protected apps. +message AccessSettings { +  // GCIP claims and endpoint configurations for 3p identity providers. +  GcipSettings gcip_settings = 1; + +  // Configuration to allow cross-origin requests via IAP. +  CorsSettings cors_settings = 2; + +  // Settings to configure IAP's OAuth behavior. +  OAuthSettings oauth_settings = 3; + +  // Settings to configure reauthentication policies in IAP. +  ReauthSettings reauth_settings = 6; +} + +// Allows customers to configure tenant_id for GCIP instance per-app. +message GcipSettings { +  // GCIP tenant ids that are linked to the IAP resource. +  // tenant_ids could be a string beginning with a number character to indicate +  // authenticating with GCIP tenant flow, or in the format of _<ProjectNumber> +  // to indicate authenticating with GCIP agent flow. +  // If agent flow is used, tenant_ids should only contain one single element, +  // while for tenant flow, tenant_ids can contain multiple elements. +  repeated string tenant_ids = 1; + +  // Login page URI associated with the GCIP tenants. +  // Typically, all resources within the same project share the same login page, +  // though it could be overridden at the sub resource level. +  google.protobuf.StringValue login_page_uri = 2; +} + +// Allows customers to configure HTTP request paths that'll allow HTTP OPTIONS +// call to bypass authentication and authorization. +message CorsSettings { +  // Configuration to allow HTTP OPTIONS calls to skip authorization. If +  // undefined, IAP will not apply any special logic to OPTIONS requests. +  google.protobuf.BoolValue allow_http_options = 1; +} + +// Configuration for OAuth login&consent flow behavior as well as for OAuth +// Credentials. +message OAuthSettings { +  // Domain hint to send as hd=? parameter in OAuth request flow. Enables +  // redirect to primary IDP by skipping Google's login screen. +  // https://developers.google.com/identity/protocols/OpenIDConnect#hd-param +  // Note: IAP does not verify that the id token's hd claim matches this value +  // since access behavior is managed by IAM policies. +  google.protobuf.StringValue login_hint = 2; +} + +// Configuration for IAP reauthentication policies. +message ReauthSettings { +  // Types of reauthentication methods supported by IAP. +  enum Method { +    // Reauthentication disabled. +    METHOD_UNSPECIFIED = 0; + +    // Mimics the behavior as if the user had logged out and tried to log in +    // again. Users with 2SV (2-step verification) enabled see their 2SV +    // challenges if they did not opt to have their second factor responses +    // saved. Apps Core (GSuites) admins can configure settings to disable 2SV +    // cookies and require 2SV for all Apps Core users in their domains. +    LOGIN = 1; + +    // User must type their password. +    PASSWORD = 2; + +    // User must use their secure key 2nd factor device. +    SECURE_KEY = 3; +  } + +  // Type of policy in the case of hierarchial policies. +  enum PolicyType { +    // Default value. This value is unused. +    POLICY_TYPE_UNSPECIFIED = 0; + +    // This policy acts as a minimum to other policies, lower in the hierarchy. +    // Effective policy may only be the same or stricter. +    MINIMUM = 1; + +    // This policy acts as a default if no other reauth policy is set. +    DEFAULT = 2; +  } + +  // Reauth method required by the policy. +  Method method = 1; + +  // Reauth session lifetime, how long before a user has to reauthenticate +  // again. +  google.protobuf.Duration max_age = 2; + +  // How IAP determines the effective policy in cases of hierarchial policies. +  // Policies are merged from higher in the hierarchy to lower in the hierarchy. +  PolicyType policy_type = 3; +} + +// Wrapper over application specific settings for IAP. +message ApplicationSettings { +  // Settings to configure IAP's behavior for a CSM mesh. +  CsmSettings csm_settings = 1; + +  // Customization for Access Denied page. +  AccessDeniedPageSettings access_denied_page_settings = 2; + +  // The Domain value to set for cookies generated by IAP. This value is not +  // validated by the API, but will be ignored at runtime if invalid. +  google.protobuf.StringValue cookie_domain = 3; +} + +// Configuration for RCTokens generated for CSM workloads protected by IAP. +// RCTokens are IAP generated JWTs that can be verified at the application. The +// RCToken is primarily used for ISTIO deployments, and can be scoped to a +// single mesh by configuring the audience field accordingly +message CsmSettings { +  // Audience claim set in the generated RCToken. This value is not validated by +  // IAP. +  google.protobuf.StringValue rctoken_aud = 1; +} + +// Custom content configuration for access denied page. +// IAP allows customers to define a custom URI to use as the error page when +// access is denied to users. If IAP prevents access to this page, the default +// IAP error page will be displayed instead. +message AccessDeniedPageSettings { +  // The URI to be redirected to when access is denied. +  google.protobuf.StringValue access_denied_page_uri = 1; + +  // Whether to generate a troubleshooting URL on access denied events to this +  // application. +  google.protobuf.BoolValue generate_troubleshooting_uri = 2; +} + +// The request sent to ListBrands. +message ListBrandsRequest { +  // Required. GCP Project number/id. +  // In the following format: projects/{project_number/id}. +  string parent = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for ListBrands. +message ListBrandsResponse { +  // Brands existing in the project. +  repeated Brand brands = 1; +} + +// The request sent to CreateBrand. +message CreateBrandRequest { +  // Required. GCP Project number/id under which the brand is to be created. +  // In the following format: projects/{project_number/id}. +  string parent = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The brand to be created. +  Brand brand = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to GetBrand. +message GetBrandRequest { +  // Required. Name of the brand to be fetched. +  // In the following format: projects/{project_number/id}/brands/{brand}. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to ListIdentityAwareProxyClients. +message ListIdentityAwareProxyClientsRequest { +  // Required. Full brand path. +  // In the following format: projects/{project_number/id}/brands/{brand}. +  string parent = 1 [(google.api.field_behavior) = REQUIRED]; + +  // The maximum number of clients to return. The service may return fewer than +  // this value. +  // If unspecified, at most 100 clients will be returned. +  // The maximum value is 1000; values above 1000 will be coerced to 1000. +  int32 page_size = 2; + +  // A page token, received from a previous `ListIdentityAwareProxyClients` +  // call. Provide this to retrieve the subsequent page. +  // +  // When paginating, all other parameters provided to +  // `ListIdentityAwareProxyClients` must match the call that provided the page +  // token. +  string page_token = 3; +} + +// Response message for ListIdentityAwareProxyClients. +message ListIdentityAwareProxyClientsResponse { +  // Clients existing in the brand. +  repeated IdentityAwareProxyClient identity_aware_proxy_clients = 1; + +  // A token, which can be send as `page_token` to retrieve the next page. +  // If this field is omitted, there are no subsequent pages. +  string next_page_token = 2; +} + +// The request sent to CreateIdentityAwareProxyClient. +message CreateIdentityAwareProxyClientRequest { +  // Required. Path to create the client in. +  // In the following format: +  // projects/{project_number/id}/brands/{brand}. +  // The project must belong to a G Suite account. +  string parent = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Required. Identity Aware Proxy Client to be created. +  IdentityAwareProxyClient identity_aware_proxy_client = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to GetIdentityAwareProxyClient. +message GetIdentityAwareProxyClientRequest { +  // Required. Name of the Identity Aware Proxy client to be fetched. +  // In the following format: +  // projects/{project_number/id}/brands/{brand}/identityAwareProxyClients/{client_id}. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to ResetIdentityAwareProxyClientSecret. +message ResetIdentityAwareProxyClientSecretRequest { +  // Required. Name of the Identity Aware Proxy client to that will have its +  // secret reset. In the following format: +  // projects/{project_number/id}/brands/{brand}/identityAwareProxyClients/{client_id}. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The request sent to DeleteIdentityAwareProxyClient. +message DeleteIdentityAwareProxyClientRequest { +  // Required. Name of the Identity Aware Proxy client to be deleted. +  // In the following format: +  // projects/{project_number/id}/brands/{brand}/identityAwareProxyClients/{client_id}. +  string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// OAuth brand data. +// NOTE: Only contains a portion of the data that describes a brand. +message Brand { +  // Output only. Identifier of the brand. +  // NOTE: GCP project number achieves the same brand identification purpose as +  // only one brand per project can be created. +  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Support email displayed on the OAuth consent screen. +  string support_email = 2; + +  // Application name displayed on OAuth consent screen. +  string application_title = 3; + +  // Output only. Whether the brand is only intended for usage inside the +  // G Suite organization only. +  bool org_internal_only = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Contains the data that describes an Identity Aware Proxy owned client. +message IdentityAwareProxyClient { +  // Output only. Unique identifier of the OAuth client. +  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Output only. Client secret of the OAuth client. +  string secret = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Human-friendly name given to the OAuth client. +  string display_name = 3; +} diff --git a/third_party/googleapis/google/cloud/iap/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/iap/v1beta1/BUILD.bazel new file mode 100644 index 0000000..8b6e7d9 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1beta1/BUILD.bazel @@ -0,0 +1,363 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +#    * extra_protoc_parameters +#    * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( +    name = "iap_proto", +    srcs = [ +        "service.proto", +    ], +    deps = [ +        "//google/api:annotations_proto", +        "//google/api:client_proto", +        "//google/iam/v1:iam_policy_proto", +        "//google/iam/v1:policy_proto", +    ], +) + +proto_library_with_info( +    name = "iap_proto_with_info", +    deps = [ +        ":iap_proto", +        "//google/cloud:common_resources_proto", +    ], +) + +############################################################################## +# Java +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "java_gapic_assembly_gradle_pkg", +    "java_gapic_library", +    "java_gapic_test", +    "java_grpc_library", +    "java_proto_library", +) + +java_proto_library( +    name = "iap_java_proto", +    deps = [":iap_proto"], +) + +java_grpc_library( +    name = "iap_java_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_java_proto"], +) + +java_gapic_library( +    name = "iap_java_gapic", +    srcs = [":iap_proto_with_info"], +    grpc_service_config = "iap_grpc_service_config.json", +    test_deps = [ +        ":iap_java_grpc", +        "//google/iam/v1:iam_java_grpc", +    ], +    transport = "grpc+rest", +    deps = [ +        ":iap_java_proto", +        "//google/iam/v1:iam_java_proto", +    ], +) + +java_gapic_test( +    name = "iap_java_gapic_test_suite", +    test_classes = [ +        "com.google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1ClientHttpJsonTest", +        "com.google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1ClientTest", +    ], +    runtime_deps = [":iap_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( +    name = "google-cloud-iap-v1beta1-java", +    include_samples = True, +    transport = "grpc+rest", +    deps = [ +        ":iap_java_gapic", +        ":iap_java_grpc", +        ":iap_java_proto", +        ":iap_proto", +    ], +) + +############################################################################## +# Go +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "go_gapic_assembly_pkg", +    "go_gapic_library", +    "go_proto_library", +    "go_test", +) + +go_proto_library( +    name = "iap_go_proto", +    compilers = ["@io_bazel_rules_go//proto:go_grpc"], +    importpath = "google.golang.org/genproto/googleapis/cloud/iap/v1beta1", +    protos = [":iap_proto"], +    deps = [ +        "//google/api:annotations_go_proto", +        "//google/iam/v1:iam_go_proto", +    ], +) + +go_gapic_library( +    name = "iap_go_gapic", +    srcs = [":iap_proto_with_info"], +    grpc_service_config = "iap_grpc_service_config.json", +    importpath = "cloud.google.com/go/iap/apiv1beta1;iap", +    metadata = True, +    service_yaml = "iap_v1beta1.yaml", +    transport = "grpc+rest", +    deps = [ +        ":iap_go_proto", +        "//google/iam/v1:iam_go_proto", +    ], +) + +go_test( +    name = "iap_go_gapic_test", +    srcs = [":iap_go_gapic_srcjar_test"], +    embed = [":iap_go_gapic"], +    importpath = "cloud.google.com/go/iap/apiv1beta1", +) + +# Open Source Packages +go_gapic_assembly_pkg( +    name = "gapi-cloud-iap-v1beta1-go", +    deps = [ +        ":iap_go_gapic", +        ":iap_go_gapic_srcjar-metadata.srcjar", +        ":iap_go_gapic_srcjar-test.srcjar", +        ":iap_go_proto", +    ], +) + +############################################################################## +# Python +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "py_gapic_assembly_pkg", +    "py_gapic_library", +    "py_test", +) + +py_gapic_library( +    name = "iap_py_gapic", +    srcs = [":iap_proto"], +    grpc_service_config = "iap_grpc_service_config.json", +    transport = "grpc", +    deps = [ +        "//google/iam/v1:iam_policy_py_proto", +    ], +) + +py_test( +    name = "iap_py_gapic_test", +    srcs = [ +        "iap_py_gapic_pytest.py", +        "iap_py_gapic_test.py", +    ], +    legacy_create_init = False, +    deps = [":iap_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( +    name = "iap-v1beta1-py", +    deps = [ +        ":iap_py_gapic", +    ], +) + +############################################################################## +# PHP +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "php_gapic_assembly_pkg", +    "php_gapic_library", +    "php_grpc_library", +    "php_proto_library", +) + +php_proto_library( +    name = "iap_php_proto", +    deps = [":iap_proto"], +) + +php_grpc_library( +    name = "iap_php_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_php_proto"], +) + +php_gapic_library( +    name = "iap_php_gapic", +    srcs = [":iap_proto_with_info"], +    grpc_service_config = "iap_grpc_service_config.json", +    service_yaml = "iap_v1beta1.yaml", +    deps = [ +        ":iap_php_grpc", +        ":iap_php_proto", +    ], +) + +# Open Source Packages +php_gapic_assembly_pkg( +    name = "google-cloud-iap-v1beta1-php", +    deps = [ +        ":iap_php_gapic", +        ":iap_php_grpc", +        ":iap_php_proto", +    ], +) + +############################################################################## +# Node.js +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "nodejs_gapic_assembly_pkg", +    "nodejs_gapic_library", +) + +nodejs_gapic_library( +    name = "iap_nodejs_gapic", +    package_name = "@google-cloud/iap", +    src = ":iap_proto_with_info", +    extra_protoc_parameters = ["metadata"], +    grpc_service_config = "iap_grpc_service_config.json", +    package = "google.cloud.iap.v1beta1", +    service_yaml = "iap_v1beta1.yaml", +    deps = [], +) + +nodejs_gapic_assembly_pkg( +    name = "iap-v1beta1-nodejs", +    deps = [ +        ":iap_nodejs_gapic", +        ":iap_proto", +    ], +) + +############################################################################## +# Ruby +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "ruby_cloud_gapic_library", +    "ruby_gapic_assembly_pkg", +    "ruby_grpc_library", +    "ruby_proto_library", +) + +ruby_proto_library( +    name = "iap_ruby_proto", +    deps = [":iap_proto"], +) + +ruby_grpc_library( +    name = "iap_ruby_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_ruby_proto"], +) + +ruby_cloud_gapic_library( +    name = "iap_ruby_gapic", +    srcs = [":iap_proto_with_info"], +    extra_protoc_parameters = [ +        "ruby-cloud-gem-name=google-cloud-iap-v1beta1", +        "ruby-cloud-env-prefix=IAP", +        "ruby-cloud-product-url=https://cloud.google.com/iap/", +        "ruby-cloud-api-id=iap.googleapis.com", +        "ruby-cloud-api-shortname=iap", +    ], +    grpc_service_config = "iap_grpc_service_config.json", +    ruby_cloud_description = "IAP lets you establish a central authorization layer for applications accessed by HTTPS, so you can use an application-level access control model instead of relying on network-level firewalls.", +    ruby_cloud_title = "Identity-Aware Proxy V1beta1", +    deps = [ +        ":iap_ruby_grpc", +        ":iap_ruby_proto", +    ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( +    name = "google-cloud-iap-v1beta1-ruby", +    deps = [ +        ":iap_ruby_gapic", +        ":iap_ruby_grpc", +        ":iap_ruby_proto", +    ], +) + +############################################################################## +# C# +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "csharp_gapic_assembly_pkg", +    "csharp_gapic_library", +    "csharp_grpc_library", +    "csharp_proto_library", +) + +csharp_proto_library( +    name = "iap_csharp_proto", +    deps = [":iap_proto"], +) + +csharp_grpc_library( +    name = "iap_csharp_grpc", +    srcs = [":iap_proto"], +    deps = [":iap_csharp_proto"], +) + +csharp_gapic_library( +    name = "iap_csharp_gapic", +    srcs = [":iap_proto_with_info"], +    common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", +    grpc_service_config = "iap_grpc_service_config.json", +    service_yaml = "iap_v1beta1.yaml", +    deps = [ +        ":iap_csharp_grpc", +        ":iap_csharp_proto", +    ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( +    name = "google-cloud-iap-v1beta1-csharp", +    deps = [ +        ":iap_csharp_gapic", +        ":iap_csharp_grpc", +        ":iap_csharp_proto", +    ], +) + +############################################################################## +# C++ +############################################################################## +# Put your C++ rules here diff --git a/third_party/googleapis/google/cloud/iap/v1beta1/iap_grpc_service_config.json b/third_party/googleapis/google/cloud/iap/v1beta1/iap_grpc_service_config.json new file mode 100644 index 0000000..acf76ae --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1beta1/iap_grpc_service_config.json @@ -0,0 +1,12 @@ +{ +  "methodConfig": [ +    { +      "name": [ +        { +          "service": "google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1" +        } +      ], +      "timeout": "60s" +    } +  ] +} diff --git a/third_party/googleapis/google/cloud/iap/v1beta1/iap_v1beta1.yaml b/third_party/googleapis/google/cloud/iap/v1beta1/iap_v1beta1.yaml new file mode 100644 index 0000000..7d28199 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1beta1/iap_v1beta1.yaml @@ -0,0 +1,17 @@ +type: google.api.Service +config_version: 3 +name: iap.googleapis.com +title: Cloud Identity-Aware Proxy API + +apis: +- name: google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1 + +documentation: +  summary: Controls access to cloud applications running on Google Cloud Platform. + +authentication: +  rules: +  - selector: 'google.cloud.iap.v1beta1.IdentityAwareProxyAdminV1Beta1.*' +    oauth: +      canonical_scopes: |- +        https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/iap/v1beta1/service.proto b/third_party/googleapis/google/cloud/iap/v1beta1/service.proto new file mode 100644 index 0000000..a414a33 --- /dev/null +++ b/third_party/googleapis/google/cloud/iap/v1beta1/service.proto @@ -0,0 +1,71 @@ +// 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 +// +//     http://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. + +syntax = "proto3"; + +package google.cloud.iap.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/iap/v1beta1;iap"; +option java_multiple_files = true; +option java_package = "com.google.cloud.iap.v1beta1"; + +// APIs for Identity-Aware Proxy Admin configurations. +service IdentityAwareProxyAdminV1Beta1 { +  option (google.api.default_host) = "iap.googleapis.com"; +  option (google.api.oauth_scopes) = +      "https://www.googleapis.com/auth/cloud-platform"; + +  // Sets the access control policy for an Identity-Aware Proxy protected +  // resource. Replaces any existing policy. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) +      returns (google.iam.v1.Policy) { +    option (google.api.http) = { +      post: "/v1beta1/{resource=**}:setIamPolicy" +      body: "*" +    }; +  } + +  // Gets the access control policy for an Identity-Aware Proxy protected +  // resource. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) +      returns (google.iam.v1.Policy) { +    option (google.api.http) = { +      post: "/v1beta1/{resource=**}:getIamPolicy" +      body: "*" +    }; +  } + +  // Returns permissions that a caller has on the Identity-Aware Proxy protected +  // resource. If the resource does not exist or the caller does not have +  // Identity-Aware Proxy permissions a [google.rpc.Code.PERMISSION_DENIED] +  // will be returned. +  // More information about managing access via IAP can be found at: +  // https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api +  rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) +      returns (google.iam.v1.TestIamPermissionsResponse) { +    option (google.api.http) = { +      post: "/v1beta1/{resource=**}:testIamPermissions" +      body: "*" +    }; +  } +}  | 
