harbor.RetentionPolicy
Explore with Pulumi AI
Example Usage
resource "harbor_project" "main" {
  name = "acctest"
}
resource "harbor_retention_policy" "main" {
  scope = harbor_project.main.id
  schedule = "Daily"
  rule {
    n_days_since_last_pull = 5
    repo_matching = "**"
    tag_matching = "latest"
  }
  rule {
    n_days_since_last_push = 10
    repo_matching = "**"
    tag_matching = "{latest,snapshot}"
  }
}
Create RetentionPolicy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new RetentionPolicy(name: string, args: RetentionPolicyArgs, opts?: CustomResourceOptions);@overload
def RetentionPolicy(resource_name: str,
                    args: RetentionPolicyArgs,
                    opts: Optional[ResourceOptions] = None)
@overload
def RetentionPolicy(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    rules: Optional[Sequence[RetentionPolicyRuleArgs]] = None,
                    scope: Optional[str] = None,
                    schedule: Optional[str] = None)func NewRetentionPolicy(ctx *Context, name string, args RetentionPolicyArgs, opts ...ResourceOption) (*RetentionPolicy, error)public RetentionPolicy(string name, RetentionPolicyArgs args, CustomResourceOptions? opts = null)
public RetentionPolicy(String name, RetentionPolicyArgs args)
public RetentionPolicy(String name, RetentionPolicyArgs args, CustomResourceOptions options)
type: harbor:RetentionPolicy
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 RetentionPolicyArgs
- 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 RetentionPolicyArgs
- 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 RetentionPolicyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args RetentionPolicyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args RetentionPolicyArgs
- 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 retentionPolicyResource = new Harbor.RetentionPolicy("retentionPolicyResource", new()
{
    Rules = new[]
    {
        new Harbor.Inputs.RetentionPolicyRuleArgs
        {
            AlwaysRetain = false,
            Disabled = false,
            MostRecentlyPulled = 0,
            MostRecentlyPushed = 0,
            NDaysSinceLastPull = 0,
            NDaysSinceLastPush = 0,
            RepoExcluding = "string",
            RepoMatching = "string",
            TagExcluding = "string",
            TagMatching = "string",
            UntaggedArtifacts = false,
        },
    },
    Scope = "string",
    Schedule = "string",
});
example, err := harbor.NewRetentionPolicy(ctx, "retentionPolicyResource", &harbor.RetentionPolicyArgs{
	Rules: harbor.RetentionPolicyRuleArray{
		&harbor.RetentionPolicyRuleArgs{
			AlwaysRetain:       pulumi.Bool(false),
			Disabled:           pulumi.Bool(false),
			MostRecentlyPulled: pulumi.Int(0),
			MostRecentlyPushed: pulumi.Int(0),
			NDaysSinceLastPull: pulumi.Int(0),
			NDaysSinceLastPush: pulumi.Int(0),
			RepoExcluding:      pulumi.String("string"),
			RepoMatching:       pulumi.String("string"),
			TagExcluding:       pulumi.String("string"),
			TagMatching:        pulumi.String("string"),
			UntaggedArtifacts:  pulumi.Bool(false),
		},
	},
	Scope:    pulumi.String("string"),
	Schedule: pulumi.String("string"),
})
var retentionPolicyResource = new RetentionPolicy("retentionPolicyResource", RetentionPolicyArgs.builder()
    .rules(RetentionPolicyRuleArgs.builder()
        .alwaysRetain(false)
        .disabled(false)
        .mostRecentlyPulled(0)
        .mostRecentlyPushed(0)
        .nDaysSinceLastPull(0)
        .nDaysSinceLastPush(0)
        .repoExcluding("string")
        .repoMatching("string")
        .tagExcluding("string")
        .tagMatching("string")
        .untaggedArtifacts(false)
        .build())
    .scope("string")
    .schedule("string")
    .build());
retention_policy_resource = harbor.RetentionPolicy("retentionPolicyResource",
    rules=[{
        "always_retain": False,
        "disabled": False,
        "most_recently_pulled": 0,
        "most_recently_pushed": 0,
        "n_days_since_last_pull": 0,
        "n_days_since_last_push": 0,
        "repo_excluding": "string",
        "repo_matching": "string",
        "tag_excluding": "string",
        "tag_matching": "string",
        "untagged_artifacts": False,
    }],
    scope="string",
    schedule="string")
const retentionPolicyResource = new harbor.RetentionPolicy("retentionPolicyResource", {
    rules: [{
        alwaysRetain: false,
        disabled: false,
        mostRecentlyPulled: 0,
        mostRecentlyPushed: 0,
        nDaysSinceLastPull: 0,
        nDaysSinceLastPush: 0,
        repoExcluding: "string",
        repoMatching: "string",
        tagExcluding: "string",
        tagMatching: "string",
        untaggedArtifacts: false,
    }],
    scope: "string",
    schedule: "string",
});
type: harbor:RetentionPolicy
properties:
    rules:
        - alwaysRetain: false
          disabled: false
          mostRecentlyPulled: 0
          mostRecentlyPushed: 0
          nDaysSinceLastPull: 0
          nDaysSinceLastPush: 0
          repoExcluding: string
          repoMatching: string
          tagExcluding: string
          tagMatching: string
          untaggedArtifacts: false
    schedule: string
    scope: string
RetentionPolicy 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 RetentionPolicy resource accepts the following input properties:
- Rules
List<Pulumiverse.Harbor. Inputs. Retention Policy Rule> 
- Scope string
- The project id of which you would like to apply this policy.
- Schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- Rules
[]RetentionPolicy Rule Args 
- Scope string
- The project id of which you would like to apply this policy.
- Schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- rules
List<RetentionPolicy Rule> 
- scope String
- The project id of which you would like to apply this policy.
- schedule String
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- rules
RetentionPolicy Rule[] 
- scope string
- The project id of which you would like to apply this policy.
- schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- rules
Sequence[RetentionPolicy Rule Args] 
- scope str
- The project id of which you would like to apply this policy.
- schedule str
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- rules List<Property Map>
- scope String
- The project id of which you would like to apply this policy.
- schedule String
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
Outputs
All input properties are implicitly available as output properties. Additionally, the RetentionPolicy resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing RetentionPolicy Resource
Get an existing RetentionPolicy 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?: RetentionPolicyState, opts?: CustomResourceOptions): RetentionPolicy@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        rules: Optional[Sequence[RetentionPolicyRuleArgs]] = None,
        schedule: Optional[str] = None,
        scope: Optional[str] = None) -> RetentionPolicyfunc GetRetentionPolicy(ctx *Context, name string, id IDInput, state *RetentionPolicyState, opts ...ResourceOption) (*RetentionPolicy, error)public static RetentionPolicy Get(string name, Input<string> id, RetentionPolicyState? state, CustomResourceOptions? opts = null)public static RetentionPolicy get(String name, Output<String> id, RetentionPolicyState state, CustomResourceOptions options)resources:  _:    type: harbor:RetentionPolicy    get:      id: ${id}- 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.
- Rules
List<Pulumiverse.Harbor. Inputs. Retention Policy Rule> 
- Schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- Scope string
- The project id of which you would like to apply this policy.
- Rules
[]RetentionPolicy Rule Args 
- Schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- Scope string
- The project id of which you would like to apply this policy.
- rules
List<RetentionPolicy Rule> 
- schedule String
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- scope String
- The project id of which you would like to apply this policy.
- rules
RetentionPolicy Rule[] 
- schedule string
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- scope string
- The project id of which you would like to apply this policy.
- rules
Sequence[RetentionPolicy Rule Args] 
- schedule str
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- scope str
- The project id of which you would like to apply this policy.
- rules List<Property Map>
- schedule String
- The schedule of when you would like the policy to run. This can be Hourly,Daily,Weeklyor can be a custom cron string.
- scope String
- The project id of which you would like to apply this policy.
Supporting Types
RetentionPolicyRule, RetentionPolicyRuleArgs      
- AlwaysRetain bool
- Disabled bool
- MostRecently intPulled 
- MostRecently intPushed 
- NDaysSince intLast Pull 
- NDaysSince intLast Push 
- RepoExcluding string
- RepoMatching string
- TagExcluding string
- TagMatching string
- UntaggedArtifacts bool
- AlwaysRetain bool
- Disabled bool
- MostRecently intPulled 
- MostRecently intPushed 
- NDaysSince intLast Pull 
- NDaysSince intLast Push 
- RepoExcluding string
- RepoMatching string
- TagExcluding string
- TagMatching string
- UntaggedArtifacts bool
- alwaysRetain Boolean
- disabled Boolean
- mostRecently IntegerPulled 
- mostRecently IntegerPushed 
- nDays IntegerSince Last Pull 
- nDays IntegerSince Last Push 
- repoExcluding String
- repoMatching String
- tagExcluding String
- tagMatching String
- untaggedArtifacts Boolean
- alwaysRetain boolean
- disabled boolean
- mostRecently numberPulled 
- mostRecently numberPushed 
- nDays numberSince Last Pull 
- nDays numberSince Last Push 
- repoExcluding string
- repoMatching string
- tagExcluding string
- tagMatching string
- untaggedArtifacts boolean
- always_retain bool
- disabled bool
- most_recently_ intpulled 
- most_recently_ intpushed 
- n_days_ intsince_ last_ pull 
- n_days_ intsince_ last_ push 
- repo_excluding str
- repo_matching str
- tag_excluding str
- tag_matching str
- untagged_artifacts bool
- alwaysRetain Boolean
- disabled Boolean
- mostRecently NumberPulled 
- mostRecently NumberPushed 
- nDays NumberSince Last Pull 
- nDays NumberSince Last Push 
- repoExcluding String
- repoMatching String
- tagExcluding String
- tagMatching String
- untaggedArtifacts Boolean
Import
$ pulumi import harbor:index/retentionPolicy:RetentionPolicy main /retentions/10
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- harbor pulumiverse/pulumi-harbor
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the harborTerraform Provider.