...

Source file src/edge-infra.dev/pkg/lib/gcp/iam/role.go

Documentation: edge-infra.dev/pkg/lib/gcp/iam

     1  package iam
     2  
     3  import (
     4  	"context"
     5  
     6  	"google.golang.org/api/googleapi"
     7  	"google.golang.org/api/iam/v1"
     8  )
     9  
    10  // CreateRole returns a new iam role.
    11  func CreateRole(title, description string, permissions []string) *iam.Role {
    12  	return &iam.Role{
    13  		Title:               title,
    14  		Description:         description,
    15  		IncludedPermissions: permissions,
    16  	}
    17  }
    18  
    19  // CreateRoleRequest returns a new iam role request.
    20  func CreateRoleRequest(roleName string, role *iam.Role) *iam.CreateRoleRequest {
    21  	return &iam.CreateRoleRequest{
    22  		Role:   role,
    23  		RoleId: roleName,
    24  	}
    25  }
    26  
    27  // CreateRole creates a project iam role.
    28  func (i *IAMService) CreateRole(ctx context.Context, projectID string, roleRequest *iam.CreateRoleRequest, opts ...googleapi.CallOption) (*iam.Role, error) {
    29  	return i.Projects.Roles.Create(projectID, roleRequest).Context(ctx).Do(opts...)
    30  }
    31  

View as plain text