github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/inspector/assessmentTemplate.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 inspector
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an Inspector Classic Assessment Template
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/inspector"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := inspector.NewAssessmentTemplate(ctx, "example", &inspector.AssessmentTemplateArgs{
    33  //				Name:      pulumi.String("example"),
    34  //				TargetArn: pulumi.Any(exampleAwsInspectorAssessmentTarget.Arn),
    35  //				Duration:  pulumi.Int(3600),
    36  //				RulesPackageArns: pulumi.StringArray{
    37  //					pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p"),
    38  //					pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc"),
    39  //					pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ"),
    40  //					pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD"),
    41  //				},
    42  //				EventSubscriptions: inspector.AssessmentTemplateEventSubscriptionArray{
    43  //					&inspector.AssessmentTemplateEventSubscriptionArgs{
    44  //						Event:    pulumi.String("ASSESSMENT_RUN_COMPLETED"),
    45  //						TopicArn: pulumi.Any(exampleAwsSnsTopic.Arn),
    46  //					},
    47  //				},
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ## Import
    60  //
    61  // Using `pulumi import`, import `aws_inspector_assessment_template` using the template assessment ARN. For example:
    62  //
    63  // ```sh
    64  // $ pulumi import aws:inspector/assessmentTemplate:AssessmentTemplate example arn:aws:inspector:us-west-2:123456789012:target/0-9IaAzhGR/template/0-WEcjR8CH
    65  // ```
    66  type AssessmentTemplate struct {
    67  	pulumi.CustomResourceState
    68  
    69  	// The template assessment ARN.
    70  	Arn pulumi.StringOutput `pulumi:"arn"`
    71  	// The duration of the inspector run.
    72  	Duration pulumi.IntOutput `pulumi:"duration"`
    73  	// A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
    74  	EventSubscriptions AssessmentTemplateEventSubscriptionArrayOutput `pulumi:"eventSubscriptions"`
    75  	// The name of the assessment template.
    76  	Name pulumi.StringOutput `pulumi:"name"`
    77  	// The rules to be used during the run.
    78  	RulesPackageArns pulumi.StringArrayOutput `pulumi:"rulesPackageArns"`
    79  	// Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    80  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    81  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    82  	//
    83  	// Deprecated: Please use `tags` instead.
    84  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    85  	// The assessment target ARN to attach the template to.
    86  	TargetArn pulumi.StringOutput `pulumi:"targetArn"`
    87  }
    88  
    89  // NewAssessmentTemplate registers a new resource with the given unique name, arguments, and options.
    90  func NewAssessmentTemplate(ctx *pulumi.Context,
    91  	name string, args *AssessmentTemplateArgs, opts ...pulumi.ResourceOption) (*AssessmentTemplate, error) {
    92  	if args == nil {
    93  		return nil, errors.New("missing one or more required arguments")
    94  	}
    95  
    96  	if args.Duration == nil {
    97  		return nil, errors.New("invalid value for required argument 'Duration'")
    98  	}
    99  	if args.RulesPackageArns == nil {
   100  		return nil, errors.New("invalid value for required argument 'RulesPackageArns'")
   101  	}
   102  	if args.TargetArn == nil {
   103  		return nil, errors.New("invalid value for required argument 'TargetArn'")
   104  	}
   105  	opts = internal.PkgResourceDefaultOpts(opts)
   106  	var resource AssessmentTemplate
   107  	err := ctx.RegisterResource("aws:inspector/assessmentTemplate:AssessmentTemplate", name, args, &resource, opts...)
   108  	if err != nil {
   109  		return nil, err
   110  	}
   111  	return &resource, nil
   112  }
   113  
   114  // GetAssessmentTemplate gets an existing AssessmentTemplate resource's state with the given name, ID, and optional
   115  // state properties that are used to uniquely qualify the lookup (nil if not required).
   116  func GetAssessmentTemplate(ctx *pulumi.Context,
   117  	name string, id pulumi.IDInput, state *AssessmentTemplateState, opts ...pulumi.ResourceOption) (*AssessmentTemplate, error) {
   118  	var resource AssessmentTemplate
   119  	err := ctx.ReadResource("aws:inspector/assessmentTemplate:AssessmentTemplate", name, id, state, &resource, opts...)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &resource, nil
   124  }
   125  
   126  // Input properties used for looking up and filtering AssessmentTemplate resources.
   127  type assessmentTemplateState struct {
   128  	// The template assessment ARN.
   129  	Arn *string `pulumi:"arn"`
   130  	// The duration of the inspector run.
   131  	Duration *int `pulumi:"duration"`
   132  	// A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
   133  	EventSubscriptions []AssessmentTemplateEventSubscription `pulumi:"eventSubscriptions"`
   134  	// The name of the assessment template.
   135  	Name *string `pulumi:"name"`
   136  	// The rules to be used during the run.
   137  	RulesPackageArns []string `pulumi:"rulesPackageArns"`
   138  	// Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   139  	Tags map[string]string `pulumi:"tags"`
   140  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   141  	//
   142  	// Deprecated: Please use `tags` instead.
   143  	TagsAll map[string]string `pulumi:"tagsAll"`
   144  	// The assessment target ARN to attach the template to.
   145  	TargetArn *string `pulumi:"targetArn"`
   146  }
   147  
   148  type AssessmentTemplateState struct {
   149  	// The template assessment ARN.
   150  	Arn pulumi.StringPtrInput
   151  	// The duration of the inspector run.
   152  	Duration pulumi.IntPtrInput
   153  	// A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
   154  	EventSubscriptions AssessmentTemplateEventSubscriptionArrayInput
   155  	// The name of the assessment template.
   156  	Name pulumi.StringPtrInput
   157  	// The rules to be used during the run.
   158  	RulesPackageArns pulumi.StringArrayInput
   159  	// Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   160  	Tags pulumi.StringMapInput
   161  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   162  	//
   163  	// Deprecated: Please use `tags` instead.
   164  	TagsAll pulumi.StringMapInput
   165  	// The assessment target ARN to attach the template to.
   166  	TargetArn pulumi.StringPtrInput
   167  }
   168  
   169  func (AssessmentTemplateState) ElementType() reflect.Type {
   170  	return reflect.TypeOf((*assessmentTemplateState)(nil)).Elem()
   171  }
   172  
   173  type assessmentTemplateArgs struct {
   174  	// The duration of the inspector run.
   175  	Duration int `pulumi:"duration"`
   176  	// A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
   177  	EventSubscriptions []AssessmentTemplateEventSubscription `pulumi:"eventSubscriptions"`
   178  	// The name of the assessment template.
   179  	Name *string `pulumi:"name"`
   180  	// The rules to be used during the run.
   181  	RulesPackageArns []string `pulumi:"rulesPackageArns"`
   182  	// Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   183  	Tags map[string]string `pulumi:"tags"`
   184  	// The assessment target ARN to attach the template to.
   185  	TargetArn string `pulumi:"targetArn"`
   186  }
   187  
   188  // The set of arguments for constructing a AssessmentTemplate resource.
   189  type AssessmentTemplateArgs struct {
   190  	// The duration of the inspector run.
   191  	Duration pulumi.IntInput
   192  	// A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
   193  	EventSubscriptions AssessmentTemplateEventSubscriptionArrayInput
   194  	// The name of the assessment template.
   195  	Name pulumi.StringPtrInput
   196  	// The rules to be used during the run.
   197  	RulesPackageArns pulumi.StringArrayInput
   198  	// Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   199  	Tags pulumi.StringMapInput
   200  	// The assessment target ARN to attach the template to.
   201  	TargetArn pulumi.StringInput
   202  }
   203  
   204  func (AssessmentTemplateArgs) ElementType() reflect.Type {
   205  	return reflect.TypeOf((*assessmentTemplateArgs)(nil)).Elem()
   206  }
   207  
   208  type AssessmentTemplateInput interface {
   209  	pulumi.Input
   210  
   211  	ToAssessmentTemplateOutput() AssessmentTemplateOutput
   212  	ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput
   213  }
   214  
   215  func (*AssessmentTemplate) ElementType() reflect.Type {
   216  	return reflect.TypeOf((**AssessmentTemplate)(nil)).Elem()
   217  }
   218  
   219  func (i *AssessmentTemplate) ToAssessmentTemplateOutput() AssessmentTemplateOutput {
   220  	return i.ToAssessmentTemplateOutputWithContext(context.Background())
   221  }
   222  
   223  func (i *AssessmentTemplate) ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput {
   224  	return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateOutput)
   225  }
   226  
   227  // AssessmentTemplateArrayInput is an input type that accepts AssessmentTemplateArray and AssessmentTemplateArrayOutput values.
   228  // You can construct a concrete instance of `AssessmentTemplateArrayInput` via:
   229  //
   230  //	AssessmentTemplateArray{ AssessmentTemplateArgs{...} }
   231  type AssessmentTemplateArrayInput interface {
   232  	pulumi.Input
   233  
   234  	ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput
   235  	ToAssessmentTemplateArrayOutputWithContext(context.Context) AssessmentTemplateArrayOutput
   236  }
   237  
   238  type AssessmentTemplateArray []AssessmentTemplateInput
   239  
   240  func (AssessmentTemplateArray) ElementType() reflect.Type {
   241  	return reflect.TypeOf((*[]*AssessmentTemplate)(nil)).Elem()
   242  }
   243  
   244  func (i AssessmentTemplateArray) ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput {
   245  	return i.ToAssessmentTemplateArrayOutputWithContext(context.Background())
   246  }
   247  
   248  func (i AssessmentTemplateArray) ToAssessmentTemplateArrayOutputWithContext(ctx context.Context) AssessmentTemplateArrayOutput {
   249  	return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateArrayOutput)
   250  }
   251  
   252  // AssessmentTemplateMapInput is an input type that accepts AssessmentTemplateMap and AssessmentTemplateMapOutput values.
   253  // You can construct a concrete instance of `AssessmentTemplateMapInput` via:
   254  //
   255  //	AssessmentTemplateMap{ "key": AssessmentTemplateArgs{...} }
   256  type AssessmentTemplateMapInput interface {
   257  	pulumi.Input
   258  
   259  	ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput
   260  	ToAssessmentTemplateMapOutputWithContext(context.Context) AssessmentTemplateMapOutput
   261  }
   262  
   263  type AssessmentTemplateMap map[string]AssessmentTemplateInput
   264  
   265  func (AssessmentTemplateMap) ElementType() reflect.Type {
   266  	return reflect.TypeOf((*map[string]*AssessmentTemplate)(nil)).Elem()
   267  }
   268  
   269  func (i AssessmentTemplateMap) ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput {
   270  	return i.ToAssessmentTemplateMapOutputWithContext(context.Background())
   271  }
   272  
   273  func (i AssessmentTemplateMap) ToAssessmentTemplateMapOutputWithContext(ctx context.Context) AssessmentTemplateMapOutput {
   274  	return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateMapOutput)
   275  }
   276  
   277  type AssessmentTemplateOutput struct{ *pulumi.OutputState }
   278  
   279  func (AssessmentTemplateOutput) ElementType() reflect.Type {
   280  	return reflect.TypeOf((**AssessmentTemplate)(nil)).Elem()
   281  }
   282  
   283  func (o AssessmentTemplateOutput) ToAssessmentTemplateOutput() AssessmentTemplateOutput {
   284  	return o
   285  }
   286  
   287  func (o AssessmentTemplateOutput) ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput {
   288  	return o
   289  }
   290  
   291  // The template assessment ARN.
   292  func (o AssessmentTemplateOutput) Arn() pulumi.StringOutput {
   293  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   294  }
   295  
   296  // The duration of the inspector run.
   297  func (o AssessmentTemplateOutput) Duration() pulumi.IntOutput {
   298  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.IntOutput { return v.Duration }).(pulumi.IntOutput)
   299  }
   300  
   301  // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details.
   302  func (o AssessmentTemplateOutput) EventSubscriptions() AssessmentTemplateEventSubscriptionArrayOutput {
   303  	return o.ApplyT(func(v *AssessmentTemplate) AssessmentTemplateEventSubscriptionArrayOutput {
   304  		return v.EventSubscriptions
   305  	}).(AssessmentTemplateEventSubscriptionArrayOutput)
   306  }
   307  
   308  // The name of the assessment template.
   309  func (o AssessmentTemplateOutput) Name() pulumi.StringOutput {
   310  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   311  }
   312  
   313  // The rules to be used during the run.
   314  func (o AssessmentTemplateOutput) RulesPackageArns() pulumi.StringArrayOutput {
   315  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringArrayOutput { return v.RulesPackageArns }).(pulumi.StringArrayOutput)
   316  }
   317  
   318  // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   319  func (o AssessmentTemplateOutput) Tags() pulumi.StringMapOutput {
   320  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   321  }
   322  
   323  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   324  //
   325  // Deprecated: Please use `tags` instead.
   326  func (o AssessmentTemplateOutput) TagsAll() pulumi.StringMapOutput {
   327  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   328  }
   329  
   330  // The assessment target ARN to attach the template to.
   331  func (o AssessmentTemplateOutput) TargetArn() pulumi.StringOutput {
   332  	return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.TargetArn }).(pulumi.StringOutput)
   333  }
   334  
   335  type AssessmentTemplateArrayOutput struct{ *pulumi.OutputState }
   336  
   337  func (AssessmentTemplateArrayOutput) ElementType() reflect.Type {
   338  	return reflect.TypeOf((*[]*AssessmentTemplate)(nil)).Elem()
   339  }
   340  
   341  func (o AssessmentTemplateArrayOutput) ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput {
   342  	return o
   343  }
   344  
   345  func (o AssessmentTemplateArrayOutput) ToAssessmentTemplateArrayOutputWithContext(ctx context.Context) AssessmentTemplateArrayOutput {
   346  	return o
   347  }
   348  
   349  func (o AssessmentTemplateArrayOutput) Index(i pulumi.IntInput) AssessmentTemplateOutput {
   350  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AssessmentTemplate {
   351  		return vs[0].([]*AssessmentTemplate)[vs[1].(int)]
   352  	}).(AssessmentTemplateOutput)
   353  }
   354  
   355  type AssessmentTemplateMapOutput struct{ *pulumi.OutputState }
   356  
   357  func (AssessmentTemplateMapOutput) ElementType() reflect.Type {
   358  	return reflect.TypeOf((*map[string]*AssessmentTemplate)(nil)).Elem()
   359  }
   360  
   361  func (o AssessmentTemplateMapOutput) ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput {
   362  	return o
   363  }
   364  
   365  func (o AssessmentTemplateMapOutput) ToAssessmentTemplateMapOutputWithContext(ctx context.Context) AssessmentTemplateMapOutput {
   366  	return o
   367  }
   368  
   369  func (o AssessmentTemplateMapOutput) MapIndex(k pulumi.StringInput) AssessmentTemplateOutput {
   370  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AssessmentTemplate {
   371  		return vs[0].(map[string]*AssessmentTemplate)[vs[1].(string)]
   372  	}).(AssessmentTemplateOutput)
   373  }
   374  
   375  func init() {
   376  	pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateInput)(nil)).Elem(), &AssessmentTemplate{})
   377  	pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateArrayInput)(nil)).Elem(), AssessmentTemplateArray{})
   378  	pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateMapInput)(nil)).Elem(), AssessmentTemplateMap{})
   379  	pulumi.RegisterOutputType(AssessmentTemplateOutput{})
   380  	pulumi.RegisterOutputType(AssessmentTemplateArrayOutput{})
   381  	pulumi.RegisterOutputType(AssessmentTemplateMapOutput{})
   382  }