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

com.pulumi.azurenative.storage.inputs.BlobInventoryPolicyDefinitionArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
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.azurenative.storage.inputs;

import com.pulumi.azurenative.storage.enums.Format;
import com.pulumi.azurenative.storage.enums.ObjectType;
import com.pulumi.azurenative.storage.enums.Schedule;
import com.pulumi.azurenative.storage.inputs.BlobInventoryPolicyFilterArgs;
import com.pulumi.core.Either;
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;


/**
 * An object that defines the blob inventory rule.
 * 
 */
public final class BlobInventoryPolicyDefinitionArgs extends com.pulumi.resources.ResourceArgs {

    public static final BlobInventoryPolicyDefinitionArgs Empty = new BlobInventoryPolicyDefinitionArgs();

    /**
     * An object that defines the filter set.
     * 
     */
    @Import(name="filters")
    private @Nullable Output filters;

    /**
     * @return An object that defines the filter set.
     * 
     */
    public Optional> filters() {
        return Optional.ofNullable(this.filters);
    }

    /**
     * This is a required field, it specifies the format for the inventory files.
     * 
     */
    @Import(name="format", required=true)
    private Output> format;

    /**
     * @return This is a required field, it specifies the format for the inventory files.
     * 
     */
    public Output> format() {
        return this.format;
    }

    /**
     * This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
     * 
     */
    @Import(name="objectType", required=true)
    private Output> objectType;

    /**
     * @return This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
     * 
     */
    public Output> objectType() {
        return this.objectType;
    }

    /**
     * This is a required field. This field is used to schedule an inventory formation.
     * 
     */
    @Import(name="schedule", required=true)
    private Output> schedule;

    /**
     * @return This is a required field. This field is used to schedule an inventory formation.
     * 
     */
    public Output> schedule() {
        return this.schedule;
    }

    /**
     * This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.
     * 
     */
    @Import(name="schemaFields", required=true)
    private Output> schemaFields;

    /**
     * @return This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.
     * 
     */
    public Output> schemaFields() {
        return this.schemaFields;
    }

    private BlobInventoryPolicyDefinitionArgs() {}

    private BlobInventoryPolicyDefinitionArgs(BlobInventoryPolicyDefinitionArgs $) {
        this.filters = $.filters;
        this.format = $.format;
        this.objectType = $.objectType;
        this.schedule = $.schedule;
        this.schemaFields = $.schemaFields;
    }

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

    public static final class Builder {
        private BlobInventoryPolicyDefinitionArgs $;

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

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

        /**
         * @param filters An object that defines the filter set.
         * 
         * @return builder
         * 
         */
        public Builder filters(@Nullable Output filters) {
            $.filters = filters;
            return this;
        }

        /**
         * @param filters An object that defines the filter set.
         * 
         * @return builder
         * 
         */
        public Builder filters(BlobInventoryPolicyFilterArgs filters) {
            return filters(Output.of(filters));
        }

        /**
         * @param format This is a required field, it specifies the format for the inventory files.
         * 
         * @return builder
         * 
         */
        public Builder format(Output> format) {
            $.format = format;
            return this;
        }

        /**
         * @param format This is a required field, it specifies the format for the inventory files.
         * 
         * @return builder
         * 
         */
        public Builder format(Either format) {
            return format(Output.of(format));
        }

        /**
         * @param format This is a required field, it specifies the format for the inventory files.
         * 
         * @return builder
         * 
         */
        public Builder format(String format) {
            return format(Either.ofLeft(format));
        }

        /**
         * @param format This is a required field, it specifies the format for the inventory files.
         * 
         * @return builder
         * 
         */
        public Builder format(Format format) {
            return format(Either.ofRight(format));
        }

        /**
         * @param objectType This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
         * 
         * @return builder
         * 
         */
        public Builder objectType(Output> objectType) {
            $.objectType = objectType;
            return this;
        }

        /**
         * @param objectType This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
         * 
         * @return builder
         * 
         */
        public Builder objectType(Either objectType) {
            return objectType(Output.of(objectType));
        }

        /**
         * @param objectType This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
         * 
         * @return builder
         * 
         */
        public Builder objectType(String objectType) {
            return objectType(Either.ofLeft(objectType));
        }

        /**
         * @param objectType This is a required field. This field specifies the scope of the inventory created either at the blob or container level.
         * 
         * @return builder
         * 
         */
        public Builder objectType(ObjectType objectType) {
            return objectType(Either.ofRight(objectType));
        }

        /**
         * @param schedule This is a required field. This field is used to schedule an inventory formation.
         * 
         * @return builder
         * 
         */
        public Builder schedule(Output> schedule) {
            $.schedule = schedule;
            return this;
        }

        /**
         * @param schedule This is a required field. This field is used to schedule an inventory formation.
         * 
         * @return builder
         * 
         */
        public Builder schedule(Either schedule) {
            return schedule(Output.of(schedule));
        }

        /**
         * @param schedule This is a required field. This field is used to schedule an inventory formation.
         * 
         * @return builder
         * 
         */
        public Builder schedule(String schedule) {
            return schedule(Either.ofLeft(schedule));
        }

        /**
         * @param schedule This is a required field. This field is used to schedule an inventory formation.
         * 
         * @return builder
         * 
         */
        public Builder schedule(Schedule schedule) {
            return schedule(Either.ofRight(schedule));
        }

        /**
         * @param schemaFields This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.
         * 
         * @return builder
         * 
         */
        public Builder schemaFields(Output> schemaFields) {
            $.schemaFields = schemaFields;
            return this;
        }

        /**
         * @param schemaFields This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.
         * 
         * @return builder
         * 
         */
        public Builder schemaFields(List schemaFields) {
            return schemaFields(Output.of(schemaFields));
        }

        /**
         * @param schemaFields This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.
         * 
         * @return builder
         * 
         */
        public Builder schemaFields(String... schemaFields) {
            return schemaFields(List.of(schemaFields));
        }

        public BlobInventoryPolicyDefinitionArgs build() {
            if ($.format == null) {
                throw new MissingRequiredPropertyException("BlobInventoryPolicyDefinitionArgs", "format");
            }
            if ($.objectType == null) {
                throw new MissingRequiredPropertyException("BlobInventoryPolicyDefinitionArgs", "objectType");
            }
            if ($.schedule == null) {
                throw new MissingRequiredPropertyException("BlobInventoryPolicyDefinitionArgs", "schedule");
            }
            if ($.schemaFields == null) {
                throw new MissingRequiredPropertyException("BlobInventoryPolicyDefinitionArgs", "schemaFields");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy