// Copyright 2024 EngFlow, Inc. All rights reserved. // // 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 engflow.iam.v1; import "google/api/field_behavior.proto"; import "engflow/api/options.proto"; import "engflow/iam/v1/role.proto"; option go_package = "github.com/EngFlow/engflowapis/go/engflow/iam/v1;iamv1"; option java_multiple_files = true; option java_outer_classname = "IdentityAndAccessManagementProtos"; option java_package = "com.engflow.iam.v1.proto"; // gRPC service for Identity and Access Management. service IdentityAndAccessManagement { option (engflow.api.engflow_service) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 52 patch: 0 } } }; // Returns an existing [`Role`][engflow.iam.v1.Role]. // // An error will be reported in the following cases: // // * `NOT_FOUND`: The role with the specified name does not exist. rpc GetRole(GetRoleRequest) returns (GetRoleResponse) { option (engflow.api.engflow_method) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 52 patch: 0 } } }; } // Creates a new [`Role`][engflow.iam.v1.Role]. // // An error will be reported in the following cases: // // * `ALREADY_EXISTS`: A role with the specified name already exists. rpc CreateRole(CreateRoleRequest) returns (CreateRoleResponse) { option (engflow.api.engflow_method) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 87 patch: 0 } } }; } // Deletes a [`Role`][engflow.iam.v1.Role]. // // An error will be reported in the following cases: // // * `NOT_FOUND`: The role with the specified name does not exist. rpc DeleteRole(DeleteRoleRequest) returns (DeleteRoleResponse) { option (engflow.api.engflow_method) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 87 patch: 0 } } }; } // Updates a [`Role`][engflow.iam.v1.Role]. // // An error will be reported in the following cases: // // * `NOT_FOUND`: The role with the specified name does not exist. rpc UpdateRole(UpdateRoleRequest) returns (UpdateRoleResponse) { option (engflow.api.engflow_method) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 87 patch: 0 } } }; } rpc ListRoles(ListRolesRequest) returns (stream ListRolesResponse) { option (engflow.api.engflow_method) = { launch_stage: EARLY_ACCESS availability { product: "platform" since { major: 2 minor: 87 patch: 0 } } }; } } // Request type for the // [`GetRole`][engflow.iam.v1.IdentityAndAccessManagement/GetRole] // call. message GetRoleRequest { // The name of the role. string name = 1 [(google.api.field_behavior) = REQUIRED]; } // Response type for the // [`GetRole`][engflow.iam.v1.IdentityAndAccessManagement/GetRole] // call. message GetRoleResponse { // The role. engflow.iam.v1.Role role = 1 [(google.api.field_behavior) = REQUIRED]; } // Request type for the // [`CreateRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/CreateRole] // call. message CreateRoleRequest { // The definition of the new role. engflow.iam.v1.Role role = 1 [(google.api.field_behavior) = REQUIRED]; } // Response type for the // [`CreateRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/CreateRole] // call. message CreateRoleResponse {} // Request type for the // [`DeleteRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/DeleteRole] // call. message DeleteRoleRequest { // The name of the role. string name = 1 [(google.api.field_behavior) = REQUIRED]; } // Response type for the // [`DeleteRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/DeleteRole] // call. message DeleteRoleResponse {} // Request type for the // [`ListRoles`][engflow.iam.v1alpha.IdentityAndAccessManagement/ListRole] // call. message ListRolesRequest {} // Response type for the // [`ListRoles`][engflow.iam.v1alpha.IdentityAndAccessManagement/ListRole] // call. message ListRolesResponse { // List of role names repeated string name = 1; } // Response type for the // [`UpdateRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/UpdateRole] // call. message UpdateRoleRequest { // The definition of the updated role. engflow.iam.v1.Role role = 1 [(google.api.field_behavior) = REQUIRED]; } // Response type for the // [`UpdateRole`][engflow.iam.v1alpha.IdentityAndAccessManagement/UpdateRole] // call. message UpdateRoleResponse {}