github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ram/sharingWithOrganization.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package ram
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Manages Resource Access Manager (RAM) Resource Sharing with AWS Organizations. If you enable sharing with your organization, you can share resources without using invitations. Refer to the [AWS RAM user guide](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) for more details.
    15  //
    16  // > **NOTE:** Use this resource to manage resource sharing within your organization, **not** the `organizations.Organization` resource with `ram.amazonaws.com` configured in `awsServiceAccessPrincipals`.
    17  //
    18  // ## Example Usage
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ram"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			_, err := ram.NewSharingWithOrganization(ctx, "example", nil)
    34  //			if err != nil {
    35  //				return err
    36  //			}
    37  //			return nil
    38  //		})
    39  //	}
    40  //
    41  // ```
    42  // <!--End PulumiCodeChooser -->
    43  //
    44  // ## Import
    45  //
    46  // Using `pulumi import`, import the resource using the current AWS account ID. For example:
    47  //
    48  // ```sh
    49  // $ pulumi import aws:ram/sharingWithOrganization:SharingWithOrganization example 123456789012
    50  // ```
    51  type SharingWithOrganization struct {
    52  	pulumi.CustomResourceState
    53  }
    54  
    55  // NewSharingWithOrganization registers a new resource with the given unique name, arguments, and options.
    56  func NewSharingWithOrganization(ctx *pulumi.Context,
    57  	name string, args *SharingWithOrganizationArgs, opts ...pulumi.ResourceOption) (*SharingWithOrganization, error) {
    58  	if args == nil {
    59  		args = &SharingWithOrganizationArgs{}
    60  	}
    61  
    62  	opts = internal.PkgResourceDefaultOpts(opts)
    63  	var resource SharingWithOrganization
    64  	err := ctx.RegisterResource("aws:ram/sharingWithOrganization:SharingWithOrganization", name, args, &resource, opts...)
    65  	if err != nil {
    66  		return nil, err
    67  	}
    68  	return &resource, nil
    69  }
    70  
    71  // GetSharingWithOrganization gets an existing SharingWithOrganization resource's state with the given name, ID, and optional
    72  // state properties that are used to uniquely qualify the lookup (nil if not required).
    73  func GetSharingWithOrganization(ctx *pulumi.Context,
    74  	name string, id pulumi.IDInput, state *SharingWithOrganizationState, opts ...pulumi.ResourceOption) (*SharingWithOrganization, error) {
    75  	var resource SharingWithOrganization
    76  	err := ctx.ReadResource("aws:ram/sharingWithOrganization:SharingWithOrganization", name, id, state, &resource, opts...)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  	return &resource, nil
    81  }
    82  
    83  // Input properties used for looking up and filtering SharingWithOrganization resources.
    84  type sharingWithOrganizationState struct {
    85  }
    86  
    87  type SharingWithOrganizationState struct {
    88  }
    89  
    90  func (SharingWithOrganizationState) ElementType() reflect.Type {
    91  	return reflect.TypeOf((*sharingWithOrganizationState)(nil)).Elem()
    92  }
    93  
    94  type sharingWithOrganizationArgs struct {
    95  }
    96  
    97  // The set of arguments for constructing a SharingWithOrganization resource.
    98  type SharingWithOrganizationArgs struct {
    99  }
   100  
   101  func (SharingWithOrganizationArgs) ElementType() reflect.Type {
   102  	return reflect.TypeOf((*sharingWithOrganizationArgs)(nil)).Elem()
   103  }
   104  
   105  type SharingWithOrganizationInput interface {
   106  	pulumi.Input
   107  
   108  	ToSharingWithOrganizationOutput() SharingWithOrganizationOutput
   109  	ToSharingWithOrganizationOutputWithContext(ctx context.Context) SharingWithOrganizationOutput
   110  }
   111  
   112  func (*SharingWithOrganization) ElementType() reflect.Type {
   113  	return reflect.TypeOf((**SharingWithOrganization)(nil)).Elem()
   114  }
   115  
   116  func (i *SharingWithOrganization) ToSharingWithOrganizationOutput() SharingWithOrganizationOutput {
   117  	return i.ToSharingWithOrganizationOutputWithContext(context.Background())
   118  }
   119  
   120  func (i *SharingWithOrganization) ToSharingWithOrganizationOutputWithContext(ctx context.Context) SharingWithOrganizationOutput {
   121  	return pulumi.ToOutputWithContext(ctx, i).(SharingWithOrganizationOutput)
   122  }
   123  
   124  // SharingWithOrganizationArrayInput is an input type that accepts SharingWithOrganizationArray and SharingWithOrganizationArrayOutput values.
   125  // You can construct a concrete instance of `SharingWithOrganizationArrayInput` via:
   126  //
   127  //	SharingWithOrganizationArray{ SharingWithOrganizationArgs{...} }
   128  type SharingWithOrganizationArrayInput interface {
   129  	pulumi.Input
   130  
   131  	ToSharingWithOrganizationArrayOutput() SharingWithOrganizationArrayOutput
   132  	ToSharingWithOrganizationArrayOutputWithContext(context.Context) SharingWithOrganizationArrayOutput
   133  }
   134  
   135  type SharingWithOrganizationArray []SharingWithOrganizationInput
   136  
   137  func (SharingWithOrganizationArray) ElementType() reflect.Type {
   138  	return reflect.TypeOf((*[]*SharingWithOrganization)(nil)).Elem()
   139  }
   140  
   141  func (i SharingWithOrganizationArray) ToSharingWithOrganizationArrayOutput() SharingWithOrganizationArrayOutput {
   142  	return i.ToSharingWithOrganizationArrayOutputWithContext(context.Background())
   143  }
   144  
   145  func (i SharingWithOrganizationArray) ToSharingWithOrganizationArrayOutputWithContext(ctx context.Context) SharingWithOrganizationArrayOutput {
   146  	return pulumi.ToOutputWithContext(ctx, i).(SharingWithOrganizationArrayOutput)
   147  }
   148  
   149  // SharingWithOrganizationMapInput is an input type that accepts SharingWithOrganizationMap and SharingWithOrganizationMapOutput values.
   150  // You can construct a concrete instance of `SharingWithOrganizationMapInput` via:
   151  //
   152  //	SharingWithOrganizationMap{ "key": SharingWithOrganizationArgs{...} }
   153  type SharingWithOrganizationMapInput interface {
   154  	pulumi.Input
   155  
   156  	ToSharingWithOrganizationMapOutput() SharingWithOrganizationMapOutput
   157  	ToSharingWithOrganizationMapOutputWithContext(context.Context) SharingWithOrganizationMapOutput
   158  }
   159  
   160  type SharingWithOrganizationMap map[string]SharingWithOrganizationInput
   161  
   162  func (SharingWithOrganizationMap) ElementType() reflect.Type {
   163  	return reflect.TypeOf((*map[string]*SharingWithOrganization)(nil)).Elem()
   164  }
   165  
   166  func (i SharingWithOrganizationMap) ToSharingWithOrganizationMapOutput() SharingWithOrganizationMapOutput {
   167  	return i.ToSharingWithOrganizationMapOutputWithContext(context.Background())
   168  }
   169  
   170  func (i SharingWithOrganizationMap) ToSharingWithOrganizationMapOutputWithContext(ctx context.Context) SharingWithOrganizationMapOutput {
   171  	return pulumi.ToOutputWithContext(ctx, i).(SharingWithOrganizationMapOutput)
   172  }
   173  
   174  type SharingWithOrganizationOutput struct{ *pulumi.OutputState }
   175  
   176  func (SharingWithOrganizationOutput) ElementType() reflect.Type {
   177  	return reflect.TypeOf((**SharingWithOrganization)(nil)).Elem()
   178  }
   179  
   180  func (o SharingWithOrganizationOutput) ToSharingWithOrganizationOutput() SharingWithOrganizationOutput {
   181  	return o
   182  }
   183  
   184  func (o SharingWithOrganizationOutput) ToSharingWithOrganizationOutputWithContext(ctx context.Context) SharingWithOrganizationOutput {
   185  	return o
   186  }
   187  
   188  type SharingWithOrganizationArrayOutput struct{ *pulumi.OutputState }
   189  
   190  func (SharingWithOrganizationArrayOutput) ElementType() reflect.Type {
   191  	return reflect.TypeOf((*[]*SharingWithOrganization)(nil)).Elem()
   192  }
   193  
   194  func (o SharingWithOrganizationArrayOutput) ToSharingWithOrganizationArrayOutput() SharingWithOrganizationArrayOutput {
   195  	return o
   196  }
   197  
   198  func (o SharingWithOrganizationArrayOutput) ToSharingWithOrganizationArrayOutputWithContext(ctx context.Context) SharingWithOrganizationArrayOutput {
   199  	return o
   200  }
   201  
   202  func (o SharingWithOrganizationArrayOutput) Index(i pulumi.IntInput) SharingWithOrganizationOutput {
   203  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SharingWithOrganization {
   204  		return vs[0].([]*SharingWithOrganization)[vs[1].(int)]
   205  	}).(SharingWithOrganizationOutput)
   206  }
   207  
   208  type SharingWithOrganizationMapOutput struct{ *pulumi.OutputState }
   209  
   210  func (SharingWithOrganizationMapOutput) ElementType() reflect.Type {
   211  	return reflect.TypeOf((*map[string]*SharingWithOrganization)(nil)).Elem()
   212  }
   213  
   214  func (o SharingWithOrganizationMapOutput) ToSharingWithOrganizationMapOutput() SharingWithOrganizationMapOutput {
   215  	return o
   216  }
   217  
   218  func (o SharingWithOrganizationMapOutput) ToSharingWithOrganizationMapOutputWithContext(ctx context.Context) SharingWithOrganizationMapOutput {
   219  	return o
   220  }
   221  
   222  func (o SharingWithOrganizationMapOutput) MapIndex(k pulumi.StringInput) SharingWithOrganizationOutput {
   223  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SharingWithOrganization {
   224  		return vs[0].(map[string]*SharingWithOrganization)[vs[1].(string)]
   225  	}).(SharingWithOrganizationOutput)
   226  }
   227  
   228  func init() {
   229  	pulumi.RegisterInputType(reflect.TypeOf((*SharingWithOrganizationInput)(nil)).Elem(), &SharingWithOrganization{})
   230  	pulumi.RegisterInputType(reflect.TypeOf((*SharingWithOrganizationArrayInput)(nil)).Elem(), SharingWithOrganizationArray{})
   231  	pulumi.RegisterInputType(reflect.TypeOf((*SharingWithOrganizationMapInput)(nil)).Elem(), SharingWithOrganizationMap{})
   232  	pulumi.RegisterOutputType(SharingWithOrganizationOutput{})
   233  	pulumi.RegisterOutputType(SharingWithOrganizationArrayOutput{})
   234  	pulumi.RegisterOutputType(SharingWithOrganizationMapOutput{})
   235  }