github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cfg/organizationConformancePack.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 cfg
     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 a Config Organization Conformance Pack. More information can be found in the [Managing Conformance Packs Across all Accounts in Your Organization](https://docs.aws.amazon.com/config/latest/developerguide/conformance-pack-organization-apis.html) and [AWS Config Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) documentation. Example conformance pack templates may be found in the [AWS Config Rules Repository](https://github.com/awslabs/aws-config-rules/tree/master/aws-config-conformance-packs).
    15  //
    16  // > **NOTE:** This resource must be created in the Organization master account or a delegated administrator account, and the Organization must have all features enabled. Every Organization account except those configured in the `excludedAccounts` argument must have a Configuration Recorder with proper IAM permissions before the Organization Conformance Pack will successfully create or update. See also the `cfg.Recorder` resource.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Using Template Body
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cfg"
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/organizations"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			exampleOrganization, err := organizations.NewOrganization(ctx, "example", &organizations.OrganizationArgs{
    37  //				AwsServiceAccessPrincipals: pulumi.StringArray{
    38  //					pulumi.String("config-multiaccountsetup.amazonaws.com"),
    39  //				},
    40  //				FeatureSet: pulumi.String("ALL"),
    41  //			})
    42  //			if err != nil {
    43  //				return err
    44  //			}
    45  //			_, err = cfg.NewOrganizationConformancePack(ctx, "example", &cfg.OrganizationConformancePackArgs{
    46  //				Name: pulumi.String("example"),
    47  //				InputParameters: cfg.OrganizationConformancePackInputParameterArray{
    48  //					&cfg.OrganizationConformancePackInputParameterArgs{
    49  //						ParameterName:  pulumi.String("AccessKeysRotatedParameterMaxAccessKeyAge"),
    50  //						ParameterValue: pulumi.String("90"),
    51  //					},
    52  //				},
    53  //				TemplateBody: pulumi.String(`Parameters:
    54  //	  AccessKeysRotatedParameterMaxAccessKeyAge:
    55  //	    Type: String
    56  //
    57  // Resources:
    58  //
    59  //	IAMPasswordPolicy:
    60  //	  Properties:
    61  //	    ConfigRuleName: IAMPasswordPolicy
    62  //	    Source:
    63  //	      Owner: AWS
    64  //	      SourceIdentifier: IAM_PASSWORD_POLICY
    65  //	  Type: AWS::Config::ConfigRule
    66  //
    67  // `),
    68  //
    69  //			}, pulumi.DependsOn([]pulumi.Resource{
    70  //				exampleAwsConfigConfigurationRecorder,
    71  //				exampleOrganization,
    72  //			}))
    73  //			if err != nil {
    74  //				return err
    75  //			}
    76  //			return nil
    77  //		})
    78  //	}
    79  //
    80  // ```
    81  // <!--End PulumiCodeChooser -->
    82  //
    83  // ### Using Template S3 URI
    84  //
    85  // <!--Start PulumiCodeChooser -->
    86  // ```go
    87  // package main
    88  //
    89  // import (
    90  //
    91  //	"fmt"
    92  //
    93  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cfg"
    94  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/organizations"
    95  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    96  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    97  //
    98  // )
    99  //
   100  //	func main() {
   101  //		pulumi.Run(func(ctx *pulumi.Context) error {
   102  //			exampleOrganization, err := organizations.NewOrganization(ctx, "example", &organizations.OrganizationArgs{
   103  //				AwsServiceAccessPrincipals: pulumi.StringArray{
   104  //					pulumi.String("config-multiaccountsetup.amazonaws.com"),
   105  //				},
   106  //				FeatureSet: pulumi.String("ALL"),
   107  //			})
   108  //			if err != nil {
   109  //				return err
   110  //			}
   111  //			exampleBucketV2, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
   112  //				Bucket: pulumi.String("example"),
   113  //			})
   114  //			if err != nil {
   115  //				return err
   116  //			}
   117  //			exampleBucketObjectv2, err := s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
   118  //				Bucket: exampleBucketV2.ID(),
   119  //				Key:    pulumi.String("example-key"),
   120  //				Content: pulumi.String(`Resources:
   121  //	  IAMPasswordPolicy:
   122  //	    Properties:
   123  //	      ConfigRuleName: IAMPasswordPolicy
   124  //	      Source:
   125  //	        Owner: AWS
   126  //	        SourceIdentifier: IAM_PASSWORD_POLICY
   127  //	    Type: AWS::Config::ConfigRule
   128  //
   129  // `),
   130  //
   131  //			})
   132  //			if err != nil {
   133  //				return err
   134  //			}
   135  //			_, err = cfg.NewOrganizationConformancePack(ctx, "example", &cfg.OrganizationConformancePackArgs{
   136  //				Name: pulumi.String("example"),
   137  //				TemplateS3Uri: pulumi.All(exampleBucketV2.Bucket, exampleBucketObjectv2.Key).ApplyT(func(_args []interface{}) (string, error) {
   138  //					bucket := _args[0].(string)
   139  //					key := _args[1].(string)
   140  //					return fmt.Sprintf("s3://%v/%v", bucket, key), nil
   141  //				}).(pulumi.StringOutput),
   142  //			}, pulumi.DependsOn([]pulumi.Resource{
   143  //				exampleAwsConfigConfigurationRecorder,
   144  //				exampleOrganization,
   145  //			}))
   146  //			if err != nil {
   147  //				return err
   148  //			}
   149  //			return nil
   150  //		})
   151  //	}
   152  //
   153  // ```
   154  // <!--End PulumiCodeChooser -->
   155  //
   156  // ## Import
   157  //
   158  // Using `pulumi import`, import Config Organization Conformance Packs using the `name`. For example:
   159  //
   160  // ```sh
   161  // $ pulumi import aws:cfg/organizationConformancePack:OrganizationConformancePack example example
   162  // ```
   163  type OrganizationConformancePack struct {
   164  	pulumi.CustomResourceState
   165  
   166  	// Amazon Resource Name (ARN) of the organization conformance pack.
   167  	Arn pulumi.StringOutput `pulumi:"arn"`
   168  	// Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   169  	DeliveryS3Bucket pulumi.StringPtrOutput `pulumi:"deliveryS3Bucket"`
   170  	// The prefix for the Amazon S3 bucket. Maximum length of 1024.
   171  	DeliveryS3KeyPrefix pulumi.StringPtrOutput `pulumi:"deliveryS3KeyPrefix"`
   172  	// Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   173  	ExcludedAccounts pulumi.StringArrayOutput `pulumi:"excludedAccounts"`
   174  	// Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   175  	InputParameters OrganizationConformancePackInputParameterArrayOutput `pulumi:"inputParameters"`
   176  	// The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   177  	Name pulumi.StringOutput `pulumi:"name"`
   178  	// A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   179  	TemplateBody pulumi.StringPtrOutput `pulumi:"templateBody"`
   180  	// Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   181  	TemplateS3Uri pulumi.StringPtrOutput `pulumi:"templateS3Uri"`
   182  }
   183  
   184  // NewOrganizationConformancePack registers a new resource with the given unique name, arguments, and options.
   185  func NewOrganizationConformancePack(ctx *pulumi.Context,
   186  	name string, args *OrganizationConformancePackArgs, opts ...pulumi.ResourceOption) (*OrganizationConformancePack, error) {
   187  	if args == nil {
   188  		args = &OrganizationConformancePackArgs{}
   189  	}
   190  
   191  	opts = internal.PkgResourceDefaultOpts(opts)
   192  	var resource OrganizationConformancePack
   193  	err := ctx.RegisterResource("aws:cfg/organizationConformancePack:OrganizationConformancePack", name, args, &resource, opts...)
   194  	if err != nil {
   195  		return nil, err
   196  	}
   197  	return &resource, nil
   198  }
   199  
   200  // GetOrganizationConformancePack gets an existing OrganizationConformancePack resource's state with the given name, ID, and optional
   201  // state properties that are used to uniquely qualify the lookup (nil if not required).
   202  func GetOrganizationConformancePack(ctx *pulumi.Context,
   203  	name string, id pulumi.IDInput, state *OrganizationConformancePackState, opts ...pulumi.ResourceOption) (*OrganizationConformancePack, error) {
   204  	var resource OrganizationConformancePack
   205  	err := ctx.ReadResource("aws:cfg/organizationConformancePack:OrganizationConformancePack", name, id, state, &resource, opts...)
   206  	if err != nil {
   207  		return nil, err
   208  	}
   209  	return &resource, nil
   210  }
   211  
   212  // Input properties used for looking up and filtering OrganizationConformancePack resources.
   213  type organizationConformancePackState struct {
   214  	// Amazon Resource Name (ARN) of the organization conformance pack.
   215  	Arn *string `pulumi:"arn"`
   216  	// Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   217  	DeliveryS3Bucket *string `pulumi:"deliveryS3Bucket"`
   218  	// The prefix for the Amazon S3 bucket. Maximum length of 1024.
   219  	DeliveryS3KeyPrefix *string `pulumi:"deliveryS3KeyPrefix"`
   220  	// Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   221  	ExcludedAccounts []string `pulumi:"excludedAccounts"`
   222  	// Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   223  	InputParameters []OrganizationConformancePackInputParameter `pulumi:"inputParameters"`
   224  	// The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   225  	Name *string `pulumi:"name"`
   226  	// A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   227  	TemplateBody *string `pulumi:"templateBody"`
   228  	// Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   229  	TemplateS3Uri *string `pulumi:"templateS3Uri"`
   230  }
   231  
   232  type OrganizationConformancePackState struct {
   233  	// Amazon Resource Name (ARN) of the organization conformance pack.
   234  	Arn pulumi.StringPtrInput
   235  	// Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   236  	DeliveryS3Bucket pulumi.StringPtrInput
   237  	// The prefix for the Amazon S3 bucket. Maximum length of 1024.
   238  	DeliveryS3KeyPrefix pulumi.StringPtrInput
   239  	// Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   240  	ExcludedAccounts pulumi.StringArrayInput
   241  	// Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   242  	InputParameters OrganizationConformancePackInputParameterArrayInput
   243  	// The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   244  	Name pulumi.StringPtrInput
   245  	// A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   246  	TemplateBody pulumi.StringPtrInput
   247  	// Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   248  	TemplateS3Uri pulumi.StringPtrInput
   249  }
   250  
   251  func (OrganizationConformancePackState) ElementType() reflect.Type {
   252  	return reflect.TypeOf((*organizationConformancePackState)(nil)).Elem()
   253  }
   254  
   255  type organizationConformancePackArgs struct {
   256  	// Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   257  	DeliveryS3Bucket *string `pulumi:"deliveryS3Bucket"`
   258  	// The prefix for the Amazon S3 bucket. Maximum length of 1024.
   259  	DeliveryS3KeyPrefix *string `pulumi:"deliveryS3KeyPrefix"`
   260  	// Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   261  	ExcludedAccounts []string `pulumi:"excludedAccounts"`
   262  	// Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   263  	InputParameters []OrganizationConformancePackInputParameter `pulumi:"inputParameters"`
   264  	// The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   265  	Name *string `pulumi:"name"`
   266  	// A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   267  	TemplateBody *string `pulumi:"templateBody"`
   268  	// Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   269  	TemplateS3Uri *string `pulumi:"templateS3Uri"`
   270  }
   271  
   272  // The set of arguments for constructing a OrganizationConformancePack resource.
   273  type OrganizationConformancePackArgs struct {
   274  	// Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   275  	DeliveryS3Bucket pulumi.StringPtrInput
   276  	// The prefix for the Amazon S3 bucket. Maximum length of 1024.
   277  	DeliveryS3KeyPrefix pulumi.StringPtrInput
   278  	// Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   279  	ExcludedAccounts pulumi.StringArrayInput
   280  	// Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   281  	InputParameters OrganizationConformancePackInputParameterArrayInput
   282  	// The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   283  	Name pulumi.StringPtrInput
   284  	// A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   285  	TemplateBody pulumi.StringPtrInput
   286  	// Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   287  	TemplateS3Uri pulumi.StringPtrInput
   288  }
   289  
   290  func (OrganizationConformancePackArgs) ElementType() reflect.Type {
   291  	return reflect.TypeOf((*organizationConformancePackArgs)(nil)).Elem()
   292  }
   293  
   294  type OrganizationConformancePackInput interface {
   295  	pulumi.Input
   296  
   297  	ToOrganizationConformancePackOutput() OrganizationConformancePackOutput
   298  	ToOrganizationConformancePackOutputWithContext(ctx context.Context) OrganizationConformancePackOutput
   299  }
   300  
   301  func (*OrganizationConformancePack) ElementType() reflect.Type {
   302  	return reflect.TypeOf((**OrganizationConformancePack)(nil)).Elem()
   303  }
   304  
   305  func (i *OrganizationConformancePack) ToOrganizationConformancePackOutput() OrganizationConformancePackOutput {
   306  	return i.ToOrganizationConformancePackOutputWithContext(context.Background())
   307  }
   308  
   309  func (i *OrganizationConformancePack) ToOrganizationConformancePackOutputWithContext(ctx context.Context) OrganizationConformancePackOutput {
   310  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConformancePackOutput)
   311  }
   312  
   313  // OrganizationConformancePackArrayInput is an input type that accepts OrganizationConformancePackArray and OrganizationConformancePackArrayOutput values.
   314  // You can construct a concrete instance of `OrganizationConformancePackArrayInput` via:
   315  //
   316  //	OrganizationConformancePackArray{ OrganizationConformancePackArgs{...} }
   317  type OrganizationConformancePackArrayInput interface {
   318  	pulumi.Input
   319  
   320  	ToOrganizationConformancePackArrayOutput() OrganizationConformancePackArrayOutput
   321  	ToOrganizationConformancePackArrayOutputWithContext(context.Context) OrganizationConformancePackArrayOutput
   322  }
   323  
   324  type OrganizationConformancePackArray []OrganizationConformancePackInput
   325  
   326  func (OrganizationConformancePackArray) ElementType() reflect.Type {
   327  	return reflect.TypeOf((*[]*OrganizationConformancePack)(nil)).Elem()
   328  }
   329  
   330  func (i OrganizationConformancePackArray) ToOrganizationConformancePackArrayOutput() OrganizationConformancePackArrayOutput {
   331  	return i.ToOrganizationConformancePackArrayOutputWithContext(context.Background())
   332  }
   333  
   334  func (i OrganizationConformancePackArray) ToOrganizationConformancePackArrayOutputWithContext(ctx context.Context) OrganizationConformancePackArrayOutput {
   335  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConformancePackArrayOutput)
   336  }
   337  
   338  // OrganizationConformancePackMapInput is an input type that accepts OrganizationConformancePackMap and OrganizationConformancePackMapOutput values.
   339  // You can construct a concrete instance of `OrganizationConformancePackMapInput` via:
   340  //
   341  //	OrganizationConformancePackMap{ "key": OrganizationConformancePackArgs{...} }
   342  type OrganizationConformancePackMapInput interface {
   343  	pulumi.Input
   344  
   345  	ToOrganizationConformancePackMapOutput() OrganizationConformancePackMapOutput
   346  	ToOrganizationConformancePackMapOutputWithContext(context.Context) OrganizationConformancePackMapOutput
   347  }
   348  
   349  type OrganizationConformancePackMap map[string]OrganizationConformancePackInput
   350  
   351  func (OrganizationConformancePackMap) ElementType() reflect.Type {
   352  	return reflect.TypeOf((*map[string]*OrganizationConformancePack)(nil)).Elem()
   353  }
   354  
   355  func (i OrganizationConformancePackMap) ToOrganizationConformancePackMapOutput() OrganizationConformancePackMapOutput {
   356  	return i.ToOrganizationConformancePackMapOutputWithContext(context.Background())
   357  }
   358  
   359  func (i OrganizationConformancePackMap) ToOrganizationConformancePackMapOutputWithContext(ctx context.Context) OrganizationConformancePackMapOutput {
   360  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConformancePackMapOutput)
   361  }
   362  
   363  type OrganizationConformancePackOutput struct{ *pulumi.OutputState }
   364  
   365  func (OrganizationConformancePackOutput) ElementType() reflect.Type {
   366  	return reflect.TypeOf((**OrganizationConformancePack)(nil)).Elem()
   367  }
   368  
   369  func (o OrganizationConformancePackOutput) ToOrganizationConformancePackOutput() OrganizationConformancePackOutput {
   370  	return o
   371  }
   372  
   373  func (o OrganizationConformancePackOutput) ToOrganizationConformancePackOutputWithContext(ctx context.Context) OrganizationConformancePackOutput {
   374  	return o
   375  }
   376  
   377  // Amazon Resource Name (ARN) of the organization conformance pack.
   378  func (o OrganizationConformancePackOutput) Arn() pulumi.StringOutput {
   379  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   380  }
   381  
   382  // Amazon S3 bucket where AWS Config stores conformance pack templates. Delivery bucket must begin with `awsconfigconforms` prefix. Maximum length of 63.
   383  func (o OrganizationConformancePackOutput) DeliveryS3Bucket() pulumi.StringPtrOutput {
   384  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringPtrOutput { return v.DeliveryS3Bucket }).(pulumi.StringPtrOutput)
   385  }
   386  
   387  // The prefix for the Amazon S3 bucket. Maximum length of 1024.
   388  func (o OrganizationConformancePackOutput) DeliveryS3KeyPrefix() pulumi.StringPtrOutput {
   389  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringPtrOutput { return v.DeliveryS3KeyPrefix }).(pulumi.StringPtrOutput)
   390  }
   391  
   392  // Set of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack. Maximum of 1000 accounts.
   393  func (o OrganizationConformancePackOutput) ExcludedAccounts() pulumi.StringArrayOutput {
   394  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringArrayOutput { return v.ExcludedAccounts }).(pulumi.StringArrayOutput)
   395  }
   396  
   397  // Set of configuration blocks describing input parameters passed to the conformance pack template. Documented below. When configured, the parameters must also be included in the `templateBody` or in the template stored in Amazon S3 if using `templateS3Uri`.
   398  func (o OrganizationConformancePackOutput) InputParameters() OrganizationConformancePackInputParameterArrayOutput {
   399  	return o.ApplyT(func(v *OrganizationConformancePack) OrganizationConformancePackInputParameterArrayOutput {
   400  		return v.InputParameters
   401  	}).(OrganizationConformancePackInputParameterArrayOutput)
   402  }
   403  
   404  // The name of the organization conformance pack. Must begin with a letter and contain from 1 to 128 alphanumeric characters and hyphens.
   405  func (o OrganizationConformancePackOutput) Name() pulumi.StringOutput {
   406  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   407  }
   408  
   409  // A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument.
   410  func (o OrganizationConformancePackOutput) TemplateBody() pulumi.StringPtrOutput {
   411  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringPtrOutput { return v.TemplateBody }).(pulumi.StringPtrOutput)
   412  }
   413  
   414  // Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument.
   415  func (o OrganizationConformancePackOutput) TemplateS3Uri() pulumi.StringPtrOutput {
   416  	return o.ApplyT(func(v *OrganizationConformancePack) pulumi.StringPtrOutput { return v.TemplateS3Uri }).(pulumi.StringPtrOutput)
   417  }
   418  
   419  type OrganizationConformancePackArrayOutput struct{ *pulumi.OutputState }
   420  
   421  func (OrganizationConformancePackArrayOutput) ElementType() reflect.Type {
   422  	return reflect.TypeOf((*[]*OrganizationConformancePack)(nil)).Elem()
   423  }
   424  
   425  func (o OrganizationConformancePackArrayOutput) ToOrganizationConformancePackArrayOutput() OrganizationConformancePackArrayOutput {
   426  	return o
   427  }
   428  
   429  func (o OrganizationConformancePackArrayOutput) ToOrganizationConformancePackArrayOutputWithContext(ctx context.Context) OrganizationConformancePackArrayOutput {
   430  	return o
   431  }
   432  
   433  func (o OrganizationConformancePackArrayOutput) Index(i pulumi.IntInput) OrganizationConformancePackOutput {
   434  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrganizationConformancePack {
   435  		return vs[0].([]*OrganizationConformancePack)[vs[1].(int)]
   436  	}).(OrganizationConformancePackOutput)
   437  }
   438  
   439  type OrganizationConformancePackMapOutput struct{ *pulumi.OutputState }
   440  
   441  func (OrganizationConformancePackMapOutput) ElementType() reflect.Type {
   442  	return reflect.TypeOf((*map[string]*OrganizationConformancePack)(nil)).Elem()
   443  }
   444  
   445  func (o OrganizationConformancePackMapOutput) ToOrganizationConformancePackMapOutput() OrganizationConformancePackMapOutput {
   446  	return o
   447  }
   448  
   449  func (o OrganizationConformancePackMapOutput) ToOrganizationConformancePackMapOutputWithContext(ctx context.Context) OrganizationConformancePackMapOutput {
   450  	return o
   451  }
   452  
   453  func (o OrganizationConformancePackMapOutput) MapIndex(k pulumi.StringInput) OrganizationConformancePackOutput {
   454  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrganizationConformancePack {
   455  		return vs[0].(map[string]*OrganizationConformancePack)[vs[1].(string)]
   456  	}).(OrganizationConformancePackOutput)
   457  }
   458  
   459  func init() {
   460  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConformancePackInput)(nil)).Elem(), &OrganizationConformancePack{})
   461  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConformancePackArrayInput)(nil)).Elem(), OrganizationConformancePackArray{})
   462  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConformancePackMapInput)(nil)).Elem(), OrganizationConformancePackMap{})
   463  	pulumi.RegisterOutputType(OrganizationConformancePackOutput{})
   464  	pulumi.RegisterOutputType(OrganizationConformancePackArrayOutput{})
   465  	pulumi.RegisterOutputType(OrganizationConformancePackMapOutput{})
   466  }