// *** WARNING: this file was generated by test. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package mongodbatlas

import (
	"context"
	"reflect"

	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

type GetCustomDbRolesResult struct {
}

// GetCustomDbRolesResultInput is an input type that accepts GetCustomDbRolesResultArgs and GetCustomDbRolesResultOutput values.
// You can construct a concrete instance of `GetCustomDbRolesResultInput` via:
//
//          GetCustomDbRolesResultArgs{...}
type GetCustomDbRolesResultInput interface {
	pulumi.Input

	ToGetCustomDbRolesResultOutput() GetCustomDbRolesResultOutput
	ToGetCustomDbRolesResultOutputWithContext(context.Context) GetCustomDbRolesResultOutput
}

type GetCustomDbRolesResultArgs struct {
}

func (GetCustomDbRolesResultArgs) ElementType() reflect.Type {
	return reflect.TypeOf((*GetCustomDbRolesResult)(nil)).Elem()
}

func (i GetCustomDbRolesResultArgs) ToGetCustomDbRolesResultOutput() GetCustomDbRolesResultOutput {
	return i.ToGetCustomDbRolesResultOutputWithContext(context.Background())
}

func (i GetCustomDbRolesResultArgs) ToGetCustomDbRolesResultOutputWithContext(ctx context.Context) GetCustomDbRolesResultOutput {
	return pulumi.ToOutputWithContext(ctx, i).(GetCustomDbRolesResultOutput)
}

func (i GetCustomDbRolesResultArgs) ToGetCustomDbRolesResultPtrOutput() GetCustomDbRolesResultPtrOutput {
	return i.ToGetCustomDbRolesResultPtrOutputWithContext(context.Background())
}

func (i GetCustomDbRolesResultArgs) ToGetCustomDbRolesResultPtrOutputWithContext(ctx context.Context) GetCustomDbRolesResultPtrOutput {
	return pulumi.ToOutputWithContext(ctx, i).(GetCustomDbRolesResultOutput).ToGetCustomDbRolesResultPtrOutputWithContext(ctx)
}

// GetCustomDbRolesResultPtrInput is an input type that accepts GetCustomDbRolesResultArgs, GetCustomDbRolesResultPtr and GetCustomDbRolesResultPtrOutput values.
// You can construct a concrete instance of `GetCustomDbRolesResultPtrInput` via:
//
//          GetCustomDbRolesResultArgs{...}
//
//  or:
//
//          nil
type GetCustomDbRolesResultPtrInput interface {
	pulumi.Input

	ToGetCustomDbRolesResultPtrOutput() GetCustomDbRolesResultPtrOutput
	ToGetCustomDbRolesResultPtrOutputWithContext(context.Context) GetCustomDbRolesResultPtrOutput
}

type getCustomDbRolesResultPtrType GetCustomDbRolesResultArgs

func GetCustomDbRolesResultPtr(v *GetCustomDbRolesResultArgs) GetCustomDbRolesResultPtrInput {
	return (*getCustomDbRolesResultPtrType)(v)
}

func (*getCustomDbRolesResultPtrType) ElementType() reflect.Type {
	return reflect.TypeOf((**GetCustomDbRolesResult)(nil)).Elem()
}

func (i *getCustomDbRolesResultPtrType) ToGetCustomDbRolesResultPtrOutput() GetCustomDbRolesResultPtrOutput {
	return i.ToGetCustomDbRolesResultPtrOutputWithContext(context.Background())
}

func (i *getCustomDbRolesResultPtrType) ToGetCustomDbRolesResultPtrOutputWithContext(ctx context.Context) GetCustomDbRolesResultPtrOutput {
	return pulumi.ToOutputWithContext(ctx, i).(GetCustomDbRolesResultPtrOutput)
}

type GetCustomDbRolesResultOutput struct{ *pulumi.OutputState }

func (GetCustomDbRolesResultOutput) ElementType() reflect.Type {
	return reflect.TypeOf((*GetCustomDbRolesResult)(nil)).Elem()
}

func (o GetCustomDbRolesResultOutput) ToGetCustomDbRolesResultOutput() GetCustomDbRolesResultOutput {
	return o
}

func (o GetCustomDbRolesResultOutput) ToGetCustomDbRolesResultOutputWithContext(ctx context.Context) GetCustomDbRolesResultOutput {
	return o
}

func (o GetCustomDbRolesResultOutput) ToGetCustomDbRolesResultPtrOutput() GetCustomDbRolesResultPtrOutput {
	return o.ToGetCustomDbRolesResultPtrOutputWithContext(context.Background())
}

func (o GetCustomDbRolesResultOutput) ToGetCustomDbRolesResultPtrOutputWithContext(ctx context.Context) GetCustomDbRolesResultPtrOutput {
	return o.ApplyTWithContext(ctx, func(_ context.Context, v GetCustomDbRolesResult) *GetCustomDbRolesResult {
		return &v
	}).(GetCustomDbRolesResultPtrOutput)
}

type GetCustomDbRolesResultPtrOutput struct{ *pulumi.OutputState }

func (GetCustomDbRolesResultPtrOutput) ElementType() reflect.Type {
	return reflect.TypeOf((**GetCustomDbRolesResult)(nil)).Elem()
}

func (o GetCustomDbRolesResultPtrOutput) ToGetCustomDbRolesResultPtrOutput() GetCustomDbRolesResultPtrOutput {
	return o
}

func (o GetCustomDbRolesResultPtrOutput) ToGetCustomDbRolesResultPtrOutputWithContext(ctx context.Context) GetCustomDbRolesResultPtrOutput {
	return o
}

func (o GetCustomDbRolesResultPtrOutput) Elem() GetCustomDbRolesResultOutput {
	return o.ApplyT(func(v *GetCustomDbRolesResult) GetCustomDbRolesResult {
		if v != nil {
			return *v
		}
		var ret GetCustomDbRolesResult
		return ret
	}).(GetCustomDbRolesResultOutput)
}

func init() {
	pulumi.RegisterInputType(reflect.TypeOf((*GetCustomDbRolesResultInput)(nil)).Elem(), GetCustomDbRolesResultArgs{})
	pulumi.RegisterInputType(reflect.TypeOf((*GetCustomDbRolesResultPtrInput)(nil)).Elem(), GetCustomDbRolesResultArgs{})
	pulumi.RegisterOutputType(GetCustomDbRolesResultOutput{})
	pulumi.RegisterOutputType(GetCustomDbRolesResultPtrOutput{})
}
