## CreateProjectPolicy `client.Projects.Policies.New(ctx, body) (*ProjectPolicyNewResponse, error)` **post** `/gitpod.v1.ProjectService/CreateProjectPolicy` Creates a new policy for a project. Use this method to: - Set up access controls - Define group permissions - Configure role-based access ### Examples - Create admin policy: Grants admin access to a group. ```yaml projectId: "b0e12f6c-4c67-429d-a4a6-d9838b5da047" groupId: "f53d2330-3795-4c5d-a1f3-453121af9c60" role: PROJECT_ROLE_ADMIN ``` ### Parameters - `body ProjectPolicyNewParams` - `GroupID param.Field[string]` group_id specifies the group_id identifier - `ProjectID param.Field[string]` project_id specifies the project identifier - `Role param.Field[ProjectRole]` ### Returns - `type ProjectPolicyNewResponse struct{…}` - `Policy ProjectPolicy` - `GroupID string` - `Role ProjectRole` role is the role assigned to the group - `const ProjectRoleUnspecified ProjectRole = "PROJECT_ROLE_UNSPECIFIED"` - `const ProjectRoleAdmin ProjectRole = "PROJECT_ROLE_ADMIN"` - `const ProjectRoleUser ProjectRole = "PROJECT_ROLE_USER"` - `const ProjectRoleEditor ProjectRole = "PROJECT_ROLE_EDITOR"` ### Example ```go package main import ( "context" "fmt" "github.com/gitpod-io/gitpod-sdk-go" "github.com/gitpod-io/gitpod-sdk-go/option" ) func main() { client := gitpod.NewClient( option.WithBearerToken("My Bearer Token"), ) policy, err := client.Projects.Policies.New(context.TODO(), gitpod.ProjectPolicyNewParams{ GroupID: gitpod.F("f53d2330-3795-4c5d-a1f3-453121af9c60"), ProjectID: gitpod.F("b0e12f6c-4c67-429d-a4a6-d9838b5da047"), Role: gitpod.F(gitpod.ProjectRoleAdmin), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", policy.Policy) } ``` #### Response ```json { "policy": { "groupId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "role": "PROJECT_ROLE_UNSPECIFIED" } } ```