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

com.pulumi.azurenative.compute.inputs.SharingProfileArgs Maven / Gradle / Ivy

The 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.compute.inputs;

import com.pulumi.azurenative.compute.enums.GallerySharingPermissionTypes;
import com.pulumi.azurenative.compute.inputs.CommunityGalleryInfoArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Profile for gallery sharing to subscription or tenant
 * 
 */
public final class SharingProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final SharingProfileArgs Empty = new SharingProfileArgs();

    /**
     * Information of community gallery if current gallery is shared to community.
     * 
     */
    @Import(name="communityGalleryInfo")
    private @Nullable Output communityGalleryInfo;

    /**
     * @return Information of community gallery if current gallery is shared to community.
     * 
     */
    public Optional> communityGalleryInfo() {
        return Optional.ofNullable(this.communityGalleryInfo);
    }

    /**
     * This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
     * 
     */
    @Import(name="permissions")
    private @Nullable Output> permissions;

    /**
     * @return This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
     * 
     */
    public Optional>> permissions() {
        return Optional.ofNullable(this.permissions);
    }

    private SharingProfileArgs() {}

    private SharingProfileArgs(SharingProfileArgs $) {
        this.communityGalleryInfo = $.communityGalleryInfo;
        this.permissions = $.permissions;
    }

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

    public static final class Builder {
        private SharingProfileArgs $;

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

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

        /**
         * @param communityGalleryInfo Information of community gallery if current gallery is shared to community.
         * 
         * @return builder
         * 
         */
        public Builder communityGalleryInfo(@Nullable Output communityGalleryInfo) {
            $.communityGalleryInfo = communityGalleryInfo;
            return this;
        }

        /**
         * @param communityGalleryInfo Information of community gallery if current gallery is shared to community.
         * 
         * @return builder
         * 
         */
        public Builder communityGalleryInfo(CommunityGalleryInfoArgs communityGalleryInfo) {
            return communityGalleryInfo(Output.of(communityGalleryInfo));
        }

        /**
         * @param permissions This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
         * 
         * @return builder
         * 
         */
        public Builder permissions(@Nullable Output> permissions) {
            $.permissions = permissions;
            return this;
        }

        /**
         * @param permissions This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
         * 
         * @return builder
         * 
         */
        public Builder permissions(Either permissions) {
            return permissions(Output.of(permissions));
        }

        /**
         * @param permissions This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
         * 
         * @return builder
         * 
         */
        public Builder permissions(String permissions) {
            return permissions(Either.ofLeft(permissions));
        }

        /**
         * @param permissions This property allows you to specify the permission of sharing gallery. <br><br> Possible values are: <br><br> **Private** <br><br> **Groups** <br><br> **Community**
         * 
         * @return builder
         * 
         */
        public Builder permissions(GallerySharingPermissionTypes permissions) {
            return permissions(Either.ofRight(permissions));
        }

        public SharingProfileArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy