All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.kms.PolicyArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.kms;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class PolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final PolicyArgs Empty = new PolicyArgs();

    /**
     * Network Rules in JSON struct.
     * 
     */
    @Import(name="accessControlRules", required=true)
    private Output accessControlRules;

    /**
     * @return Network Rules in JSON struct.
     * 
     */
    public Output accessControlRules() {
        return this.accessControlRules;
    }

    /**
     * Description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * KMS instance .
     * 
     */
    @Import(name="kmsInstanceId", required=true)
    private Output kmsInstanceId;

    /**
     * @return KMS instance .
     * 
     */
    public Output kmsInstanceId() {
        return this.kmsInstanceId;
    }

    /**
     * Allowed permissions (RBAC)Optional values:"RbacPermission/Template/CryptoServiceKeyUser" and "RbacPermission/Template/CryptoServiceSecretUser".
     * 
     */
    @Import(name="permissions", required=true)
    private Output> permissions;

    /**
     * @return Allowed permissions (RBAC)Optional values:"RbacPermission/Template/CryptoServiceKeyUser" and "RbacPermission/Template/CryptoServiceSecretUser".
     * 
     */
    public Output> permissions() {
        return this.permissions;
    }

    /**
     * Policy Name.
     * 
     */
    @Import(name="policyName", required=true)
    private Output policyName;

    /**
     * @return Policy Name.
     * 
     */
    public Output policyName() {
        return this.policyName;
    }

    /**
     * The resources that the permission policy allows to access.Use "key/${KeyId}" or "key/*"  to specify a key or all keys.Use "secret/${SecretName}" or "secret/*" to specify a secret or all secrets.
     * 
     */
    @Import(name="resources", required=true)
    private Output> resources;

    /**
     * @return The resources that the permission policy allows to access.Use "key/${KeyId}" or "key/*"  to specify a key or all keys.Use "secret/${SecretName}" or "secret/*" to specify a secret or all secrets.
     * 
     */
    public Output> resources() {
        return this.resources;
    }

    private PolicyArgs() {}

    private PolicyArgs(PolicyArgs $) {
        this.accessControlRules = $.accessControlRules;
        this.description = $.description;
        this.kmsInstanceId = $.kmsInstanceId;
        this.permissions = $.permissions;
        this.policyName = $.policyName;
        this.resources = $.resources;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(PolicyArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private PolicyArgs $;

        public Builder() {
            $ = new PolicyArgs();
        }

        public Builder(PolicyArgs defaults) {
            $ = new PolicyArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accessControlRules Network Rules in JSON struct.
         * 
         * @return builder
         * 
         */
        public Builder accessControlRules(Output accessControlRules) {
            $.accessControlRules = accessControlRules;
            return this;
        }

        /**
         * @param accessControlRules Network Rules in JSON struct.
         * 
         * @return builder
         * 
         */
        public Builder accessControlRules(String accessControlRules) {
            return accessControlRules(Output.of(accessControlRules));
        }

        /**
         * @param description Description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param kmsInstanceId KMS instance .
         * 
         * @return builder
         * 
         */
        public Builder kmsInstanceId(Output kmsInstanceId) {
            $.kmsInstanceId = kmsInstanceId;
            return this;
        }

        /**
         * @param kmsInstanceId KMS instance .
         * 
         * @return builder
         * 
         */
        public Builder kmsInstanceId(String kmsInstanceId) {
            return kmsInstanceId(Output.of(kmsInstanceId));
        }

        /**
         * @param permissions Allowed permissions (RBAC)Optional values:"RbacPermission/Template/CryptoServiceKeyUser" and "RbacPermission/Template/CryptoServiceSecretUser".
         * 
         * @return builder
         * 
         */
        public Builder permissions(Output> permissions) {
            $.permissions = permissions;
            return this;
        }

        /**
         * @param permissions Allowed permissions (RBAC)Optional values:"RbacPermission/Template/CryptoServiceKeyUser" and "RbacPermission/Template/CryptoServiceSecretUser".
         * 
         * @return builder
         * 
         */
        public Builder permissions(List permissions) {
            return permissions(Output.of(permissions));
        }

        /**
         * @param permissions Allowed permissions (RBAC)Optional values:"RbacPermission/Template/CryptoServiceKeyUser" and "RbacPermission/Template/CryptoServiceSecretUser".
         * 
         * @return builder
         * 
         */
        public Builder permissions(String... permissions) {
            return permissions(List.of(permissions));
        }

        /**
         * @param policyName Policy Name.
         * 
         * @return builder
         * 
         */
        public Builder policyName(Output policyName) {
            $.policyName = policyName;
            return this;
        }

        /**
         * @param policyName Policy Name.
         * 
         * @return builder
         * 
         */
        public Builder policyName(String policyName) {
            return policyName(Output.of(policyName));
        }

        /**
         * @param resources The resources that the permission policy allows to access.Use "key/${KeyId}" or "key/*"  to specify a key or all keys.Use "secret/${SecretName}" or "secret/*" to specify a secret or all secrets.
         * 
         * @return builder
         * 
         */
        public Builder resources(Output> resources) {
            $.resources = resources;
            return this;
        }

        /**
         * @param resources The resources that the permission policy allows to access.Use "key/${KeyId}" or "key/*"  to specify a key or all keys.Use "secret/${SecretName}" or "secret/*" to specify a secret or all secrets.
         * 
         * @return builder
         * 
         */
        public Builder resources(List resources) {
            return resources(Output.of(resources));
        }

        /**
         * @param resources The resources that the permission policy allows to access.Use "key/${KeyId}" or "key/*"  to specify a key or all keys.Use "secret/${SecretName}" or "secret/*" to specify a secret or all secrets.
         * 
         * @return builder
         * 
         */
        public Builder resources(String... resources) {
            return resources(List.of(resources));
        }

        public PolicyArgs build() {
            if ($.accessControlRules == null) {
                throw new MissingRequiredPropertyException("PolicyArgs", "accessControlRules");
            }
            if ($.kmsInstanceId == null) {
                throw new MissingRequiredPropertyException("PolicyArgs", "kmsInstanceId");
            }
            if ($.permissions == null) {
                throw new MissingRequiredPropertyException("PolicyArgs", "permissions");
            }
            if ($.policyName == null) {
                throw new MissingRequiredPropertyException("PolicyArgs", "policyName");
            }
            if ($.resources == null) {
                throw new MissingRequiredPropertyException("PolicyArgs", "resources");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy