gitlab.ProjectSecurityPolicyAttachment
Explore with Pulumi AI
The gitlab.ProjectSecurityPolicyAttachment
resource allows to attach a security policy project to a project.
Upstream API: GitLab GraphQL API docs
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gitlab from "@pulumi/gitlab";
// This resource can be used to attach a security policy to a pre-existing project
const foo = new gitlab.ProjectSecurityPolicyAttachment("foo", {
project: "1234",
policyProject: "4567",
});
// Or you can use Terraform to create a new project, add a policy to that project,
// then attach that policy project to other projects.
const my_policy_project = new gitlab.Project("my-policy-project", {name: "security-policy-project"});
const policy_yml = new gitlab.RepositoryFile("policy-yml", {
project: my_policy_project.id,
filePath: ".gitlab/security-policies/my-policy.yml",
branch: "master",
encoding: "text",
content: `---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
`,
});
const my_policy = new gitlab.ProjectSecurityPolicyAttachment("my-policy", {
project: "1234",
policyProject: my_policy_project.id,
});
import pulumi
import pulumi_gitlab as gitlab
# This resource can be used to attach a security policy to a pre-existing project
foo = gitlab.ProjectSecurityPolicyAttachment("foo",
project="1234",
policy_project="4567")
# Or you can use Terraform to create a new project, add a policy to that project,
# then attach that policy project to other projects.
my_policy_project = gitlab.Project("my-policy-project", name="security-policy-project")
policy_yml = gitlab.RepositoryFile("policy-yml",
project=my_policy_project.id,
file_path=".gitlab/security-policies/my-policy.yml",
branch="master",
encoding="text",
content="""---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
""")
my_policy = gitlab.ProjectSecurityPolicyAttachment("my-policy",
project="1234",
policy_project=my_policy_project.id)
package main
import (
"github.com/pulumi/pulumi-gitlab/sdk/v8/go/gitlab"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// This resource can be used to attach a security policy to a pre-existing project
_, err := gitlab.NewProjectSecurityPolicyAttachment(ctx, "foo", &gitlab.ProjectSecurityPolicyAttachmentArgs{
Project: pulumi.String("1234"),
PolicyProject: pulumi.String("4567"),
})
if err != nil {
return err
}
// Or you can use Terraform to create a new project, add a policy to that project,
// then attach that policy project to other projects.
_, err = gitlab.NewProject(ctx, "my-policy-project", &gitlab.ProjectArgs{
Name: pulumi.String("security-policy-project"),
})
if err != nil {
return err
}
_, err = gitlab.NewRepositoryFile(ctx, "policy-yml", &gitlab.RepositoryFileArgs{
Project: my_policy_project.ID(),
FilePath: pulumi.String(".gitlab/security-policies/my-policy.yml"),
Branch: pulumi.String("master"),
Encoding: pulumi.String("text"),
Content: pulumi.String(`---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
`),
})
if err != nil {
return err
}
_, err = gitlab.NewProjectSecurityPolicyAttachment(ctx, "my-policy", &gitlab.ProjectSecurityPolicyAttachmentArgs{
Project: pulumi.String("1234"),
PolicyProject: my_policy_project.ID(),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using GitLab = Pulumi.GitLab;
return await Deployment.RunAsync(() =>
{
// This resource can be used to attach a security policy to a pre-existing project
var foo = new GitLab.ProjectSecurityPolicyAttachment("foo", new()
{
Project = "1234",
PolicyProject = "4567",
});
// Or you can use Terraform to create a new project, add a policy to that project,
// then attach that policy project to other projects.
var my_policy_project = new GitLab.Project("my-policy-project", new()
{
Name = "security-policy-project",
});
var policy_yml = new GitLab.RepositoryFile("policy-yml", new()
{
Project = my_policy_project.Id,
FilePath = ".gitlab/security-policies/my-policy.yml",
Branch = "master",
Encoding = "text",
Content = @"---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
",
});
var my_policy = new GitLab.ProjectSecurityPolicyAttachment("my-policy", new()
{
Project = "1234",
PolicyProject = my_policy_project.Id,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gitlab.ProjectSecurityPolicyAttachment;
import com.pulumi.gitlab.ProjectSecurityPolicyAttachmentArgs;
import com.pulumi.gitlab.Project;
import com.pulumi.gitlab.ProjectArgs;
import com.pulumi.gitlab.RepositoryFile;
import com.pulumi.gitlab.RepositoryFileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// This resource can be used to attach a security policy to a pre-existing project
var foo = new ProjectSecurityPolicyAttachment("foo", ProjectSecurityPolicyAttachmentArgs.builder()
.project(1234)
.policyProject(4567)
.build());
// Or you can use Terraform to create a new project, add a policy to that project,
// then attach that policy project to other projects.
var my_policy_project = new Project("my-policy-project", ProjectArgs.builder()
.name("security-policy-project")
.build());
var policy_yml = new RepositoryFile("policy-yml", RepositoryFileArgs.builder()
.project(my_policy_project.id())
.filePath(".gitlab/security-policies/my-policy.yml")
.branch("master")
.encoding("text")
.content("""
---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
""")
.build());
var my_policy = new ProjectSecurityPolicyAttachment("my-policy", ProjectSecurityPolicyAttachmentArgs.builder()
.project(1234)
.policyProject(my_policy_project.id())
.build());
}
}
resources:
# This resource can be used to attach a security policy to a pre-existing project
foo:
type: gitlab:ProjectSecurityPolicyAttachment
properties:
project: 1234
policyProject: 4567
# Or you can use Terraform to create a new project, add a policy to that project,
# then attach that policy project to other projects.
my-policy-project:
type: gitlab:Project
properties:
name: security-policy-project
policy-yml:
type: gitlab:RepositoryFile
properties:
project: ${["my-policy-project"].id}
filePath: .gitlab/security-policies/my-policy.yml
branch: master
encoding: text
content: |
---
approval_policy:
- name: test
description: test
enabled: true
rules:
- type: any_merge_request
branch_type: protected
commits: any
approval_settings:
block_branch_modification: true
prevent_pushing_and_force_pushing: true
prevent_approval_by_author: true
prevent_approval_by_commit_author: true
remove_approvals_with_new_commit: true
require_password_to_approve: false
fallback_behavior:
fail: closed
actions:
- type: send_bot_message
enabled: true
my-policy:
type: gitlab:ProjectSecurityPolicyAttachment
properties:
project: 1234
policyProject: ${["my-policy-project"].id}
Create ProjectSecurityPolicyAttachment Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ProjectSecurityPolicyAttachment(name: string, args: ProjectSecurityPolicyAttachmentArgs, opts?: CustomResourceOptions);
@overload
def ProjectSecurityPolicyAttachment(resource_name: str,
args: ProjectSecurityPolicyAttachmentArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ProjectSecurityPolicyAttachment(resource_name: str,
opts: Optional[ResourceOptions] = None,
policy_project: Optional[str] = None,
project: Optional[str] = None)
func NewProjectSecurityPolicyAttachment(ctx *Context, name string, args ProjectSecurityPolicyAttachmentArgs, opts ...ResourceOption) (*ProjectSecurityPolicyAttachment, error)
public ProjectSecurityPolicyAttachment(string name, ProjectSecurityPolicyAttachmentArgs args, CustomResourceOptions? opts = null)
public ProjectSecurityPolicyAttachment(String name, ProjectSecurityPolicyAttachmentArgs args)
public ProjectSecurityPolicyAttachment(String name, ProjectSecurityPolicyAttachmentArgs args, CustomResourceOptions options)
type: gitlab:ProjectSecurityPolicyAttachment
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ProjectSecurityPolicyAttachmentArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ProjectSecurityPolicyAttachmentArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ProjectSecurityPolicyAttachmentArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ProjectSecurityPolicyAttachmentArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ProjectSecurityPolicyAttachmentArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var projectSecurityPolicyAttachmentResource = new GitLab.ProjectSecurityPolicyAttachment("projectSecurityPolicyAttachmentResource", new()
{
PolicyProject = "string",
Project = "string",
});
example, err := gitlab.NewProjectSecurityPolicyAttachment(ctx, "projectSecurityPolicyAttachmentResource", &gitlab.ProjectSecurityPolicyAttachmentArgs{
PolicyProject: pulumi.String("string"),
Project: pulumi.String("string"),
})
var projectSecurityPolicyAttachmentResource = new ProjectSecurityPolicyAttachment("projectSecurityPolicyAttachmentResource", ProjectSecurityPolicyAttachmentArgs.builder()
.policyProject("string")
.project("string")
.build());
project_security_policy_attachment_resource = gitlab.ProjectSecurityPolicyAttachment("projectSecurityPolicyAttachmentResource",
policy_project="string",
project="string")
const projectSecurityPolicyAttachmentResource = new gitlab.ProjectSecurityPolicyAttachment("projectSecurityPolicyAttachmentResource", {
policyProject: "string",
project: "string",
});
type: gitlab:ProjectSecurityPolicyAttachment
properties:
policyProject: string
project: string
ProjectSecurityPolicyAttachment Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ProjectSecurityPolicyAttachment resource accepts the following input properties:
- Policy
Project string - The ID or Full Path of the security policy project.
- Project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- Policy
Project string - The ID or Full Path of the security policy project.
- Project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- policy
Project String - The ID or Full Path of the security policy project.
- project String
- The ID or Full Path of the project which will have the security policy project assigned to it.
- policy
Project string - The ID or Full Path of the security policy project.
- project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- policy_
project str - The ID or Full Path of the security policy project.
- project str
- The ID or Full Path of the project which will have the security policy project assigned to it.
- policy
Project String - The ID or Full Path of the security policy project.
- project String
- The ID or Full Path of the project which will have the security policy project assigned to it.
Outputs
All input properties are implicitly available as output properties. Additionally, the ProjectSecurityPolicyAttachment resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- Project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- Id string
- The provider-assigned unique ID for this managed resource.
- Policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- Project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- id String
- The provider-assigned unique ID for this managed resource.
- policy
Project StringGraphql Id - The GraphQL ID of the security policy project.
- project
Graphql StringId - The GraphQL ID of the project to which the security policty project will be attached.
- id string
- The provider-assigned unique ID for this managed resource.
- policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- id str
- The provider-assigned unique ID for this managed resource.
- policy_
project_ strgraphql_ id - The GraphQL ID of the security policy project.
- project_
graphql_ strid - The GraphQL ID of the project to which the security policty project will be attached.
- id String
- The provider-assigned unique ID for this managed resource.
- policy
Project StringGraphql Id - The GraphQL ID of the security policy project.
- project
Graphql StringId - The GraphQL ID of the project to which the security policty project will be attached.
Look up Existing ProjectSecurityPolicyAttachment Resource
Get an existing ProjectSecurityPolicyAttachment resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ProjectSecurityPolicyAttachmentState, opts?: CustomResourceOptions): ProjectSecurityPolicyAttachment
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
policy_project: Optional[str] = None,
policy_project_graphql_id: Optional[str] = None,
project: Optional[str] = None,
project_graphql_id: Optional[str] = None) -> ProjectSecurityPolicyAttachment
func GetProjectSecurityPolicyAttachment(ctx *Context, name string, id IDInput, state *ProjectSecurityPolicyAttachmentState, opts ...ResourceOption) (*ProjectSecurityPolicyAttachment, error)
public static ProjectSecurityPolicyAttachment Get(string name, Input<string> id, ProjectSecurityPolicyAttachmentState? state, CustomResourceOptions? opts = null)
public static ProjectSecurityPolicyAttachment get(String name, Output<String> id, ProjectSecurityPolicyAttachmentState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Policy
Project string - The ID or Full Path of the security policy project.
- Policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- Project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- Project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- Policy
Project string - The ID or Full Path of the security policy project.
- Policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- Project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- Project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- policy
Project String - The ID or Full Path of the security policy project.
- policy
Project StringGraphql Id - The GraphQL ID of the security policy project.
- project String
- The ID or Full Path of the project which will have the security policy project assigned to it.
- project
Graphql StringId - The GraphQL ID of the project to which the security policty project will be attached.
- policy
Project string - The ID or Full Path of the security policy project.
- policy
Project stringGraphql Id - The GraphQL ID of the security policy project.
- project string
- The ID or Full Path of the project which will have the security policy project assigned to it.
- project
Graphql stringId - The GraphQL ID of the project to which the security policty project will be attached.
- policy_
project str - The ID or Full Path of the security policy project.
- policy_
project_ strgraphql_ id - The GraphQL ID of the security policy project.
- project str
- The ID or Full Path of the project which will have the security policy project assigned to it.
- project_
graphql_ strid - The GraphQL ID of the project to which the security policty project will be attached.
- policy
Project String - The ID or Full Path of the security policy project.
- policy
Project StringGraphql Id - The GraphQL ID of the security policy project.
- project String
- The ID or Full Path of the project which will have the security policy project assigned to it.
- project
Graphql StringId - The GraphQL ID of the project to which the security policty project will be attached.
Import
GitLab project security policy attachments can be imported using an id made up of project:policy_project_id
where the policy project ID is the project ID of the policy project, e.g.
$ pulumi import gitlab:index/projectSecurityPolicyAttachment:ProjectSecurityPolicyAttachment foo 1:2
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- GitLab pulumi/pulumi-gitlab
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
gitlab
Terraform Provider.