diff --git a/builtin/providers/aws/config.go b/builtin/providers/aws/config.go index d9631fcc39..33c9d2cae7 100644 --- a/builtin/providers/aws/config.go +++ b/builtin/providers/aws/config.go @@ -42,6 +42,7 @@ import ( "github.com/aws/aws-sdk-go/service/firehose" "github.com/aws/aws-sdk-go/service/glacier" "github.com/aws/aws-sdk-go/service/iam" + "github.com/aws/aws-sdk-go/service/inspector" "github.com/aws/aws-sdk-go/service/kinesis" "github.com/aws/aws-sdk-go/service/kms" "github.com/aws/aws-sdk-go/service/lambda" @@ -133,6 +134,7 @@ type AWSClient struct { kinesisconn *kinesis.Kinesis kmsconn *kms.KMS firehoseconn *firehose.Firehose + inspectorconn *inspector.Inspector elasticacheconn *elasticache.ElastiCache elasticbeanstalkconn *elasticbeanstalk.ElasticBeanstalk elastictranscoderconn *elastictranscoder.ElasticTranscoder @@ -282,6 +284,7 @@ func (c *Config) Client() (interface{}, error) { client.emrconn = emr.New(sess) client.esconn = elasticsearch.New(sess) client.firehoseconn = firehose.New(sess) + client.inspectorconn = inspector.New(sess) client.glacierconn = glacier.New(sess) client.kinesisconn = kinesis.New(kinesisSess) client.kmsconn = kms.New(sess) diff --git a/builtin/providers/aws/provider.go b/builtin/providers/aws/provider.go index 58a1b3687a..08a85d3fd7 100644 --- a/builtin/providers/aws/provider.go +++ b/builtin/providers/aws/provider.go @@ -280,6 +280,9 @@ func Provider() terraform.ResourceProvider { "aws_iam_user_ssh_key": resourceAwsIamUserSshKey(), "aws_iam_user": resourceAwsIamUser(), "aws_iam_user_login_profile": resourceAwsIamUserLoginProfile(), + "aws_inspector_assessment_target": resourceAWSInspectorAssessmentTarget(), + "aws_inspector_assessment_template": resourceAWSInspectorAssessmentTemplate(), + "aws_inspector_resource_group": resourceAWSInspectorResourceGroup(), "aws_instance": resourceAwsInstance(), "aws_internet_gateway": resourceAwsInternetGateway(), "aws_key_pair": resourceAwsKeyPair(), diff --git a/builtin/providers/aws/resource_aws_inspector_assessment_target.go b/builtin/providers/aws/resource_aws_inspector_assessment_target.go new file mode 100644 index 0000000000..8b5db9ae43 --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_assessment_target.go @@ -0,0 +1,131 @@ +package aws + +import ( + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAWSInspectorAssessmentTarget() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsInspectorAssessmentTargetCreate, + Read: resourceAwsInspectorAssessmentTargetRead, + Update: resourceAwsInspectorAssessmentTargetUpdate, + Delete: resourceAwsInspectorAssessmentTargetDelete, + + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + ForceNew: true, + Required: true, + }, + "arn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + }, + "resource_group_arn": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + }, + } +} + +func resourceAwsInspectorAssessmentTargetCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + targetName := d.Get("name").(string) + resourceGroupArn := d.Get("resource_group_arn").(string) + + resp, err := conn.CreateAssessmentTarget(&inspector.CreateAssessmentTargetInput{ + AssessmentTargetName: aws.String(targetName), + ResourceGroupArn: aws.String(resourceGroupArn), + }) + if err != nil { + return err + } + log.Printf("[DEBUG] Inspector Assessment %s created", *resp.AssessmentTargetArn) + + d.Set("arn", resp.AssessmentTargetArn) + d.SetId(*resp.AssessmentTargetArn) + + return resourceAwsInspectorAssessmentTargetRead(d, meta) +} + +func resourceAwsInspectorAssessmentTargetRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + resp, err := conn.DescribeAssessmentTargets(&inspector.DescribeAssessmentTargetsInput{ + AssessmentTargetArns: []*string{ + aws.String(d.Id()), + }, + }) + + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "InvalidInputException" { + return nil + } else { + log.Printf("[ERROR] Error finding Inspector Assessment Target: %s", err) + return err + } + } + + if resp.AssessmentTargets != nil && len(resp.AssessmentTargets) > 0 { + d.Set("name", resp.AssessmentTargets[0].Name) + } + + return nil +} + +func resourceAwsInspectorAssessmentTargetUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + input := inspector.UpdateAssessmentTargetInput{ + AssessmentTargetArn: aws.String(d.Id()), + } + + if d.HasChange("name") { + _, n := d.GetChange("name") + input.AssessmentTargetName = aws.String(n.(string)) + } + + if d.HasChange("resource_group_arn") { + _, n := d.GetChange("resource_group_arn") + input.AssessmentTargetName = aws.String(n.(string)) + } + + _, err := conn.UpdateAssessmentTarget(&input) + if err != nil { + return err + } + + log.Println("[DEBUG] Inspector Assessment Target updated") + + return resourceAwsInspectorAssessmentTargetRead(d, meta) +} + +func resourceAwsInspectorAssessmentTargetDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + return resource.Retry(60*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteAssessmentTarget(&inspector.DeleteAssessmentTargetInput{ + AssessmentTargetArn: aws.String(d.Id()), + }) + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "AssessmentRunInProgressException" { + log.Printf("[ERROR] Assement Run in progress: %s", err) + return resource.RetryableError(err) + } else { + log.Printf("[ERROR] Error deleting Assement Target: %s", err) + return resource.NonRetryableError(err) + } + } + return nil + }) + +} diff --git a/builtin/providers/aws/resource_aws_inspector_assessment_target_test.go b/builtin/providers/aws/resource_aws_inspector_assessment_target_test.go new file mode 100644 index 0000000000..a8eaba7ac3 --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_assessment_target_test.go @@ -0,0 +1,101 @@ +package aws + +import ( + "fmt" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" +) + +func TestAccAWSInspectorTarget_basic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSInspectorTargetAssessmentDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSInspectorTargetAssessment, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorTargetExists("aws_inspector_assessment_target.foo"), + ), + }, + resource.TestStep{ + Config: testAccCheckAWSInspectorTargetAssessmentModified, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorTargetExists("aws_inspector_assessment_target.foo"), + ), + }, + }, + }) +} + +func testAccCheckAWSInspectorTargetAssessmentDestroy(s *terraform.State) error { + conn := testAccProvider.Meta().(*AWSClient).inspectorconn + + for _, rs := range s.RootModule().Resources { + if rs.Type != "aws_inspector_assessment_target" { + continue + } + + resp, err := conn.DescribeAssessmentTargets(&inspector.DescribeAssessmentTargetsInput{ + AssessmentTargetArns: []*string{ + aws.String(rs.Primary.ID), + }, + }) + + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "InvalidInputException" { + return nil + } else { + return fmt.Errorf("Error finding Inspector Assessment Target: %s", err) + } + } + + if len(resp.AssessmentTargets) > 0 { + return fmt.Errorf("Found Target, expected none: %s", resp) + } + } + + return nil +} + +func testAccCheckAWSInspectorTargetExists(name string) resource.TestCheckFunc { + return func(s *terraform.State) error { + _, ok := s.RootModule().Resources[name] + if !ok { + return fmt.Errorf("Not found: %s", name) + } + + return nil + } +} + +var testAccAWSInspectorTargetAssessment = ` + +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "bar" + } +} + +resource "aws_inspector_assessment_target" "foo" { + name = "foo" + resource_group_arn = "${aws_inspector_resource_group.foo.arn}" +}` + +var testAccCheckAWSInspectorTargetAssessmentModified = ` + +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "bar" + } +} + +resource "aws_inspector_assessment_target" "foo" { + name = "bar" + resource_group_arn = "${aws_inspector_resource_group.foo.arn}" +}` diff --git a/builtin/providers/aws/resource_aws_inspector_assessment_template.go b/builtin/providers/aws/resource_aws_inspector_assessment_template.go new file mode 100644 index 0000000000..4856a000c1 --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_assessment_template.go @@ -0,0 +1,121 @@ +package aws + +import ( + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAWSInspectorAssessmentTemplate() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsInspectorAssessmentTemplateCreate, + Read: resourceAwsInspectorAssessmentTemplateRead, + Delete: resourceAwsInspectorAssessmentTemplateDelete, + + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "target_arn": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "arn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + ForceNew: true, + }, + "duration": &schema.Schema{ + Type: schema.TypeInt, + Required: true, + ForceNew: true, + }, + "rules_package_arns": &schema.Schema{ + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + Required: true, + ForceNew: true, + }, + }, + } +} + +func resourceAwsInspectorAssessmentTemplateCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + rules := []*string{} + if attr := d.Get("rules_package_arns").(*schema.Set); attr.Len() > 0 { + rules = expandStringList(attr.List()) + } + + targetArn := d.Get("target_arn").(string) + templateName := d.Get("name").(string) + duration := int64(d.Get("duration").(int)) + + resp, err := conn.CreateAssessmentTemplate(&inspector.CreateAssessmentTemplateInput{ + AssessmentTargetArn: aws.String(targetArn), + AssessmentTemplateName: aws.String(templateName), + DurationInSeconds: aws.Int64(duration), + RulesPackageArns: rules, + }) + if err != nil { + return err + } + log.Printf("[DEBUG] Inspector Assessment Template %s created", *resp.AssessmentTemplateArn) + + d.Set("arn", resp.AssessmentTemplateArn) + + d.SetId(*resp.AssessmentTemplateArn) + + return resourceAwsInspectorAssessmentTemplateRead(d, meta) +} + +func resourceAwsInspectorAssessmentTemplateRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + resp, err := conn.DescribeAssessmentTemplates(&inspector.DescribeAssessmentTemplatesInput{ + AssessmentTemplateArns: []*string{ + aws.String(d.Id()), + }, + }, + ) + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "InvalidInputException" { + return nil + } else { + log.Printf("[ERROR] Error finding Inspector Assessment Template: %s", err) + return err + } + } + + if resp.AssessmentTemplates != nil && len(resp.AssessmentTemplates) > 0 { + d.Set("name", resp.AssessmentTemplates[0].Name) + } + return nil +} + +func resourceAwsInspectorAssessmentTemplateDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + _, err := conn.DeleteAssessmentTemplate(&inspector.DeleteAssessmentTemplateInput{ + AssessmentTemplateArn: aws.String(d.Id()), + }) + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "AssessmentRunInProgressException" { + log.Printf("[ERROR] Assement Run in progress: %s", err) + return err + } else { + log.Printf("[ERROR] Error deleting Assement Template: %s", err) + return err + } + } + + return nil +} diff --git a/builtin/providers/aws/resource_aws_inspector_assessment_template_test.go b/builtin/providers/aws/resource_aws_inspector_assessment_template_test.go new file mode 100644 index 0000000000..3b3da63b40 --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_assessment_template_test.go @@ -0,0 +1,125 @@ +package aws + +import ( + "fmt" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" +) + +func TestAccAWSInspectorTemplate_basic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSInspectorTemplateDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSInspectorTemplateAssessment, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorTemplateExists("aws_inspector_assessment_template.foo"), + ), + }, + resource.TestStep{ + Config: testAccCheckAWSInspectorTemplatetModified, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorTargetExists("aws_inspector_assessment_template.foo"), + ), + }, + }, + }) +} + +func testAccCheckAWSInspectorTemplateDestroy(s *terraform.State) error { + conn := testAccProvider.Meta().(*AWSClient).inspectorconn + + for _, rs := range s.RootModule().Resources { + if rs.Type != "aws_inspector_assessment_template" { + continue + } + + resp, err := conn.DescribeAssessmentTemplates(&inspector.DescribeAssessmentTemplatesInput{ + AssessmentTemplateArns: []*string{ + aws.String(rs.Primary.ID), + }, + }) + + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "InvalidInputException" { + return nil + } else { + return fmt.Errorf("Error finding Inspector Assessment Template: %s", err) + } + } + + if len(resp.AssessmentTemplates) > 0 { + return fmt.Errorf("Found Template, expected none: %s", resp) + } + } + + return nil +} + +func testAccCheckAWSInspectorTemplateExists(name string) resource.TestCheckFunc { + return func(s *terraform.State) error { + _, ok := s.RootModule().Resources[name] + if !ok { + return fmt.Errorf("Not found: %s", name) + } + + return nil + } +} + +var testAccAWSInspectorTemplateAssessment = ` +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "bar" + } +} + +resource "aws_inspector_assessment_target" "foo" { + name = "foo" + resource_group_arn = "${aws_inspector_resource_group.foo.arn}" +} + +resource "aws_inspector_assessment_template" "foo" { + name = "foo template" + target_arn = "${aws_inspector_assessment_target.foo.arn}" + duration = 3600 + + rules_package_arns = [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD", + ] +}` + +var testAccCheckAWSInspectorTemplatetModified = ` +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "bar" + } +} + +resource "aws_inspector_assessment_target" "foo" { + name = "foo" + resource_group_arn = "${aws_inspector_resource_group.foo.arn}" +} + +resource "aws_inspector_assessment_template" "foo" { + name = "bar template" + target_arn = "${aws_inspector_assessment_target.foo.arn}" + duration = 3600 + + rules_package_arns = [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD", + ] +}` diff --git a/builtin/providers/aws/resource_aws_inspector_resource_group.go b/builtin/providers/aws/resource_aws_inspector_resource_group.go new file mode 100644 index 0000000000..55f56696ce --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_resource_group.go @@ -0,0 +1,76 @@ +package aws + +import ( + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAWSInspectorResourceGroup() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsInspectorResourceGroupCreate, + Read: resourceAwsInspectorResourceGroupRead, + Delete: resourceAwsInspectorResourceGroupDelete, + + Schema: map[string]*schema.Schema{ + "tags": &schema.Schema{ + ForceNew: true, + Type: schema.TypeMap, + Required: true, + }, + "arn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsInspectorResourceGroupCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + resp, err := conn.CreateResourceGroup(&inspector.CreateResourceGroupInput{ + ResourceGroupTags: tagsFromMapInspector(d.Get("tags").(map[string]interface{})), + }) + + if err != nil { + return err + } + + d.Set("arn", *resp.ResourceGroupArn) + + d.SetId(*resp.ResourceGroupArn) + + return resourceAwsInspectorResourceGroupRead(d, meta) +} + +func resourceAwsInspectorResourceGroupRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + _, err := conn.DescribeResourceGroups(&inspector.DescribeResourceGroupsInput{ + ResourceGroupArns: []*string{ + aws.String(d.Id()), + }, + }) + + if err != nil { + if inspectorerr, ok := err.(awserr.Error); ok && inspectorerr.Code() == "InvalidInputException" { + return nil + } else { + log.Printf("[ERROR] Error finding Inspector resource group: %s", err) + return err + } + } + + return nil +} + +func resourceAwsInspectorResourceGroupDelete(d *schema.ResourceData, meta interface{}) error { + d.Set("arn", "") + d.SetId("") + + return nil +} diff --git a/builtin/providers/aws/resource_aws_inspector_resource_group_test.go b/builtin/providers/aws/resource_aws_inspector_resource_group_test.go new file mode 100644 index 0000000000..0024cccfeb --- /dev/null +++ b/builtin/providers/aws/resource_aws_inspector_resource_group_test.go @@ -0,0 +1,55 @@ +package aws + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" +) + +func TestAccAWSInspectorResourceGroup_basic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSInspectorResourceGroup, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorResourceGroupExists("aws_inspector_resource_group.foo"), + ), + }, + resource.TestStep{ + Config: testAccCheckAWSInspectorResourceGroupModified, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSInspectorTargetExists("aws_inspector_resource_group.foo"), + ), + }, + }, + }) +} + +func testAccCheckAWSInspectorResourceGroupExists(name string) resource.TestCheckFunc { + return func(s *terraform.State) error { + _, ok := s.RootModule().Resources[name] + if !ok { + return fmt.Errorf("Not found: %s", name) + } + + return nil + } +} + +var testAccAWSInspectorResourceGroup = ` +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "foo" + } +}` + +var testAccCheckAWSInspectorResourceGroupModified = ` +resource "aws_inspector_resource_group" "foo" { + tags { + Name = "bar" + } +}` diff --git a/builtin/providers/aws/structure.go b/builtin/providers/aws/structure.go index 1769da8b13..b44f3eb407 100644 --- a/builtin/providers/aws/structure.go +++ b/builtin/providers/aws/structure.go @@ -1649,3 +1649,11 @@ func normalizeJsonString(jsonString interface{}) (string, error) { bytes, _ := json.Marshal(j) return string(bytes[:]), nil } + +func flattenInspectorTags(cfTags []*cloudformation.Tag) map[string]string { + tags := make(map[string]string, len(cfTags)) + for _, t := range cfTags { + tags[*t.Key] = *t.Value + } + return tags +} diff --git a/builtin/providers/aws/tagsInspector.go b/builtin/providers/aws/tagsInspector.go new file mode 100644 index 0000000000..f846319f94 --- /dev/null +++ b/builtin/providers/aws/tagsInspector.go @@ -0,0 +1,74 @@ +package aws + +import ( + "log" + "regexp" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/inspector" +) + +// diffTags takes our tags locally and the ones remotely and returns +// the set of tags that must be created, and the set of tags that must +// be destroyed. +func diffTagsInspector(oldTags, newTags []*inspector.ResourceGroupTag) ([]*inspector.ResourceGroupTag, []*inspector.ResourceGroupTag) { + // First, we're creating everything we have + create := make(map[string]interface{}) + for _, t := range newTags { + create[*t.Key] = *t.Value + } + + // Build the list of what to remove + var remove []*inspector.ResourceGroupTag + for _, t := range oldTags { + old, ok := create[*t.Key] + if !ok || old != *t.Value { + // Delete it! + remove = append(remove, t) + } + } + + return tagsFromMapInspector(create), remove +} + +// tagsFromMap returns the tags for the given map of data. +func tagsFromMapInspector(m map[string]interface{}) []*inspector.ResourceGroupTag { + var result []*inspector.ResourceGroupTag + for k, v := range m { + t := &inspector.ResourceGroupTag{ + Key: aws.String(k), + Value: aws.String(v.(string)), + } + if !tagIgnoredInspector(t) { + result = append(result, t) + } + } + + return result +} + +// tagsToMap turns the list of tags into a map. +func tagsToMapInspector(ts []*inspector.ResourceGroupTag) map[string]string { + result := make(map[string]string) + for _, t := range ts { + if !tagIgnoredInspector(t) { + result[*t.Key] = *t.Value + } + } + + return result +} + +// compare a tag against a list of strings and checks if it should +// be ignored or not +func tagIgnoredInspector(t *inspector.ResourceGroupTag) bool { + filter := []string{"^aws:*"} + for _, v := range filter { + log.Printf("[DEBUG] Matching %v with %v\n", v, *t.Key) + if r, _ := regexp.MatchString(v, *t.Key); r == true { + log.Printf("[DEBUG] Found AWS specific tag %s (val: %s), ignoring.\n", *t.Key, *t.Value) + return true + } + } + return false +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go b/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go new file mode 100644 index 0000000000..8c79823735 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go @@ -0,0 +1,7530 @@ +// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. + +// Package inspector provides a client for Amazon Inspector. +package inspector + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +const opAddAttributesToFindings = "AddAttributesToFindings" + +// AddAttributesToFindingsRequest generates a "aws/request.Request" representing the +// client's request for the AddAttributesToFindings operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See AddAttributesToFindings for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the AddAttributesToFindings method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the AddAttributesToFindingsRequest method. +// req, resp := client.AddAttributesToFindingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindings +func (c *Inspector) AddAttributesToFindingsRequest(input *AddAttributesToFindingsInput) (req *request.Request, output *AddAttributesToFindingsOutput) { + op := &request.Operation{ + Name: opAddAttributesToFindings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddAttributesToFindingsInput{} + } + + output = &AddAttributesToFindingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddAttributesToFindings API operation for Amazon Inspector. +// +// Assigns attributes (key and value pairs) to the findings that are specified +// by the ARNs of the findings. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation AddAttributesToFindings for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindings +func (c *Inspector) AddAttributesToFindings(input *AddAttributesToFindingsInput) (*AddAttributesToFindingsOutput, error) { + req, out := c.AddAttributesToFindingsRequest(input) + err := req.Send() + return out, err +} + +const opCreateAssessmentTarget = "CreateAssessmentTarget" + +// CreateAssessmentTargetRequest generates a "aws/request.Request" representing the +// client's request for the CreateAssessmentTarget operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See CreateAssessmentTarget for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the CreateAssessmentTarget method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the CreateAssessmentTargetRequest method. +// req, resp := client.CreateAssessmentTargetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTarget +func (c *Inspector) CreateAssessmentTargetRequest(input *CreateAssessmentTargetInput) (req *request.Request, output *CreateAssessmentTargetOutput) { + op := &request.Operation{ + Name: opCreateAssessmentTarget, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateAssessmentTargetInput{} + } + + output = &CreateAssessmentTargetOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAssessmentTarget API operation for Amazon Inspector. +// +// Creates a new assessment target using the ARN of the resource group that +// is generated by CreateResourceGroup. You can create up to 50 assessment targets +// per AWS account. You can run up to 500 concurrent agents per AWS account. +// For more information, see Amazon Inspector Assessment Targets (http://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation CreateAssessmentTarget for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current AWS account limits. The error code describes the limit exceeded. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTarget +func (c *Inspector) CreateAssessmentTarget(input *CreateAssessmentTargetInput) (*CreateAssessmentTargetOutput, error) { + req, out := c.CreateAssessmentTargetRequest(input) + err := req.Send() + return out, err +} + +const opCreateAssessmentTemplate = "CreateAssessmentTemplate" + +// CreateAssessmentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the CreateAssessmentTemplate operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See CreateAssessmentTemplate for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the CreateAssessmentTemplate method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the CreateAssessmentTemplateRequest method. +// req, resp := client.CreateAssessmentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplate +func (c *Inspector) CreateAssessmentTemplateRequest(input *CreateAssessmentTemplateInput) (req *request.Request, output *CreateAssessmentTemplateOutput) { + op := &request.Operation{ + Name: opCreateAssessmentTemplate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateAssessmentTemplateInput{} + } + + output = &CreateAssessmentTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAssessmentTemplate API operation for Amazon Inspector. +// +// Creates an assessment template for the assessment target that is specified +// by the ARN of the assessment target. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation CreateAssessmentTemplate for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current AWS account limits. The error code describes the limit exceeded. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplate +func (c *Inspector) CreateAssessmentTemplate(input *CreateAssessmentTemplateInput) (*CreateAssessmentTemplateOutput, error) { + req, out := c.CreateAssessmentTemplateRequest(input) + err := req.Send() + return out, err +} + +const opCreateResourceGroup = "CreateResourceGroup" + +// CreateResourceGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateResourceGroup operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See CreateResourceGroup for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the CreateResourceGroup method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the CreateResourceGroupRequest method. +// req, resp := client.CreateResourceGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroup +func (c *Inspector) CreateResourceGroupRequest(input *CreateResourceGroupInput) (req *request.Request, output *CreateResourceGroupOutput) { + op := &request.Operation{ + Name: opCreateResourceGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateResourceGroupInput{} + } + + output = &CreateResourceGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateResourceGroup API operation for Amazon Inspector. +// +// Creates a resource group using the specified set of tags (key and value pairs) +// that are used to select the EC2 instances to be included in an Amazon Inspector +// assessment target. The created resource group is then used to create an Amazon +// Inspector assessment target. For more information, see CreateAssessmentTarget. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation CreateResourceGroup for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current AWS account limits. The error code describes the limit exceeded. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroup +func (c *Inspector) CreateResourceGroup(input *CreateResourceGroupInput) (*CreateResourceGroupOutput, error) { + req, out := c.CreateResourceGroupRequest(input) + err := req.Send() + return out, err +} + +const opDeleteAssessmentRun = "DeleteAssessmentRun" + +// DeleteAssessmentRunRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAssessmentRun operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteAssessmentRun for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteAssessmentRun method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteAssessmentRunRequest method. +// req, resp := client.DeleteAssessmentRunRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRun +func (c *Inspector) DeleteAssessmentRunRequest(input *DeleteAssessmentRunInput) (req *request.Request, output *DeleteAssessmentRunOutput) { + op := &request.Operation{ + Name: opDeleteAssessmentRun, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteAssessmentRunInput{} + } + + output = &DeleteAssessmentRunOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAssessmentRun API operation for Amazon Inspector. +// +// Deletes the assessment run that is specified by the ARN of the assessment +// run. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DeleteAssessmentRun for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AssessmentRunInProgressException +// You cannot perform a specified action if an assessment run is currently in +// progress. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRun +func (c *Inspector) DeleteAssessmentRun(input *DeleteAssessmentRunInput) (*DeleteAssessmentRunOutput, error) { + req, out := c.DeleteAssessmentRunRequest(input) + err := req.Send() + return out, err +} + +const opDeleteAssessmentTarget = "DeleteAssessmentTarget" + +// DeleteAssessmentTargetRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAssessmentTarget operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteAssessmentTarget for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteAssessmentTarget method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteAssessmentTargetRequest method. +// req, resp := client.DeleteAssessmentTargetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTarget +func (c *Inspector) DeleteAssessmentTargetRequest(input *DeleteAssessmentTargetInput) (req *request.Request, output *DeleteAssessmentTargetOutput) { + op := &request.Operation{ + Name: opDeleteAssessmentTarget, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteAssessmentTargetInput{} + } + + output = &DeleteAssessmentTargetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAssessmentTarget API operation for Amazon Inspector. +// +// Deletes the assessment target that is specified by the ARN of the assessment +// target. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DeleteAssessmentTarget for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AssessmentRunInProgressException +// You cannot perform a specified action if an assessment run is currently in +// progress. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTarget +func (c *Inspector) DeleteAssessmentTarget(input *DeleteAssessmentTargetInput) (*DeleteAssessmentTargetOutput, error) { + req, out := c.DeleteAssessmentTargetRequest(input) + err := req.Send() + return out, err +} + +const opDeleteAssessmentTemplate = "DeleteAssessmentTemplate" + +// DeleteAssessmentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAssessmentTemplate operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteAssessmentTemplate for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteAssessmentTemplate method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteAssessmentTemplateRequest method. +// req, resp := client.DeleteAssessmentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplate +func (c *Inspector) DeleteAssessmentTemplateRequest(input *DeleteAssessmentTemplateInput) (req *request.Request, output *DeleteAssessmentTemplateOutput) { + op := &request.Operation{ + Name: opDeleteAssessmentTemplate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteAssessmentTemplateInput{} + } + + output = &DeleteAssessmentTemplateOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAssessmentTemplate API operation for Amazon Inspector. +// +// Deletes the assessment template that is specified by the ARN of the assessment +// template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DeleteAssessmentTemplate for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AssessmentRunInProgressException +// You cannot perform a specified action if an assessment run is currently in +// progress. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplate +func (c *Inspector) DeleteAssessmentTemplate(input *DeleteAssessmentTemplateInput) (*DeleteAssessmentTemplateOutput, error) { + req, out := c.DeleteAssessmentTemplateRequest(input) + err := req.Send() + return out, err +} + +const opDescribeAssessmentRuns = "DescribeAssessmentRuns" + +// DescribeAssessmentRunsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAssessmentRuns operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeAssessmentRuns for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeAssessmentRuns method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeAssessmentRunsRequest method. +// req, resp := client.DescribeAssessmentRunsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRuns +func (c *Inspector) DescribeAssessmentRunsRequest(input *DescribeAssessmentRunsInput) (req *request.Request, output *DescribeAssessmentRunsOutput) { + op := &request.Operation{ + Name: opDescribeAssessmentRuns, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAssessmentRunsInput{} + } + + output = &DescribeAssessmentRunsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAssessmentRuns API operation for Amazon Inspector. +// +// Describes the assessment runs that are specified by the ARNs of the assessment +// runs. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeAssessmentRuns for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRuns +func (c *Inspector) DescribeAssessmentRuns(input *DescribeAssessmentRunsInput) (*DescribeAssessmentRunsOutput, error) { + req, out := c.DescribeAssessmentRunsRequest(input) + err := req.Send() + return out, err +} + +const opDescribeAssessmentTargets = "DescribeAssessmentTargets" + +// DescribeAssessmentTargetsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAssessmentTargets operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeAssessmentTargets for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeAssessmentTargets method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeAssessmentTargetsRequest method. +// req, resp := client.DescribeAssessmentTargetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargets +func (c *Inspector) DescribeAssessmentTargetsRequest(input *DescribeAssessmentTargetsInput) (req *request.Request, output *DescribeAssessmentTargetsOutput) { + op := &request.Operation{ + Name: opDescribeAssessmentTargets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAssessmentTargetsInput{} + } + + output = &DescribeAssessmentTargetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAssessmentTargets API operation for Amazon Inspector. +// +// Describes the assessment targets that are specified by the ARNs of the assessment +// targets. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeAssessmentTargets for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargets +func (c *Inspector) DescribeAssessmentTargets(input *DescribeAssessmentTargetsInput) (*DescribeAssessmentTargetsOutput, error) { + req, out := c.DescribeAssessmentTargetsRequest(input) + err := req.Send() + return out, err +} + +const opDescribeAssessmentTemplates = "DescribeAssessmentTemplates" + +// DescribeAssessmentTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAssessmentTemplates operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeAssessmentTemplates for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeAssessmentTemplates method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeAssessmentTemplatesRequest method. +// req, resp := client.DescribeAssessmentTemplatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplates +func (c *Inspector) DescribeAssessmentTemplatesRequest(input *DescribeAssessmentTemplatesInput) (req *request.Request, output *DescribeAssessmentTemplatesOutput) { + op := &request.Operation{ + Name: opDescribeAssessmentTemplates, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAssessmentTemplatesInput{} + } + + output = &DescribeAssessmentTemplatesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAssessmentTemplates API operation for Amazon Inspector. +// +// Describes the assessment templates that are specified by the ARNs of the +// assessment templates. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeAssessmentTemplates for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplates +func (c *Inspector) DescribeAssessmentTemplates(input *DescribeAssessmentTemplatesInput) (*DescribeAssessmentTemplatesOutput, error) { + req, out := c.DescribeAssessmentTemplatesRequest(input) + err := req.Send() + return out, err +} + +const opDescribeCrossAccountAccessRole = "DescribeCrossAccountAccessRole" + +// DescribeCrossAccountAccessRoleRequest generates a "aws/request.Request" representing the +// client's request for the DescribeCrossAccountAccessRole operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeCrossAccountAccessRole for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeCrossAccountAccessRole method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeCrossAccountAccessRoleRequest method. +// req, resp := client.DescribeCrossAccountAccessRoleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRole +func (c *Inspector) DescribeCrossAccountAccessRoleRequest(input *DescribeCrossAccountAccessRoleInput) (req *request.Request, output *DescribeCrossAccountAccessRoleOutput) { + op := &request.Operation{ + Name: opDescribeCrossAccountAccessRole, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeCrossAccountAccessRoleInput{} + } + + output = &DescribeCrossAccountAccessRoleOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeCrossAccountAccessRole API operation for Amazon Inspector. +// +// Describes the IAM role that enables Amazon Inspector to access your AWS account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeCrossAccountAccessRole for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRole +func (c *Inspector) DescribeCrossAccountAccessRole(input *DescribeCrossAccountAccessRoleInput) (*DescribeCrossAccountAccessRoleOutput, error) { + req, out := c.DescribeCrossAccountAccessRoleRequest(input) + err := req.Send() + return out, err +} + +const opDescribeFindings = "DescribeFindings" + +// DescribeFindingsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFindings operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeFindings for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeFindings method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeFindingsRequest method. +// req, resp := client.DescribeFindingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindings +func (c *Inspector) DescribeFindingsRequest(input *DescribeFindingsInput) (req *request.Request, output *DescribeFindingsOutput) { + op := &request.Operation{ + Name: opDescribeFindings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFindingsInput{} + } + + output = &DescribeFindingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFindings API operation for Amazon Inspector. +// +// Describes the findings that are specified by the ARNs of the findings. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeFindings for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindings +func (c *Inspector) DescribeFindings(input *DescribeFindingsInput) (*DescribeFindingsOutput, error) { + req, out := c.DescribeFindingsRequest(input) + err := req.Send() + return out, err +} + +const opDescribeResourceGroups = "DescribeResourceGroups" + +// DescribeResourceGroupsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeResourceGroups operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeResourceGroups for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeResourceGroups method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeResourceGroupsRequest method. +// req, resp := client.DescribeResourceGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroups +func (c *Inspector) DescribeResourceGroupsRequest(input *DescribeResourceGroupsInput) (req *request.Request, output *DescribeResourceGroupsOutput) { + op := &request.Operation{ + Name: opDescribeResourceGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeResourceGroupsInput{} + } + + output = &DescribeResourceGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeResourceGroups API operation for Amazon Inspector. +// +// Describes the resource groups that are specified by the ARNs of the resource +// groups. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeResourceGroups for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroups +func (c *Inspector) DescribeResourceGroups(input *DescribeResourceGroupsInput) (*DescribeResourceGroupsOutput, error) { + req, out := c.DescribeResourceGroupsRequest(input) + err := req.Send() + return out, err +} + +const opDescribeRulesPackages = "DescribeRulesPackages" + +// DescribeRulesPackagesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeRulesPackages operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DescribeRulesPackages for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DescribeRulesPackages method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DescribeRulesPackagesRequest method. +// req, resp := client.DescribeRulesPackagesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackages +func (c *Inspector) DescribeRulesPackagesRequest(input *DescribeRulesPackagesInput) (req *request.Request, output *DescribeRulesPackagesOutput) { + op := &request.Operation{ + Name: opDescribeRulesPackages, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeRulesPackagesInput{} + } + + output = &DescribeRulesPackagesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeRulesPackages API operation for Amazon Inspector. +// +// Describes the rules packages that are specified by the ARNs of the rules +// packages. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation DescribeRulesPackages for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackages +func (c *Inspector) DescribeRulesPackages(input *DescribeRulesPackagesInput) (*DescribeRulesPackagesOutput, error) { + req, out := c.DescribeRulesPackagesRequest(input) + err := req.Send() + return out, err +} + +const opGetTelemetryMetadata = "GetTelemetryMetadata" + +// GetTelemetryMetadataRequest generates a "aws/request.Request" representing the +// client's request for the GetTelemetryMetadata operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetTelemetryMetadata for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetTelemetryMetadata method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetTelemetryMetadataRequest method. +// req, resp := client.GetTelemetryMetadataRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadata +func (c *Inspector) GetTelemetryMetadataRequest(input *GetTelemetryMetadataInput) (req *request.Request, output *GetTelemetryMetadataOutput) { + op := &request.Operation{ + Name: opGetTelemetryMetadata, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetTelemetryMetadataInput{} + } + + output = &GetTelemetryMetadataOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetTelemetryMetadata API operation for Amazon Inspector. +// +// Information about the data that is collected for the specified assessment +// run. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation GetTelemetryMetadata for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadata +func (c *Inspector) GetTelemetryMetadata(input *GetTelemetryMetadataInput) (*GetTelemetryMetadataOutput, error) { + req, out := c.GetTelemetryMetadataRequest(input) + err := req.Send() + return out, err +} + +const opListAssessmentRunAgents = "ListAssessmentRunAgents" + +// ListAssessmentRunAgentsRequest generates a "aws/request.Request" representing the +// client's request for the ListAssessmentRunAgents operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListAssessmentRunAgents for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListAssessmentRunAgents method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListAssessmentRunAgentsRequest method. +// req, resp := client.ListAssessmentRunAgentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgents +func (c *Inspector) ListAssessmentRunAgentsRequest(input *ListAssessmentRunAgentsInput) (req *request.Request, output *ListAssessmentRunAgentsOutput) { + op := &request.Operation{ + Name: opListAssessmentRunAgents, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAssessmentRunAgentsInput{} + } + + output = &ListAssessmentRunAgentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAssessmentRunAgents API operation for Amazon Inspector. +// +// Lists the agents of the assessment runs that are specified by the ARNs of +// the assessment runs. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListAssessmentRunAgents for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgents +func (c *Inspector) ListAssessmentRunAgents(input *ListAssessmentRunAgentsInput) (*ListAssessmentRunAgentsOutput, error) { + req, out := c.ListAssessmentRunAgentsRequest(input) + err := req.Send() + return out, err +} + +const opListAssessmentRuns = "ListAssessmentRuns" + +// ListAssessmentRunsRequest generates a "aws/request.Request" representing the +// client's request for the ListAssessmentRuns operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListAssessmentRuns for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListAssessmentRuns method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListAssessmentRunsRequest method. +// req, resp := client.ListAssessmentRunsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRuns +func (c *Inspector) ListAssessmentRunsRequest(input *ListAssessmentRunsInput) (req *request.Request, output *ListAssessmentRunsOutput) { + op := &request.Operation{ + Name: opListAssessmentRuns, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAssessmentRunsInput{} + } + + output = &ListAssessmentRunsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAssessmentRuns API operation for Amazon Inspector. +// +// Lists the assessment runs that correspond to the assessment templates that +// are specified by the ARNs of the assessment templates. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListAssessmentRuns for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRuns +func (c *Inspector) ListAssessmentRuns(input *ListAssessmentRunsInput) (*ListAssessmentRunsOutput, error) { + req, out := c.ListAssessmentRunsRequest(input) + err := req.Send() + return out, err +} + +const opListAssessmentTargets = "ListAssessmentTargets" + +// ListAssessmentTargetsRequest generates a "aws/request.Request" representing the +// client's request for the ListAssessmentTargets operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListAssessmentTargets for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListAssessmentTargets method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListAssessmentTargetsRequest method. +// req, resp := client.ListAssessmentTargetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargets +func (c *Inspector) ListAssessmentTargetsRequest(input *ListAssessmentTargetsInput) (req *request.Request, output *ListAssessmentTargetsOutput) { + op := &request.Operation{ + Name: opListAssessmentTargets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAssessmentTargetsInput{} + } + + output = &ListAssessmentTargetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAssessmentTargets API operation for Amazon Inspector. +// +// Lists the ARNs of the assessment targets within this AWS account. For more +// information about assessment targets, see Amazon Inspector Assessment Targets +// (http://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListAssessmentTargets for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargets +func (c *Inspector) ListAssessmentTargets(input *ListAssessmentTargetsInput) (*ListAssessmentTargetsOutput, error) { + req, out := c.ListAssessmentTargetsRequest(input) + err := req.Send() + return out, err +} + +const opListAssessmentTemplates = "ListAssessmentTemplates" + +// ListAssessmentTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the ListAssessmentTemplates operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListAssessmentTemplates for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListAssessmentTemplates method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListAssessmentTemplatesRequest method. +// req, resp := client.ListAssessmentTemplatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplates +func (c *Inspector) ListAssessmentTemplatesRequest(input *ListAssessmentTemplatesInput) (req *request.Request, output *ListAssessmentTemplatesOutput) { + op := &request.Operation{ + Name: opListAssessmentTemplates, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAssessmentTemplatesInput{} + } + + output = &ListAssessmentTemplatesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAssessmentTemplates API operation for Amazon Inspector. +// +// Lists the assessment templates that correspond to the assessment targets +// that are specified by the ARNs of the assessment targets. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListAssessmentTemplates for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplates +func (c *Inspector) ListAssessmentTemplates(input *ListAssessmentTemplatesInput) (*ListAssessmentTemplatesOutput, error) { + req, out := c.ListAssessmentTemplatesRequest(input) + err := req.Send() + return out, err +} + +const opListEventSubscriptions = "ListEventSubscriptions" + +// ListEventSubscriptionsRequest generates a "aws/request.Request" representing the +// client's request for the ListEventSubscriptions operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListEventSubscriptions for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListEventSubscriptions method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListEventSubscriptionsRequest method. +// req, resp := client.ListEventSubscriptionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptions +func (c *Inspector) ListEventSubscriptionsRequest(input *ListEventSubscriptionsInput) (req *request.Request, output *ListEventSubscriptionsOutput) { + op := &request.Operation{ + Name: opListEventSubscriptions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListEventSubscriptionsInput{} + } + + output = &ListEventSubscriptionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListEventSubscriptions API operation for Amazon Inspector. +// +// Lists all the event subscriptions for the assessment template that is specified +// by the ARN of the assessment template. For more information, see SubscribeToEvent +// and UnsubscribeFromEvent. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListEventSubscriptions for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptions +func (c *Inspector) ListEventSubscriptions(input *ListEventSubscriptionsInput) (*ListEventSubscriptionsOutput, error) { + req, out := c.ListEventSubscriptionsRequest(input) + err := req.Send() + return out, err +} + +const opListFindings = "ListFindings" + +// ListFindingsRequest generates a "aws/request.Request" representing the +// client's request for the ListFindings operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListFindings for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListFindings method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListFindingsRequest method. +// req, resp := client.ListFindingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindings +func (c *Inspector) ListFindingsRequest(input *ListFindingsInput) (req *request.Request, output *ListFindingsOutput) { + op := &request.Operation{ + Name: opListFindings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListFindingsInput{} + } + + output = &ListFindingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListFindings API operation for Amazon Inspector. +// +// Lists findings that are generated by the assessment runs that are specified +// by the ARNs of the assessment runs. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListFindings for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindings +func (c *Inspector) ListFindings(input *ListFindingsInput) (*ListFindingsOutput, error) { + req, out := c.ListFindingsRequest(input) + err := req.Send() + return out, err +} + +const opListRulesPackages = "ListRulesPackages" + +// ListRulesPackagesRequest generates a "aws/request.Request" representing the +// client's request for the ListRulesPackages operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListRulesPackages for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListRulesPackages method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListRulesPackagesRequest method. +// req, resp := client.ListRulesPackagesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackages +func (c *Inspector) ListRulesPackagesRequest(input *ListRulesPackagesInput) (req *request.Request, output *ListRulesPackagesOutput) { + op := &request.Operation{ + Name: opListRulesPackages, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListRulesPackagesInput{} + } + + output = &ListRulesPackagesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRulesPackages API operation for Amazon Inspector. +// +// Lists all available Amazon Inspector rules packages. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListRulesPackages for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackages +func (c *Inspector) ListRulesPackages(input *ListRulesPackagesInput) (*ListRulesPackagesOutput, error) { + req, out := c.ListRulesPackagesRequest(input) + err := req.Send() + return out, err +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListTagsForResource for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListTagsForResource method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResource +func (c *Inspector) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon Inspector. +// +// Lists all tags associated with an assessment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResource +func (c *Inspector) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + err := req.Send() + return out, err +} + +const opPreviewAgents = "PreviewAgents" + +// PreviewAgentsRequest generates a "aws/request.Request" representing the +// client's request for the PreviewAgents operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See PreviewAgents for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the PreviewAgents method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the PreviewAgentsRequest method. +// req, resp := client.PreviewAgentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgents +func (c *Inspector) PreviewAgentsRequest(input *PreviewAgentsInput) (req *request.Request, output *PreviewAgentsOutput) { + op := &request.Operation{ + Name: opPreviewAgents, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PreviewAgentsInput{} + } + + output = &PreviewAgentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// PreviewAgents API operation for Amazon Inspector. +// +// Previews the agents installed on the EC2 instances that are part of the specified +// assessment target. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation PreviewAgents for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// * InvalidCrossAccountRoleException +// Amazon Inspector cannot assume the cross-account role that it needs to list +// your EC2 instances during the assessment run. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgents +func (c *Inspector) PreviewAgents(input *PreviewAgentsInput) (*PreviewAgentsOutput, error) { + req, out := c.PreviewAgentsRequest(input) + err := req.Send() + return out, err +} + +const opRegisterCrossAccountAccessRole = "RegisterCrossAccountAccessRole" + +// RegisterCrossAccountAccessRoleRequest generates a "aws/request.Request" representing the +// client's request for the RegisterCrossAccountAccessRole operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See RegisterCrossAccountAccessRole for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the RegisterCrossAccountAccessRole method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the RegisterCrossAccountAccessRoleRequest method. +// req, resp := client.RegisterCrossAccountAccessRoleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRole +func (c *Inspector) RegisterCrossAccountAccessRoleRequest(input *RegisterCrossAccountAccessRoleInput) (req *request.Request, output *RegisterCrossAccountAccessRoleOutput) { + op := &request.Operation{ + Name: opRegisterCrossAccountAccessRole, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterCrossAccountAccessRoleInput{} + } + + output = &RegisterCrossAccountAccessRoleOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// RegisterCrossAccountAccessRole API operation for Amazon Inspector. +// +// Registers the IAM role that Amazon Inspector uses to list your EC2 instances +// at the start of the assessment run or when you call the PreviewAgents action. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation RegisterCrossAccountAccessRole for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * InvalidCrossAccountRoleException +// Amazon Inspector cannot assume the cross-account role that it needs to list +// your EC2 instances during the assessment run. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRole +func (c *Inspector) RegisterCrossAccountAccessRole(input *RegisterCrossAccountAccessRoleInput) (*RegisterCrossAccountAccessRoleOutput, error) { + req, out := c.RegisterCrossAccountAccessRoleRequest(input) + err := req.Send() + return out, err +} + +const opRemoveAttributesFromFindings = "RemoveAttributesFromFindings" + +// RemoveAttributesFromFindingsRequest generates a "aws/request.Request" representing the +// client's request for the RemoveAttributesFromFindings operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See RemoveAttributesFromFindings for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the RemoveAttributesFromFindings method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the RemoveAttributesFromFindingsRequest method. +// req, resp := client.RemoveAttributesFromFindingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindings +func (c *Inspector) RemoveAttributesFromFindingsRequest(input *RemoveAttributesFromFindingsInput) (req *request.Request, output *RemoveAttributesFromFindingsOutput) { + op := &request.Operation{ + Name: opRemoveAttributesFromFindings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemoveAttributesFromFindingsInput{} + } + + output = &RemoveAttributesFromFindingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// RemoveAttributesFromFindings API operation for Amazon Inspector. +// +// Removes entire attributes (key and value pairs) from the findings that are +// specified by the ARNs of the findings where an attribute with the specified +// key exists. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation RemoveAttributesFromFindings for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindings +func (c *Inspector) RemoveAttributesFromFindings(input *RemoveAttributesFromFindingsInput) (*RemoveAttributesFromFindingsOutput, error) { + req, out := c.RemoveAttributesFromFindingsRequest(input) + err := req.Send() + return out, err +} + +const opSetTagsForResource = "SetTagsForResource" + +// SetTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the SetTagsForResource operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See SetTagsForResource for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the SetTagsForResource method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the SetTagsForResourceRequest method. +// req, resp := client.SetTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResource +func (c *Inspector) SetTagsForResourceRequest(input *SetTagsForResourceInput) (req *request.Request, output *SetTagsForResourceOutput) { + op := &request.Operation{ + Name: opSetTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetTagsForResourceInput{} + } + + output = &SetTagsForResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// SetTagsForResource API operation for Amazon Inspector. +// +// Sets tags (key and value pairs) to the assessment template that is specified +// by the ARN of the assessment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation SetTagsForResource for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResource +func (c *Inspector) SetTagsForResource(input *SetTagsForResourceInput) (*SetTagsForResourceOutput, error) { + req, out := c.SetTagsForResourceRequest(input) + err := req.Send() + return out, err +} + +const opStartAssessmentRun = "StartAssessmentRun" + +// StartAssessmentRunRequest generates a "aws/request.Request" representing the +// client's request for the StartAssessmentRun operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See StartAssessmentRun for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the StartAssessmentRun method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the StartAssessmentRunRequest method. +// req, resp := client.StartAssessmentRunRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRun +func (c *Inspector) StartAssessmentRunRequest(input *StartAssessmentRunInput) (req *request.Request, output *StartAssessmentRunOutput) { + op := &request.Operation{ + Name: opStartAssessmentRun, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartAssessmentRunInput{} + } + + output = &StartAssessmentRunOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartAssessmentRun API operation for Amazon Inspector. +// +// Starts the assessment run specified by the ARN of the assessment template. +// For this API to function properly, you must not exceed the limit of running +// up to 500 concurrent agents per AWS account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation StartAssessmentRun for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current AWS account limits. The error code describes the limit exceeded. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// * InvalidCrossAccountRoleException +// Amazon Inspector cannot assume the cross-account role that it needs to list +// your EC2 instances during the assessment run. +// +// * AgentsAlreadyRunningAssessmentException +// You started an assessment run, but one of the instances is already participating +// in another assessment run. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRun +func (c *Inspector) StartAssessmentRun(input *StartAssessmentRunInput) (*StartAssessmentRunOutput, error) { + req, out := c.StartAssessmentRunRequest(input) + err := req.Send() + return out, err +} + +const opStopAssessmentRun = "StopAssessmentRun" + +// StopAssessmentRunRequest generates a "aws/request.Request" representing the +// client's request for the StopAssessmentRun operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See StopAssessmentRun for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the StopAssessmentRun method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the StopAssessmentRunRequest method. +// req, resp := client.StopAssessmentRunRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRun +func (c *Inspector) StopAssessmentRunRequest(input *StopAssessmentRunInput) (req *request.Request, output *StopAssessmentRunOutput) { + op := &request.Operation{ + Name: opStopAssessmentRun, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopAssessmentRunInput{} + } + + output = &StopAssessmentRunOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// StopAssessmentRun API operation for Amazon Inspector. +// +// Stops the assessment run that is specified by the ARN of the assessment run. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation StopAssessmentRun for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRun +func (c *Inspector) StopAssessmentRun(input *StopAssessmentRunInput) (*StopAssessmentRunOutput, error) { + req, out := c.StopAssessmentRunRequest(input) + err := req.Send() + return out, err +} + +const opSubscribeToEvent = "SubscribeToEvent" + +// SubscribeToEventRequest generates a "aws/request.Request" representing the +// client's request for the SubscribeToEvent operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See SubscribeToEvent for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the SubscribeToEvent method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the SubscribeToEventRequest method. +// req, resp := client.SubscribeToEventRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEvent +func (c *Inspector) SubscribeToEventRequest(input *SubscribeToEventInput) (req *request.Request, output *SubscribeToEventOutput) { + op := &request.Operation{ + Name: opSubscribeToEvent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SubscribeToEventInput{} + } + + output = &SubscribeToEventOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// SubscribeToEvent API operation for Amazon Inspector. +// +// Enables the process of sending Amazon Simple Notification Service (SNS) notifications +// about a specified event to a specified SNS topic. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation SubscribeToEvent for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current AWS account limits. The error code describes the limit exceeded. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEvent +func (c *Inspector) SubscribeToEvent(input *SubscribeToEventInput) (*SubscribeToEventOutput, error) { + req, out := c.SubscribeToEventRequest(input) + err := req.Send() + return out, err +} + +const opUnsubscribeFromEvent = "UnsubscribeFromEvent" + +// UnsubscribeFromEventRequest generates a "aws/request.Request" representing the +// client's request for the UnsubscribeFromEvent operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See UnsubscribeFromEvent for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the UnsubscribeFromEvent method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the UnsubscribeFromEventRequest method. +// req, resp := client.UnsubscribeFromEventRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEvent +func (c *Inspector) UnsubscribeFromEventRequest(input *UnsubscribeFromEventInput) (req *request.Request, output *UnsubscribeFromEventOutput) { + op := &request.Operation{ + Name: opUnsubscribeFromEvent, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UnsubscribeFromEventInput{} + } + + output = &UnsubscribeFromEventOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// UnsubscribeFromEvent API operation for Amazon Inspector. +// +// Disables the process of sending Amazon Simple Notification Service (SNS) +// notifications about a specified event to a specified SNS topic. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation UnsubscribeFromEvent for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEvent +func (c *Inspector) UnsubscribeFromEvent(input *UnsubscribeFromEventInput) (*UnsubscribeFromEventOutput, error) { + req, out := c.UnsubscribeFromEventRequest(input) + err := req.Send() + return out, err +} + +const opUpdateAssessmentTarget = "UpdateAssessmentTarget" + +// UpdateAssessmentTargetRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAssessmentTarget operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See UpdateAssessmentTarget for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the UpdateAssessmentTarget method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the UpdateAssessmentTargetRequest method. +// req, resp := client.UpdateAssessmentTargetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTarget +func (c *Inspector) UpdateAssessmentTargetRequest(input *UpdateAssessmentTargetInput) (req *request.Request, output *UpdateAssessmentTargetOutput) { + op := &request.Operation{ + Name: opUpdateAssessmentTarget, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateAssessmentTargetInput{} + } + + output = &UpdateAssessmentTargetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateAssessmentTarget API operation for Amazon Inspector. +// +// Updates the assessment target that is specified by the ARN of the assessment +// target. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Inspector's +// API operation UpdateAssessmentTarget for usage and error information. +// +// Returned Error Codes: +// * InternalException +// Internal server error. +// +// * InvalidInputException +// The request was rejected because an invalid or out-of-range value was supplied +// for an input parameter. +// +// * AccessDeniedException +// You do not have required permissions to access the requested resource. +// +// * NoSuchEntityException +// The request was rejected because it referenced an entity that does not exist. +// The error code describes the entity. +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTarget +func (c *Inspector) UpdateAssessmentTarget(input *UpdateAssessmentTargetInput) (*UpdateAssessmentTargetOutput, error) { + req, out := c.UpdateAssessmentTargetRequest(input) + err := req.Send() + return out, err +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindingsRequest +type AddAttributesToFindingsInput struct { + _ struct{} `type:"structure"` + + // The array of attributes that you want to assign to specified findings. + // + // Attributes is a required field + Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"` + + // The ARNs that specify the findings that you want to assign attributes to. + // + // FindingArns is a required field + FindingArns []*string `locationName:"findingArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s AddAttributesToFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddAttributesToFindingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddAttributesToFindingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddAttributesToFindingsInput"} + if s.Attributes == nil { + invalidParams.Add(request.NewErrParamRequired("Attributes")) + } + if s.FindingArns == nil { + invalidParams.Add(request.NewErrParamRequired("FindingArns")) + } + if s.FindingArns != nil && len(s.FindingArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FindingArns", 1)) + } + if s.Attributes != nil { + for i, v := range s.Attributes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributes sets the Attributes field's value. +func (s *AddAttributesToFindingsInput) SetAttributes(v []*Attribute) *AddAttributesToFindingsInput { + s.Attributes = v + return s +} + +// SetFindingArns sets the FindingArns field's value. +func (s *AddAttributesToFindingsInput) SetFindingArns(v []*string) *AddAttributesToFindingsInput { + s.FindingArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindingsResponse +type AddAttributesToFindingsOutput struct { + _ struct{} `type:"structure"` + + // Attribute details that cannot be described. An error code is provided for + // each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` +} + +// String returns the string representation +func (s AddAttributesToFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddAttributesToFindingsOutput) GoString() string { + return s.String() +} + +// SetFailedItems sets the FailedItems field's value. +func (s *AddAttributesToFindingsOutput) SetFailedItems(v map[string]*FailedItemDetails) *AddAttributesToFindingsOutput { + s.FailedItems = v + return s +} + +// Used in the exception error that is thrown if you start an assessment run +// for an assessment target that includes an EC2 instance that is already participating +// in another started assessment run. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentAlreadyRunningAssessment +type AgentAlreadyRunningAssessment struct { + _ struct{} `type:"structure"` + + // ID of the agent that is running on an EC2 instance that is already participating + // in another started assessment run. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" min:"1" type:"string" required:"true"` + + // The ARN of the assessment run that has already been started. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AgentAlreadyRunningAssessment) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AgentAlreadyRunningAssessment) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentAlreadyRunningAssessment) SetAgentId(v string) *AgentAlreadyRunningAssessment { + s.AgentId = &v + return s +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *AgentAlreadyRunningAssessment) SetAssessmentRunArn(v string) *AgentAlreadyRunningAssessment { + s.AssessmentRunArn = &v + return s +} + +// Contains information about an Amazon Inspector agent. This data type is used +// as a request parameter in the ListAssessmentRunAgents action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentFilter +type AgentFilter struct { + _ struct{} `type:"structure"` + + // The detailed health state of the agent. Values can be set to IDLE, RUNNING, + // SHUTDOWN, UNHEALTHY, THROTTLED, and UNKNOWN. + // + // AgentHealthCodes is a required field + AgentHealthCodes []*string `locationName:"agentHealthCodes" type:"list" required:"true"` + + // The current health state of the agent. Values can be set to HEALTHY or UNHEALTHY. + // + // AgentHealths is a required field + AgentHealths []*string `locationName:"agentHealths" type:"list" required:"true"` +} + +// String returns the string representation +func (s AgentFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AgentFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AgentFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AgentFilter"} + if s.AgentHealthCodes == nil { + invalidParams.Add(request.NewErrParamRequired("AgentHealthCodes")) + } + if s.AgentHealths == nil { + invalidParams.Add(request.NewErrParamRequired("AgentHealths")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentHealthCodes sets the AgentHealthCodes field's value. +func (s *AgentFilter) SetAgentHealthCodes(v []*string) *AgentFilter { + s.AgentHealthCodes = v + return s +} + +// SetAgentHealths sets the AgentHealths field's value. +func (s *AgentFilter) SetAgentHealths(v []*string) *AgentFilter { + s.AgentHealths = v + return s +} + +// Used as a response element in the PreviewAgents action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentPreview +type AgentPreview struct { + _ struct{} `type:"structure"` + + // The ID of the EC2 instance where the agent is installed. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" min:"1" type:"string" required:"true"` + + // The Auto Scaling group for the EC2 instance where the agent is installed. + AutoScalingGroup *string `locationName:"autoScalingGroup" min:"1" type:"string"` +} + +// String returns the string representation +func (s AgentPreview) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AgentPreview) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentPreview) SetAgentId(v string) *AgentPreview { + s.AgentId = &v + return s +} + +// SetAutoScalingGroup sets the AutoScalingGroup field's value. +func (s *AgentPreview) SetAutoScalingGroup(v string) *AgentPreview { + s.AutoScalingGroup = &v + return s +} + +// A snapshot of an Amazon Inspector assessment run that contains the findings +// of the assessment run . +// +// Used as the response element in the DescribeAssessmentRuns action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRun +type AssessmentRun struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment run. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // The ARN of the assessment template that is associated with the assessment + // run. + // + // AssessmentTemplateArn is a required field + AssessmentTemplateArn *string `locationName:"assessmentTemplateArn" min:"1" type:"string" required:"true"` + + // The assessment run completion time that corresponds to the rules packages + // evaluation completion time or failure. + CompletedAt *time.Time `locationName:"completedAt" type:"timestamp" timestampFormat:"unix"` + + // The time when StartAssessmentRun was called. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // A Boolean value (true or false) that specifies whether the process of collecting + // data from the agents is completed. + // + // DataCollected is a required field + DataCollected *bool `locationName:"dataCollected" type:"boolean" required:"true"` + + // The duration of the assessment run. + // + // DurationInSeconds is a required field + DurationInSeconds *int64 `locationName:"durationInSeconds" min:"180" type:"integer" required:"true"` + + // The auto-generated name for the assessment run. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // A list of notifications for the event subscriptions. A notification about + // a particular generated finding is added to this list only once. + // + // Notifications is a required field + Notifications []*AssessmentRunNotification `locationName:"notifications" type:"list" required:"true"` + + // The rules packages selected for the assessment run. + // + // RulesPackageArns is a required field + RulesPackageArns []*string `locationName:"rulesPackageArns" min:"1" type:"list" required:"true"` + + // The time when StartAssessmentRun was called. + StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"unix"` + + // The state of the assessment run. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"AssessmentRunState"` + + // The last time when the assessment run's state changed. + // + // StateChangedAt is a required field + StateChangedAt *time.Time `locationName:"stateChangedAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // A list of the assessment run state changes. + // + // StateChanges is a required field + StateChanges []*AssessmentRunStateChange `locationName:"stateChanges" type:"list" required:"true"` + + // The user-defined attributes that are assigned to every generated finding. + // + // UserAttributesForFindings is a required field + UserAttributesForFindings []*Attribute `locationName:"userAttributesForFindings" type:"list" required:"true"` +} + +// String returns the string representation +func (s AssessmentRun) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentRun) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssessmentRun) SetArn(v string) *AssessmentRun { + s.Arn = &v + return s +} + +// SetAssessmentTemplateArn sets the AssessmentTemplateArn field's value. +func (s *AssessmentRun) SetAssessmentTemplateArn(v string) *AssessmentRun { + s.AssessmentTemplateArn = &v + return s +} + +// SetCompletedAt sets the CompletedAt field's value. +func (s *AssessmentRun) SetCompletedAt(v time.Time) *AssessmentRun { + s.CompletedAt = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AssessmentRun) SetCreatedAt(v time.Time) *AssessmentRun { + s.CreatedAt = &v + return s +} + +// SetDataCollected sets the DataCollected field's value. +func (s *AssessmentRun) SetDataCollected(v bool) *AssessmentRun { + s.DataCollected = &v + return s +} + +// SetDurationInSeconds sets the DurationInSeconds field's value. +func (s *AssessmentRun) SetDurationInSeconds(v int64) *AssessmentRun { + s.DurationInSeconds = &v + return s +} + +// SetName sets the Name field's value. +func (s *AssessmentRun) SetName(v string) *AssessmentRun { + s.Name = &v + return s +} + +// SetNotifications sets the Notifications field's value. +func (s *AssessmentRun) SetNotifications(v []*AssessmentRunNotification) *AssessmentRun { + s.Notifications = v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *AssessmentRun) SetRulesPackageArns(v []*string) *AssessmentRun { + s.RulesPackageArns = v + return s +} + +// SetStartedAt sets the StartedAt field's value. +func (s *AssessmentRun) SetStartedAt(v time.Time) *AssessmentRun { + s.StartedAt = &v + return s +} + +// SetState sets the State field's value. +func (s *AssessmentRun) SetState(v string) *AssessmentRun { + s.State = &v + return s +} + +// SetStateChangedAt sets the StateChangedAt field's value. +func (s *AssessmentRun) SetStateChangedAt(v time.Time) *AssessmentRun { + s.StateChangedAt = &v + return s +} + +// SetStateChanges sets the StateChanges field's value. +func (s *AssessmentRun) SetStateChanges(v []*AssessmentRunStateChange) *AssessmentRun { + s.StateChanges = v + return s +} + +// SetUserAttributesForFindings sets the UserAttributesForFindings field's value. +func (s *AssessmentRun) SetUserAttributesForFindings(v []*Attribute) *AssessmentRun { + s.UserAttributesForFindings = v + return s +} + +// Contains information about an Amazon Inspector agent. This data type is used +// as a response element in the ListAssessmentRunAgents action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunAgent +type AssessmentRunAgent struct { + _ struct{} `type:"structure"` + + // The current health state of the agent. + // + // AgentHealth is a required field + AgentHealth *string `locationName:"agentHealth" type:"string" required:"true" enum:"AgentHealth"` + + // The detailed health state of the agent. + // + // AgentHealthCode is a required field + AgentHealthCode *string `locationName:"agentHealthCode" type:"string" required:"true" enum:"AgentHealthCode"` + + // The description for the agent health code. + AgentHealthDetails *string `locationName:"agentHealthDetails" type:"string"` + + // The AWS account of the EC2 instance where the agent is installed. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" min:"1" type:"string" required:"true"` + + // The ARN of the assessment run that is associated with the agent. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` + + // The Auto Scaling group of the EC2 instance that is specified by the agent + // ID. + AutoScalingGroup *string `locationName:"autoScalingGroup" min:"1" type:"string"` + + // The Amazon Inspector application data metrics that are collected by the agent. + // + // TelemetryMetadata is a required field + TelemetryMetadata []*TelemetryMetadata `locationName:"telemetryMetadata" type:"list" required:"true"` +} + +// String returns the string representation +func (s AssessmentRunAgent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentRunAgent) GoString() string { + return s.String() +} + +// SetAgentHealth sets the AgentHealth field's value. +func (s *AssessmentRunAgent) SetAgentHealth(v string) *AssessmentRunAgent { + s.AgentHealth = &v + return s +} + +// SetAgentHealthCode sets the AgentHealthCode field's value. +func (s *AssessmentRunAgent) SetAgentHealthCode(v string) *AssessmentRunAgent { + s.AgentHealthCode = &v + return s +} + +// SetAgentHealthDetails sets the AgentHealthDetails field's value. +func (s *AssessmentRunAgent) SetAgentHealthDetails(v string) *AssessmentRunAgent { + s.AgentHealthDetails = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *AssessmentRunAgent) SetAgentId(v string) *AssessmentRunAgent { + s.AgentId = &v + return s +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *AssessmentRunAgent) SetAssessmentRunArn(v string) *AssessmentRunAgent { + s.AssessmentRunArn = &v + return s +} + +// SetAutoScalingGroup sets the AutoScalingGroup field's value. +func (s *AssessmentRunAgent) SetAutoScalingGroup(v string) *AssessmentRunAgent { + s.AutoScalingGroup = &v + return s +} + +// SetTelemetryMetadata sets the TelemetryMetadata field's value. +func (s *AssessmentRunAgent) SetTelemetryMetadata(v []*TelemetryMetadata) *AssessmentRunAgent { + s.TelemetryMetadata = v + return s +} + +// Used as the request parameter in the ListAssessmentRuns action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunFilter +type AssessmentRunFilter struct { + _ struct{} `type:"structure"` + + // For a record to match a filter, the value that is specified for this data + // type property must inclusively match any value between the specified minimum + // and maximum values of the completedAt property of the AssessmentRun data + // type. + CompletionTimeRange *TimestampRange `locationName:"completionTimeRange" type:"structure"` + + // For a record to match a filter, the value that is specified for this data + // type property must inclusively match any value between the specified minimum + // and maximum values of the durationInSeconds property of the AssessmentRun + // data type. + DurationRange *DurationRange `locationName:"durationRange" type:"structure"` + + // For a record to match a filter, an explicit value or a string containing + // a wildcard that is specified for this data type property must match the value + // of the assessmentRunName property of the AssessmentRun data type. + NamePattern *string `locationName:"namePattern" min:"1" type:"string"` + + // For a record to match a filter, the value that is specified for this data + // type property must be contained in the list of values of the rulesPackages + // property of the AssessmentRun data type. + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list"` + + // For a record to match a filter, the value that is specified for this data + // type property must inclusively match any value between the specified minimum + // and maximum values of the startTime property of the AssessmentRun data type. + StartTimeRange *TimestampRange `locationName:"startTimeRange" type:"structure"` + + // For a record to match a filter, the value that is specified for this data + // type property must match the stateChangedAt property of the AssessmentRun + // data type. + StateChangeTimeRange *TimestampRange `locationName:"stateChangeTimeRange" type:"structure"` + + // For a record to match a filter, one of the values specified for this data + // type property must be the exact match of the value of the assessmentRunState + // property of the AssessmentRun data type. + States []*string `locationName:"states" type:"list"` +} + +// String returns the string representation +func (s AssessmentRunFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentRunFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssessmentRunFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssessmentRunFilter"} + if s.NamePattern != nil && len(*s.NamePattern) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NamePattern", 1)) + } + if s.DurationRange != nil { + if err := s.DurationRange.Validate(); err != nil { + invalidParams.AddNested("DurationRange", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCompletionTimeRange sets the CompletionTimeRange field's value. +func (s *AssessmentRunFilter) SetCompletionTimeRange(v *TimestampRange) *AssessmentRunFilter { + s.CompletionTimeRange = v + return s +} + +// SetDurationRange sets the DurationRange field's value. +func (s *AssessmentRunFilter) SetDurationRange(v *DurationRange) *AssessmentRunFilter { + s.DurationRange = v + return s +} + +// SetNamePattern sets the NamePattern field's value. +func (s *AssessmentRunFilter) SetNamePattern(v string) *AssessmentRunFilter { + s.NamePattern = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *AssessmentRunFilter) SetRulesPackageArns(v []*string) *AssessmentRunFilter { + s.RulesPackageArns = v + return s +} + +// SetStartTimeRange sets the StartTimeRange field's value. +func (s *AssessmentRunFilter) SetStartTimeRange(v *TimestampRange) *AssessmentRunFilter { + s.StartTimeRange = v + return s +} + +// SetStateChangeTimeRange sets the StateChangeTimeRange field's value. +func (s *AssessmentRunFilter) SetStateChangeTimeRange(v *TimestampRange) *AssessmentRunFilter { + s.StateChangeTimeRange = v + return s +} + +// SetStates sets the States field's value. +func (s *AssessmentRunFilter) SetStates(v []*string) *AssessmentRunFilter { + s.States = v + return s +} + +// Used as one of the elements of the AssessmentRun data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunNotification +type AssessmentRunNotification struct { + _ struct{} `type:"structure"` + + // The date of the notification. + // + // Date is a required field + Date *time.Time `locationName:"date" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The Boolean value that specifies whether the notification represents an error. + // + // Error is a required field + Error *bool `locationName:"error" type:"boolean" required:"true"` + + // The event for which a notification is sent. + // + // Event is a required field + Event *string `locationName:"event" type:"string" required:"true" enum:"Event"` + + Message *string `locationName:"message" type:"string"` + + // The status code of the SNS notification. + SnsPublishStatusCode *string `locationName:"snsPublishStatusCode" type:"string" enum:"AssessmentRunNotificationSnsStatusCode"` + + // The SNS topic to which the SNS notification is sent. + SnsTopicArn *string `locationName:"snsTopicArn" min:"1" type:"string"` +} + +// String returns the string representation +func (s AssessmentRunNotification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentRunNotification) GoString() string { + return s.String() +} + +// SetDate sets the Date field's value. +func (s *AssessmentRunNotification) SetDate(v time.Time) *AssessmentRunNotification { + s.Date = &v + return s +} + +// SetError sets the Error field's value. +func (s *AssessmentRunNotification) SetError(v bool) *AssessmentRunNotification { + s.Error = &v + return s +} + +// SetEvent sets the Event field's value. +func (s *AssessmentRunNotification) SetEvent(v string) *AssessmentRunNotification { + s.Event = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *AssessmentRunNotification) SetMessage(v string) *AssessmentRunNotification { + s.Message = &v + return s +} + +// SetSnsPublishStatusCode sets the SnsPublishStatusCode field's value. +func (s *AssessmentRunNotification) SetSnsPublishStatusCode(v string) *AssessmentRunNotification { + s.SnsPublishStatusCode = &v + return s +} + +// SetSnsTopicArn sets the SnsTopicArn field's value. +func (s *AssessmentRunNotification) SetSnsTopicArn(v string) *AssessmentRunNotification { + s.SnsTopicArn = &v + return s +} + +// Used as one of the elements of the AssessmentRun data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunStateChange +type AssessmentRunStateChange struct { + _ struct{} `type:"structure"` + + // The assessment run state. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"AssessmentRunState"` + + // The last time the assessment run state changed. + // + // StateChangedAt is a required field + StateChangedAt *time.Time `locationName:"stateChangedAt" type:"timestamp" timestampFormat:"unix" required:"true"` +} + +// String returns the string representation +func (s AssessmentRunStateChange) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentRunStateChange) GoString() string { + return s.String() +} + +// SetState sets the State field's value. +func (s *AssessmentRunStateChange) SetState(v string) *AssessmentRunStateChange { + s.State = &v + return s +} + +// SetStateChangedAt sets the StateChangedAt field's value. +func (s *AssessmentRunStateChange) SetStateChangedAt(v time.Time) *AssessmentRunStateChange { + s.StateChangedAt = &v + return s +} + +// Contains information about an Amazon Inspector application. This data type +// is used as the response element in the DescribeAssessmentTargets action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTarget +type AssessmentTarget struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the Amazon Inspector assessment target. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // The time at which the assessment target is created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The name of the Amazon Inspector assessment target. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The ARN that specifies the resource group that is associated with the assessment + // target. + // + // ResourceGroupArn is a required field + ResourceGroupArn *string `locationName:"resourceGroupArn" min:"1" type:"string" required:"true"` + + // The time at which UpdateAssessmentTarget is called. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"unix" required:"true"` +} + +// String returns the string representation +func (s AssessmentTarget) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentTarget) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssessmentTarget) SetArn(v string) *AssessmentTarget { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AssessmentTarget) SetCreatedAt(v time.Time) *AssessmentTarget { + s.CreatedAt = &v + return s +} + +// SetName sets the Name field's value. +func (s *AssessmentTarget) SetName(v string) *AssessmentTarget { + s.Name = &v + return s +} + +// SetResourceGroupArn sets the ResourceGroupArn field's value. +func (s *AssessmentTarget) SetResourceGroupArn(v string) *AssessmentTarget { + s.ResourceGroupArn = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AssessmentTarget) SetUpdatedAt(v time.Time) *AssessmentTarget { + s.UpdatedAt = &v + return s +} + +// Used as the request parameter in the ListAssessmentTargets action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTargetFilter +type AssessmentTargetFilter struct { + _ struct{} `type:"structure"` + + // For a record to match a filter, an explicit value or a string that contains + // a wildcard that is specified for this data type property must match the value + // of the assessmentTargetName property of the AssessmentTarget data type. + AssessmentTargetNamePattern *string `locationName:"assessmentTargetNamePattern" min:"1" type:"string"` +} + +// String returns the string representation +func (s AssessmentTargetFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentTargetFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssessmentTargetFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssessmentTargetFilter"} + if s.AssessmentTargetNamePattern != nil && len(*s.AssessmentTargetNamePattern) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetNamePattern", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetNamePattern sets the AssessmentTargetNamePattern field's value. +func (s *AssessmentTargetFilter) SetAssessmentTargetNamePattern(v string) *AssessmentTargetFilter { + s.AssessmentTargetNamePattern = &v + return s +} + +// Contains information about an Amazon Inspector assessment template. This +// data type is used as the response element in the DescribeAssessmentTemplates +// action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTemplate +type AssessmentTemplate struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment template. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // The ARN of the assessment target that corresponds to this assessment template. + // + // AssessmentTargetArn is a required field + AssessmentTargetArn *string `locationName:"assessmentTargetArn" min:"1" type:"string" required:"true"` + + // The time at which the assessment template is created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The duration in seconds specified for this assessment tempate. The default + // value is 3600 seconds (one hour). The maximum value is 86400 seconds (one + // day). + // + // DurationInSeconds is a required field + DurationInSeconds *int64 `locationName:"durationInSeconds" min:"180" type:"integer" required:"true"` + + // The name of the assessment template. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The rules packages that are specified for this assessment template. + // + // RulesPackageArns is a required field + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list" required:"true"` + + // The user-defined attributes that are assigned to every generated finding + // from the assessment run that uses this assessment template. + // + // UserAttributesForFindings is a required field + UserAttributesForFindings []*Attribute `locationName:"userAttributesForFindings" type:"list" required:"true"` +} + +// String returns the string representation +func (s AssessmentTemplate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentTemplate) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssessmentTemplate) SetArn(v string) *AssessmentTemplate { + s.Arn = &v + return s +} + +// SetAssessmentTargetArn sets the AssessmentTargetArn field's value. +func (s *AssessmentTemplate) SetAssessmentTargetArn(v string) *AssessmentTemplate { + s.AssessmentTargetArn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AssessmentTemplate) SetCreatedAt(v time.Time) *AssessmentTemplate { + s.CreatedAt = &v + return s +} + +// SetDurationInSeconds sets the DurationInSeconds field's value. +func (s *AssessmentTemplate) SetDurationInSeconds(v int64) *AssessmentTemplate { + s.DurationInSeconds = &v + return s +} + +// SetName sets the Name field's value. +func (s *AssessmentTemplate) SetName(v string) *AssessmentTemplate { + s.Name = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *AssessmentTemplate) SetRulesPackageArns(v []*string) *AssessmentTemplate { + s.RulesPackageArns = v + return s +} + +// SetUserAttributesForFindings sets the UserAttributesForFindings field's value. +func (s *AssessmentTemplate) SetUserAttributesForFindings(v []*Attribute) *AssessmentTemplate { + s.UserAttributesForFindings = v + return s +} + +// Used as the request parameter in the ListAssessmentTemplates action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTemplateFilter +type AssessmentTemplateFilter struct { + _ struct{} `type:"structure"` + + // For a record to match a filter, the value specified for this data type property + // must inclusively match any value between the specified minimum and maximum + // values of the durationInSeconds property of the AssessmentTemplate data type. + DurationRange *DurationRange `locationName:"durationRange" type:"structure"` + + // For a record to match a filter, an explicit value or a string that contains + // a wildcard that is specified for this data type property must match the value + // of the assessmentTemplateName property of the AssessmentTemplate data type. + NamePattern *string `locationName:"namePattern" min:"1" type:"string"` + + // For a record to match a filter, the values that are specified for this data + // type property must be contained in the list of values of the rulesPackageArns + // property of the AssessmentTemplate data type. + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list"` +} + +// String returns the string representation +func (s AssessmentTemplateFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssessmentTemplateFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssessmentTemplateFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssessmentTemplateFilter"} + if s.NamePattern != nil && len(*s.NamePattern) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NamePattern", 1)) + } + if s.DurationRange != nil { + if err := s.DurationRange.Validate(); err != nil { + invalidParams.AddNested("DurationRange", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDurationRange sets the DurationRange field's value. +func (s *AssessmentTemplateFilter) SetDurationRange(v *DurationRange) *AssessmentTemplateFilter { + s.DurationRange = v + return s +} + +// SetNamePattern sets the NamePattern field's value. +func (s *AssessmentTemplateFilter) SetNamePattern(v string) *AssessmentTemplateFilter { + s.NamePattern = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *AssessmentTemplateFilter) SetRulesPackageArns(v []*string) *AssessmentTemplateFilter { + s.RulesPackageArns = v + return s +} + +// A collection of attributes of the host from which the finding is generated. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssetAttributes +type AssetAttributes struct { + _ struct{} `type:"structure"` + + // The ID of the agent that is installed on the EC2 instance where the finding + // is generated. + AgentId *string `locationName:"agentId" min:"1" type:"string"` + + // The ID of the Amazon Machine Image (AMI) that is installed on the EC2 instance + // where the finding is generated. + AmiId *string `locationName:"amiId" type:"string"` + + // The Auto Scaling group of the EC2 instance where the finding is generated. + AutoScalingGroup *string `locationName:"autoScalingGroup" min:"1" type:"string"` + + // The hostname of the EC2 instance where the finding is generated. + Hostname *string `locationName:"hostname" type:"string"` + + // The list of IP v4 addresses of the EC2 instance where the finding is generated. + Ipv4Addresses []*string `locationName:"ipv4Addresses" type:"list"` + + // The schema version of this data type. + // + // SchemaVersion is a required field + SchemaVersion *int64 `locationName:"schemaVersion" type:"integer" required:"true"` +} + +// String returns the string representation +func (s AssetAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssetAttributes) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *AssetAttributes) SetAgentId(v string) *AssetAttributes { + s.AgentId = &v + return s +} + +// SetAmiId sets the AmiId field's value. +func (s *AssetAttributes) SetAmiId(v string) *AssetAttributes { + s.AmiId = &v + return s +} + +// SetAutoScalingGroup sets the AutoScalingGroup field's value. +func (s *AssetAttributes) SetAutoScalingGroup(v string) *AssetAttributes { + s.AutoScalingGroup = &v + return s +} + +// SetHostname sets the Hostname field's value. +func (s *AssetAttributes) SetHostname(v string) *AssetAttributes { + s.Hostname = &v + return s +} + +// SetIpv4Addresses sets the Ipv4Addresses field's value. +func (s *AssetAttributes) SetIpv4Addresses(v []*string) *AssetAttributes { + s.Ipv4Addresses = v + return s +} + +// SetSchemaVersion sets the SchemaVersion field's value. +func (s *AssetAttributes) SetSchemaVersion(v int64) *AssetAttributes { + s.SchemaVersion = &v + return s +} + +// This data type is used as a request parameter in the AddAttributesToFindings +// and CreateAssessmentTemplate actions. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Attribute +type Attribute struct { + _ struct{} `type:"structure"` + + // The attribute key. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The value assigned to the attribute key. + Value *string `locationName:"value" min:"1" type:"string"` +} + +// String returns the string representation +func (s Attribute) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Attribute) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Attribute) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Attribute"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Attribute) SetKey(v string) *Attribute { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Attribute) SetValue(v string) *Attribute { + s.Value = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTargetRequest +type CreateAssessmentTargetInput struct { + _ struct{} `type:"structure"` + + // The user-defined name that identifies the assessment target that you want + // to create. The name must be unique within the AWS account. + // + // AssessmentTargetName is a required field + AssessmentTargetName *string `locationName:"assessmentTargetName" min:"1" type:"string" required:"true"` + + // The ARN that specifies the resource group that is used to create the assessment + // target. + // + // ResourceGroupArn is a required field + ResourceGroupArn *string `locationName:"resourceGroupArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAssessmentTargetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAssessmentTargetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAssessmentTargetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAssessmentTargetInput"} + if s.AssessmentTargetName == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetName")) + } + if s.AssessmentTargetName != nil && len(*s.AssessmentTargetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetName", 1)) + } + if s.ResourceGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceGroupArn")) + } + if s.ResourceGroupArn != nil && len(*s.ResourceGroupArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceGroupArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetName sets the AssessmentTargetName field's value. +func (s *CreateAssessmentTargetInput) SetAssessmentTargetName(v string) *CreateAssessmentTargetInput { + s.AssessmentTargetName = &v + return s +} + +// SetResourceGroupArn sets the ResourceGroupArn field's value. +func (s *CreateAssessmentTargetInput) SetResourceGroupArn(v string) *CreateAssessmentTargetInput { + s.ResourceGroupArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTargetResponse +type CreateAssessmentTargetOutput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment target that is created. + // + // AssessmentTargetArn is a required field + AssessmentTargetArn *string `locationName:"assessmentTargetArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAssessmentTargetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAssessmentTargetOutput) GoString() string { + return s.String() +} + +// SetAssessmentTargetArn sets the AssessmentTargetArn field's value. +func (s *CreateAssessmentTargetOutput) SetAssessmentTargetArn(v string) *CreateAssessmentTargetOutput { + s.AssessmentTargetArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplateRequest +type CreateAssessmentTemplateInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment target for which you want to create + // the assessment template. + // + // AssessmentTargetArn is a required field + AssessmentTargetArn *string `locationName:"assessmentTargetArn" min:"1" type:"string" required:"true"` + + // The user-defined name that identifies the assessment template that you want + // to create. You can create several assessment templates for an assessment + // target. The names of the assessment templates that correspond to a particular + // assessment target must be unique. + // + // AssessmentTemplateName is a required field + AssessmentTemplateName *string `locationName:"assessmentTemplateName" min:"1" type:"string" required:"true"` + + // The duration of the assessment run in seconds. The default value is 3600 + // seconds (one hour). + // + // DurationInSeconds is a required field + DurationInSeconds *int64 `locationName:"durationInSeconds" min:"180" type:"integer" required:"true"` + + // The ARNs that specify the rules packages that you want to attach to the assessment + // template. + // + // RulesPackageArns is a required field + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list" required:"true"` + + // The user-defined attributes that are assigned to every finding that is generated + // by the assessment run that uses this assessment template. + UserAttributesForFindings []*Attribute `locationName:"userAttributesForFindings" type:"list"` +} + +// String returns the string representation +func (s CreateAssessmentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAssessmentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAssessmentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAssessmentTemplateInput"} + if s.AssessmentTargetArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetArn")) + } + if s.AssessmentTargetArn != nil && len(*s.AssessmentTargetArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetArn", 1)) + } + if s.AssessmentTemplateName == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTemplateName")) + } + if s.AssessmentTemplateName != nil && len(*s.AssessmentTemplateName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTemplateName", 1)) + } + if s.DurationInSeconds == nil { + invalidParams.Add(request.NewErrParamRequired("DurationInSeconds")) + } + if s.DurationInSeconds != nil && *s.DurationInSeconds < 180 { + invalidParams.Add(request.NewErrParamMinValue("DurationInSeconds", 180)) + } + if s.RulesPackageArns == nil { + invalidParams.Add(request.NewErrParamRequired("RulesPackageArns")) + } + if s.UserAttributesForFindings != nil { + for i, v := range s.UserAttributesForFindings { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserAttributesForFindings", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetArn sets the AssessmentTargetArn field's value. +func (s *CreateAssessmentTemplateInput) SetAssessmentTargetArn(v string) *CreateAssessmentTemplateInput { + s.AssessmentTargetArn = &v + return s +} + +// SetAssessmentTemplateName sets the AssessmentTemplateName field's value. +func (s *CreateAssessmentTemplateInput) SetAssessmentTemplateName(v string) *CreateAssessmentTemplateInput { + s.AssessmentTemplateName = &v + return s +} + +// SetDurationInSeconds sets the DurationInSeconds field's value. +func (s *CreateAssessmentTemplateInput) SetDurationInSeconds(v int64) *CreateAssessmentTemplateInput { + s.DurationInSeconds = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *CreateAssessmentTemplateInput) SetRulesPackageArns(v []*string) *CreateAssessmentTemplateInput { + s.RulesPackageArns = v + return s +} + +// SetUserAttributesForFindings sets the UserAttributesForFindings field's value. +func (s *CreateAssessmentTemplateInput) SetUserAttributesForFindings(v []*Attribute) *CreateAssessmentTemplateInput { + s.UserAttributesForFindings = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplateResponse +type CreateAssessmentTemplateOutput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment template that is created. + // + // AssessmentTemplateArn is a required field + AssessmentTemplateArn *string `locationName:"assessmentTemplateArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateAssessmentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAssessmentTemplateOutput) GoString() string { + return s.String() +} + +// SetAssessmentTemplateArn sets the AssessmentTemplateArn field's value. +func (s *CreateAssessmentTemplateOutput) SetAssessmentTemplateArn(v string) *CreateAssessmentTemplateOutput { + s.AssessmentTemplateArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroupRequest +type CreateResourceGroupInput struct { + _ struct{} `type:"structure"` + + // A collection of keys and an array of possible values, '[{"key":"key1","values":["Value1","Value2"]},{"key":"Key2","values":["Value3"]}]'. + // + // For example,'[{"key":"Name","values":["TestEC2Instance"]}]'. + // + // ResourceGroupTags is a required field + ResourceGroupTags []*ResourceGroupTag `locationName:"resourceGroupTags" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateResourceGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateResourceGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateResourceGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateResourceGroupInput"} + if s.ResourceGroupTags == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceGroupTags")) + } + if s.ResourceGroupTags != nil && len(s.ResourceGroupTags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceGroupTags", 1)) + } + if s.ResourceGroupTags != nil { + for i, v := range s.ResourceGroupTags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceGroupTags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceGroupTags sets the ResourceGroupTags field's value. +func (s *CreateResourceGroupInput) SetResourceGroupTags(v []*ResourceGroupTag) *CreateResourceGroupInput { + s.ResourceGroupTags = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroupResponse +type CreateResourceGroupOutput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the resource group that is created. + // + // ResourceGroupArn is a required field + ResourceGroupArn *string `locationName:"resourceGroupArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateResourceGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateResourceGroupOutput) GoString() string { + return s.String() +} + +// SetResourceGroupArn sets the ResourceGroupArn field's value. +func (s *CreateResourceGroupOutput) SetResourceGroupArn(v string) *CreateResourceGroupOutput { + s.ResourceGroupArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRunRequest +type DeleteAssessmentRunInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment run that you want to delete. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAssessmentRunInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentRunInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAssessmentRunInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAssessmentRunInput"} + if s.AssessmentRunArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentRunArn")) + } + if s.AssessmentRunArn != nil && len(*s.AssessmentRunArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *DeleteAssessmentRunInput) SetAssessmentRunArn(v string) *DeleteAssessmentRunInput { + s.AssessmentRunArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRunOutput +type DeleteAssessmentRunOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAssessmentRunOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentRunOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTargetRequest +type DeleteAssessmentTargetInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment target that you want to delete. + // + // AssessmentTargetArn is a required field + AssessmentTargetArn *string `locationName:"assessmentTargetArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAssessmentTargetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentTargetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAssessmentTargetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAssessmentTargetInput"} + if s.AssessmentTargetArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetArn")) + } + if s.AssessmentTargetArn != nil && len(*s.AssessmentTargetArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetArn sets the AssessmentTargetArn field's value. +func (s *DeleteAssessmentTargetInput) SetAssessmentTargetArn(v string) *DeleteAssessmentTargetInput { + s.AssessmentTargetArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTargetOutput +type DeleteAssessmentTargetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAssessmentTargetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentTargetOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplateRequest +type DeleteAssessmentTemplateInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment template that you want to delete. + // + // AssessmentTemplateArn is a required field + AssessmentTemplateArn *string `locationName:"assessmentTemplateArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAssessmentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAssessmentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAssessmentTemplateInput"} + if s.AssessmentTemplateArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTemplateArn")) + } + if s.AssessmentTemplateArn != nil && len(*s.AssessmentTemplateArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTemplateArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTemplateArn sets the AssessmentTemplateArn field's value. +func (s *DeleteAssessmentTemplateInput) SetAssessmentTemplateArn(v string) *DeleteAssessmentTemplateInput { + s.AssessmentTemplateArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplateOutput +type DeleteAssessmentTemplateOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAssessmentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAssessmentTemplateOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRunsRequest +type DescribeAssessmentRunsInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment run that you want to describe. + // + // AssessmentRunArns is a required field + AssessmentRunArns []*string `locationName:"assessmentRunArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentRunsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentRunsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAssessmentRunsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAssessmentRunsInput"} + if s.AssessmentRunArns == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentRunArns")) + } + if s.AssessmentRunArns != nil && len(s.AssessmentRunArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArns sets the AssessmentRunArns field's value. +func (s *DescribeAssessmentRunsInput) SetAssessmentRunArns(v []*string) *DescribeAssessmentRunsInput { + s.AssessmentRunArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRunsResponse +type DescribeAssessmentRunsOutput struct { + _ struct{} `type:"structure"` + + // Information about the assessment run. + // + // AssessmentRuns is a required field + AssessmentRuns []*AssessmentRun `locationName:"assessmentRuns" type:"list" required:"true"` + + // Assessment run details that cannot be described. An error code is provided + // for each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentRunsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentRunsOutput) GoString() string { + return s.String() +} + +// SetAssessmentRuns sets the AssessmentRuns field's value. +func (s *DescribeAssessmentRunsOutput) SetAssessmentRuns(v []*AssessmentRun) *DescribeAssessmentRunsOutput { + s.AssessmentRuns = v + return s +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeAssessmentRunsOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeAssessmentRunsOutput { + s.FailedItems = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargetsRequest +type DescribeAssessmentTargetsInput struct { + _ struct{} `type:"structure"` + + // The ARNs that specifies the assessment targets that you want to describe. + // + // AssessmentTargetArns is a required field + AssessmentTargetArns []*string `locationName:"assessmentTargetArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentTargetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAssessmentTargetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAssessmentTargetsInput"} + if s.AssessmentTargetArns == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetArns")) + } + if s.AssessmentTargetArns != nil && len(s.AssessmentTargetArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetArns sets the AssessmentTargetArns field's value. +func (s *DescribeAssessmentTargetsInput) SetAssessmentTargetArns(v []*string) *DescribeAssessmentTargetsInput { + s.AssessmentTargetArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargetsResponse +type DescribeAssessmentTargetsOutput struct { + _ struct{} `type:"structure"` + + // Information about the assessment targets. + // + // AssessmentTargets is a required field + AssessmentTargets []*AssessmentTarget `locationName:"assessmentTargets" type:"list" required:"true"` + + // Assessment target details that cannot be described. An error code is provided + // for each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentTargetsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentTargetsOutput) GoString() string { + return s.String() +} + +// SetAssessmentTargets sets the AssessmentTargets field's value. +func (s *DescribeAssessmentTargetsOutput) SetAssessmentTargets(v []*AssessmentTarget) *DescribeAssessmentTargetsOutput { + s.AssessmentTargets = v + return s +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeAssessmentTargetsOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeAssessmentTargetsOutput { + s.FailedItems = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplatesRequest +type DescribeAssessmentTemplatesInput struct { + _ struct{} `type:"structure"` + + // AssessmentTemplateArns is a required field + AssessmentTemplateArns []*string `locationName:"assessmentTemplateArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAssessmentTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAssessmentTemplatesInput"} + if s.AssessmentTemplateArns == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTemplateArns")) + } + if s.AssessmentTemplateArns != nil && len(s.AssessmentTemplateArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTemplateArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTemplateArns sets the AssessmentTemplateArns field's value. +func (s *DescribeAssessmentTemplatesInput) SetAssessmentTemplateArns(v []*string) *DescribeAssessmentTemplatesInput { + s.AssessmentTemplateArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplatesResponse +type DescribeAssessmentTemplatesOutput struct { + _ struct{} `type:"structure"` + + // Information about the assessment templates. + // + // AssessmentTemplates is a required field + AssessmentTemplates []*AssessmentTemplate `locationName:"assessmentTemplates" type:"list" required:"true"` + + // Assessment template details that cannot be described. An error code is provided + // for each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` +} + +// String returns the string representation +func (s DescribeAssessmentTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAssessmentTemplatesOutput) GoString() string { + return s.String() +} + +// SetAssessmentTemplates sets the AssessmentTemplates field's value. +func (s *DescribeAssessmentTemplatesOutput) SetAssessmentTemplates(v []*AssessmentTemplate) *DescribeAssessmentTemplatesOutput { + s.AssessmentTemplates = v + return s +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeAssessmentTemplatesOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeAssessmentTemplatesOutput { + s.FailedItems = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRoleInput +type DescribeCrossAccountAccessRoleInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DescribeCrossAccountAccessRoleInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeCrossAccountAccessRoleInput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRoleResponse +type DescribeCrossAccountAccessRoleOutput struct { + _ struct{} `type:"structure"` + + // The date when the cross-account access role was registered. + // + // RegisteredAt is a required field + RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The ARN that specifies the IAM role that Amazon Inspector uses to access + // your AWS account. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"` + + // A Boolean value that specifies whether the IAM role has the necessary policies + // attached to enable Amazon Inspector to access your AWS account. + // + // Valid is a required field + Valid *bool `locationName:"valid" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s DescribeCrossAccountAccessRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeCrossAccountAccessRoleOutput) GoString() string { + return s.String() +} + +// SetRegisteredAt sets the RegisteredAt field's value. +func (s *DescribeCrossAccountAccessRoleOutput) SetRegisteredAt(v time.Time) *DescribeCrossAccountAccessRoleOutput { + s.RegisteredAt = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *DescribeCrossAccountAccessRoleOutput) SetRoleArn(v string) *DescribeCrossAccountAccessRoleOutput { + s.RoleArn = &v + return s +} + +// SetValid sets the Valid field's value. +func (s *DescribeCrossAccountAccessRoleOutput) SetValid(v bool) *DescribeCrossAccountAccessRoleOutput { + s.Valid = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindingsRequest +type DescribeFindingsInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the finding that you want to describe. + // + // FindingArns is a required field + FindingArns []*string `locationName:"findingArns" min:"1" type:"list" required:"true"` + + // The locale into which you want to translate a finding description, recommendation, + // and the short description that identifies the finding. + Locale *string `locationName:"locale" type:"string" enum:"Locale"` +} + +// String returns the string representation +func (s DescribeFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFindingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFindingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFindingsInput"} + if s.FindingArns == nil { + invalidParams.Add(request.NewErrParamRequired("FindingArns")) + } + if s.FindingArns != nil && len(s.FindingArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FindingArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFindingArns sets the FindingArns field's value. +func (s *DescribeFindingsInput) SetFindingArns(v []*string) *DescribeFindingsInput { + s.FindingArns = v + return s +} + +// SetLocale sets the Locale field's value. +func (s *DescribeFindingsInput) SetLocale(v string) *DescribeFindingsInput { + s.Locale = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindingsResponse +type DescribeFindingsOutput struct { + _ struct{} `type:"structure"` + + // Finding details that cannot be described. An error code is provided for each + // failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` + + // Information about the finding. + // + // Findings is a required field + Findings []*Finding `locationName:"findings" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFindingsOutput) GoString() string { + return s.String() +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeFindingsOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeFindingsOutput { + s.FailedItems = v + return s +} + +// SetFindings sets the Findings field's value. +func (s *DescribeFindingsOutput) SetFindings(v []*Finding) *DescribeFindingsOutput { + s.Findings = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroupsRequest +type DescribeResourceGroupsInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the resource group that you want to describe. + // + // ResourceGroupArns is a required field + ResourceGroupArns []*string `locationName:"resourceGroupArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeResourceGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeResourceGroupsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeResourceGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeResourceGroupsInput"} + if s.ResourceGroupArns == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceGroupArns")) + } + if s.ResourceGroupArns != nil && len(s.ResourceGroupArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceGroupArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceGroupArns sets the ResourceGroupArns field's value. +func (s *DescribeResourceGroupsInput) SetResourceGroupArns(v []*string) *DescribeResourceGroupsInput { + s.ResourceGroupArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroupsResponse +type DescribeResourceGroupsOutput struct { + _ struct{} `type:"structure"` + + // Resource group details that cannot be described. An error code is provided + // for each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` + + // Information about a resource group. + // + // ResourceGroups is a required field + ResourceGroups []*ResourceGroup `locationName:"resourceGroups" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeResourceGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeResourceGroupsOutput) GoString() string { + return s.String() +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeResourceGroupsOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeResourceGroupsOutput { + s.FailedItems = v + return s +} + +// SetResourceGroups sets the ResourceGroups field's value. +func (s *DescribeResourceGroupsOutput) SetResourceGroups(v []*ResourceGroup) *DescribeResourceGroupsOutput { + s.ResourceGroups = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackagesRequest +type DescribeRulesPackagesInput struct { + _ struct{} `type:"structure"` + + // The locale that you want to translate a rules package description into. + Locale *string `locationName:"locale" type:"string" enum:"Locale"` + + // The ARN that specifies the rules package that you want to describe. + // + // RulesPackageArns is a required field + RulesPackageArns []*string `locationName:"rulesPackageArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeRulesPackagesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeRulesPackagesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeRulesPackagesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeRulesPackagesInput"} + if s.RulesPackageArns == nil { + invalidParams.Add(request.NewErrParamRequired("RulesPackageArns")) + } + if s.RulesPackageArns != nil && len(s.RulesPackageArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RulesPackageArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLocale sets the Locale field's value. +func (s *DescribeRulesPackagesInput) SetLocale(v string) *DescribeRulesPackagesInput { + s.Locale = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *DescribeRulesPackagesInput) SetRulesPackageArns(v []*string) *DescribeRulesPackagesInput { + s.RulesPackageArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackagesResponse +type DescribeRulesPackagesOutput struct { + _ struct{} `type:"structure"` + + // Rules package details that cannot be described. An error code is provided + // for each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` + + // Information about the rules package. + // + // RulesPackages is a required field + RulesPackages []*RulesPackage `locationName:"rulesPackages" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeRulesPackagesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeRulesPackagesOutput) GoString() string { + return s.String() +} + +// SetFailedItems sets the FailedItems field's value. +func (s *DescribeRulesPackagesOutput) SetFailedItems(v map[string]*FailedItemDetails) *DescribeRulesPackagesOutput { + s.FailedItems = v + return s +} + +// SetRulesPackages sets the RulesPackages field's value. +func (s *DescribeRulesPackagesOutput) SetRulesPackages(v []*RulesPackage) *DescribeRulesPackagesOutput { + s.RulesPackages = v + return s +} + +// This data type is used in the AssessmentTemplateFilter data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DurationRange +type DurationRange struct { + _ struct{} `type:"structure"` + + // The maximum value of the duration range. Must be less than or equal to 604800 + // seconds (1 week). + MaxSeconds *int64 `locationName:"maxSeconds" min:"180" type:"integer"` + + // The minimum value of the duration range. Must be greater than zero. + MinSeconds *int64 `locationName:"minSeconds" min:"180" type:"integer"` +} + +// String returns the string representation +func (s DurationRange) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DurationRange) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DurationRange) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DurationRange"} + if s.MaxSeconds != nil && *s.MaxSeconds < 180 { + invalidParams.Add(request.NewErrParamMinValue("MaxSeconds", 180)) + } + if s.MinSeconds != nil && *s.MinSeconds < 180 { + invalidParams.Add(request.NewErrParamMinValue("MinSeconds", 180)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxSeconds sets the MaxSeconds field's value. +func (s *DurationRange) SetMaxSeconds(v int64) *DurationRange { + s.MaxSeconds = &v + return s +} + +// SetMinSeconds sets the MinSeconds field's value. +func (s *DurationRange) SetMinSeconds(v int64) *DurationRange { + s.MinSeconds = &v + return s +} + +// This data type is used in the Subscription data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/EventSubscription +type EventSubscription struct { + _ struct{} `type:"structure"` + + // The event for which Amazon Simple Notification Service (SNS) notifications + // are sent. + // + // Event is a required field + Event *string `locationName:"event" type:"string" required:"true" enum:"Event"` + + // The time at which SubscribeToEvent is called. + // + // SubscribedAt is a required field + SubscribedAt *time.Time `locationName:"subscribedAt" type:"timestamp" timestampFormat:"unix" required:"true"` +} + +// String returns the string representation +func (s EventSubscription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EventSubscription) GoString() string { + return s.String() +} + +// SetEvent sets the Event field's value. +func (s *EventSubscription) SetEvent(v string) *EventSubscription { + s.Event = &v + return s +} + +// SetSubscribedAt sets the SubscribedAt field's value. +func (s *EventSubscription) SetSubscribedAt(v time.Time) *EventSubscription { + s.SubscribedAt = &v + return s +} + +// Includes details about the failed items. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/FailedItemDetails +type FailedItemDetails struct { + _ struct{} `type:"structure"` + + // The status code of a failed item. + // + // FailureCode is a required field + FailureCode *string `locationName:"failureCode" type:"string" required:"true" enum:"FailedItemErrorCode"` + + // Indicates whether you can immediately retry a request for this item for a + // specified resource. + // + // Retryable is a required field + Retryable *bool `locationName:"retryable" type:"boolean" required:"true"` +} + +// String returns the string representation +func (s FailedItemDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FailedItemDetails) GoString() string { + return s.String() +} + +// SetFailureCode sets the FailureCode field's value. +func (s *FailedItemDetails) SetFailureCode(v string) *FailedItemDetails { + s.FailureCode = &v + return s +} + +// SetRetryable sets the Retryable field's value. +func (s *FailedItemDetails) SetRetryable(v bool) *FailedItemDetails { + s.Retryable = &v + return s +} + +// Contains information about an Amazon Inspector finding. This data type is +// used as the response element in the DescribeFindings action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Finding +type Finding struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the finding. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // A collection of attributes of the host from which the finding is generated. + AssetAttributes *AssetAttributes `locationName:"assetAttributes" type:"structure"` + + // The type of the host from which the finding is generated. + AssetType *string `locationName:"assetType" type:"string" enum:"AssetType"` + + // The system-defined attributes for the finding. + // + // Attributes is a required field + Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"` + + // This data element is currently not used. + Confidence *int64 `locationName:"confidence" type:"integer"` + + // The time when the finding was generated. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The description of the finding. + Description *string `locationName:"description" type:"string"` + + // The ID of the finding. + Id *string `locationName:"id" type:"string"` + + // This data element is currently not used. + IndicatorOfCompromise *bool `locationName:"indicatorOfCompromise" type:"boolean"` + + // The numeric value of the finding severity. + NumericSeverity *float64 `locationName:"numericSeverity" type:"double"` + + // The recommendation for the finding. + Recommendation *string `locationName:"recommendation" type:"string"` + + // The schema version of this data type. + SchemaVersion *int64 `locationName:"schemaVersion" type:"integer"` + + // The data element is set to "Inspector". + Service *string `locationName:"service" type:"string"` + + // This data type is used in the Finding data type. + ServiceAttributes *ServiceAttributes `locationName:"serviceAttributes" type:"structure"` + + // The finding severity. Values can be set to High, Medium, Low, and Informational. + Severity *string `locationName:"severity" type:"string" enum:"Severity"` + + // The name of the finding. + Title *string `locationName:"title" type:"string"` + + // The time when AddAttributesToFindings is called. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The user-defined attributes that are assigned to the finding. + // + // UserAttributes is a required field + UserAttributes []*Attribute `locationName:"userAttributes" type:"list" required:"true"` +} + +// String returns the string representation +func (s Finding) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Finding) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Finding) SetArn(v string) *Finding { + s.Arn = &v + return s +} + +// SetAssetAttributes sets the AssetAttributes field's value. +func (s *Finding) SetAssetAttributes(v *AssetAttributes) *Finding { + s.AssetAttributes = v + return s +} + +// SetAssetType sets the AssetType field's value. +func (s *Finding) SetAssetType(v string) *Finding { + s.AssetType = &v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *Finding) SetAttributes(v []*Attribute) *Finding { + s.Attributes = v + return s +} + +// SetConfidence sets the Confidence field's value. +func (s *Finding) SetConfidence(v int64) *Finding { + s.Confidence = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Finding) SetCreatedAt(v time.Time) *Finding { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Finding) SetDescription(v string) *Finding { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *Finding) SetId(v string) *Finding { + s.Id = &v + return s +} + +// SetIndicatorOfCompromise sets the IndicatorOfCompromise field's value. +func (s *Finding) SetIndicatorOfCompromise(v bool) *Finding { + s.IndicatorOfCompromise = &v + return s +} + +// SetNumericSeverity sets the NumericSeverity field's value. +func (s *Finding) SetNumericSeverity(v float64) *Finding { + s.NumericSeverity = &v + return s +} + +// SetRecommendation sets the Recommendation field's value. +func (s *Finding) SetRecommendation(v string) *Finding { + s.Recommendation = &v + return s +} + +// SetSchemaVersion sets the SchemaVersion field's value. +func (s *Finding) SetSchemaVersion(v int64) *Finding { + s.SchemaVersion = &v + return s +} + +// SetService sets the Service field's value. +func (s *Finding) SetService(v string) *Finding { + s.Service = &v + return s +} + +// SetServiceAttributes sets the ServiceAttributes field's value. +func (s *Finding) SetServiceAttributes(v *ServiceAttributes) *Finding { + s.ServiceAttributes = v + return s +} + +// SetSeverity sets the Severity field's value. +func (s *Finding) SetSeverity(v string) *Finding { + s.Severity = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *Finding) SetTitle(v string) *Finding { + s.Title = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Finding) SetUpdatedAt(v time.Time) *Finding { + s.UpdatedAt = &v + return s +} + +// SetUserAttributes sets the UserAttributes field's value. +func (s *Finding) SetUserAttributes(v []*Attribute) *Finding { + s.UserAttributes = v + return s +} + +// This data type is used as a request parameter in the ListFindings action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/FindingFilter +type FindingFilter struct { + _ struct{} `type:"structure"` + + // For a record to match a filter, one of the values that is specified for this + // data type property must be the exact match of the value of the agentId property + // of the Finding data type. + AgentIds []*string `locationName:"agentIds" type:"list"` + + // For a record to match a filter, the list of values that are specified for + // this data type property must be contained in the list of values of the attributes + // property of the Finding data type. + Attributes []*Attribute `locationName:"attributes" type:"list"` + + // For a record to match a filter, one of the values that is specified for this + // data type property must be the exact match of the value of the autoScalingGroup + // property of the Finding data type. + AutoScalingGroups []*string `locationName:"autoScalingGroups" type:"list"` + + // The time range during which the finding is generated. + CreationTimeRange *TimestampRange `locationName:"creationTimeRange" type:"structure"` + + // For a record to match a filter, one of the values that is specified for this + // data type property must be the exact match of the value of the ruleName property + // of the Finding data type. + RuleNames []*string `locationName:"ruleNames" type:"list"` + + // For a record to match a filter, one of the values that is specified for this + // data type property must be the exact match of the value of the rulesPackageArn + // property of the Finding data type. + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list"` + + // For a record to match a filter, one of the values that is specified for this + // data type property must be the exact match of the value of the severity property + // of the Finding data type. + Severities []*string `locationName:"severities" type:"list"` + + // For a record to match a filter, the value that is specified for this data + // type property must be contained in the list of values of the userAttributes + // property of the Finding data type. + UserAttributes []*Attribute `locationName:"userAttributes" type:"list"` +} + +// String returns the string representation +func (s FindingFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FindingFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FindingFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FindingFilter"} + if s.Attributes != nil { + for i, v := range s.Attributes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams)) + } + } + } + if s.UserAttributes != nil { + for i, v := range s.UserAttributes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserAttributes", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentIds sets the AgentIds field's value. +func (s *FindingFilter) SetAgentIds(v []*string) *FindingFilter { + s.AgentIds = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *FindingFilter) SetAttributes(v []*Attribute) *FindingFilter { + s.Attributes = v + return s +} + +// SetAutoScalingGroups sets the AutoScalingGroups field's value. +func (s *FindingFilter) SetAutoScalingGroups(v []*string) *FindingFilter { + s.AutoScalingGroups = v + return s +} + +// SetCreationTimeRange sets the CreationTimeRange field's value. +func (s *FindingFilter) SetCreationTimeRange(v *TimestampRange) *FindingFilter { + s.CreationTimeRange = v + return s +} + +// SetRuleNames sets the RuleNames field's value. +func (s *FindingFilter) SetRuleNames(v []*string) *FindingFilter { + s.RuleNames = v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *FindingFilter) SetRulesPackageArns(v []*string) *FindingFilter { + s.RulesPackageArns = v + return s +} + +// SetSeverities sets the Severities field's value. +func (s *FindingFilter) SetSeverities(v []*string) *FindingFilter { + s.Severities = v + return s +} + +// SetUserAttributes sets the UserAttributes field's value. +func (s *FindingFilter) SetUserAttributes(v []*Attribute) *FindingFilter { + s.UserAttributes = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadataRequest +type GetTelemetryMetadataInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment run that has the telemetry data that + // you want to obtain. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetTelemetryMetadataInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTelemetryMetadataInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTelemetryMetadataInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTelemetryMetadataInput"} + if s.AssessmentRunArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentRunArn")) + } + if s.AssessmentRunArn != nil && len(*s.AssessmentRunArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *GetTelemetryMetadataInput) SetAssessmentRunArn(v string) *GetTelemetryMetadataInput { + s.AssessmentRunArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadataResponse +type GetTelemetryMetadataOutput struct { + _ struct{} `type:"structure"` + + // Telemetry details. + // + // TelemetryMetadata is a required field + TelemetryMetadata []*TelemetryMetadata `locationName:"telemetryMetadata" type:"list" required:"true"` +} + +// String returns the string representation +func (s GetTelemetryMetadataOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTelemetryMetadataOutput) GoString() string { + return s.String() +} + +// SetTelemetryMetadata sets the TelemetryMetadata field's value. +func (s *GetTelemetryMetadataOutput) SetTelemetryMetadata(v []*TelemetryMetadata) *GetTelemetryMetadataOutput { + s.TelemetryMetadata = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgentsRequest +type ListAssessmentRunAgentsInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment run whose agents you want to list. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` + + // You can use this parameter to specify a subset of data to be included in + // the action's response. + // + // For a record to match a filter, all specified filter attributes must match. + // When multiple values are specified for a filter attribute, any of the values + // can match. + Filter *AgentFilter `locationName:"filter" type:"structure"` + + // You can use this parameter to indicate the maximum number of items that you + // want in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListAssessmentRunAgents action. + // Subsequent calls to the action fill nextToken in the request with the value + // of NextToken from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentRunAgentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentRunAgentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAssessmentRunAgentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAssessmentRunAgentsInput"} + if s.AssessmentRunArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentRunArn")) + } + if s.AssessmentRunArn != nil && len(*s.AssessmentRunArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunArn", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *ListAssessmentRunAgentsInput) SetAssessmentRunArn(v string) *ListAssessmentRunAgentsInput { + s.AssessmentRunArn = &v + return s +} + +// SetFilter sets the Filter field's value. +func (s *ListAssessmentRunAgentsInput) SetFilter(v *AgentFilter) *ListAssessmentRunAgentsInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAssessmentRunAgentsInput) SetMaxResults(v int64) *ListAssessmentRunAgentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentRunAgentsInput) SetNextToken(v string) *ListAssessmentRunAgentsInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgentsResponse +type ListAssessmentRunAgentsOutput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the agents returned by the action. + // + // AssessmentRunAgents is a required field + AssessmentRunAgents []*AssessmentRunAgent `locationName:"assessmentRunAgents" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentRunAgentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentRunAgentsOutput) GoString() string { + return s.String() +} + +// SetAssessmentRunAgents sets the AssessmentRunAgents field's value. +func (s *ListAssessmentRunAgentsOutput) SetAssessmentRunAgents(v []*AssessmentRunAgent) *ListAssessmentRunAgentsOutput { + s.AssessmentRunAgents = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentRunAgentsOutput) SetNextToken(v string) *ListAssessmentRunAgentsOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunsRequest +type ListAssessmentRunsInput struct { + _ struct{} `type:"structure"` + + // The ARNs that specify the assessment templates whose assessment runs you + // want to list. + AssessmentTemplateArns []*string `locationName:"assessmentTemplateArns" type:"list"` + + // You can use this parameter to specify a subset of data to be included in + // the action's response. + // + // For a record to match a filter, all specified filter attributes must match. + // When multiple values are specified for a filter attribute, any of the values + // can match. + Filter *AssessmentRunFilter `locationName:"filter" type:"structure"` + + // You can use this parameter to indicate the maximum number of items that you + // want in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListAssessmentRuns action. Subsequent + // calls to the action fill nextToken in the request with the value of NextToken + // from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentRunsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentRunsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAssessmentRunsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAssessmentRunsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTemplateArns sets the AssessmentTemplateArns field's value. +func (s *ListAssessmentRunsInput) SetAssessmentTemplateArns(v []*string) *ListAssessmentRunsInput { + s.AssessmentTemplateArns = v + return s +} + +// SetFilter sets the Filter field's value. +func (s *ListAssessmentRunsInput) SetFilter(v *AssessmentRunFilter) *ListAssessmentRunsInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAssessmentRunsInput) SetMaxResults(v int64) *ListAssessmentRunsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentRunsInput) SetNextToken(v string) *ListAssessmentRunsInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunsResponse +type ListAssessmentRunsOutput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the assessment runs that are returned by the + // action. + // + // AssessmentRunArns is a required field + AssessmentRunArns []*string `locationName:"assessmentRunArns" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentRunsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentRunsOutput) GoString() string { + return s.String() +} + +// SetAssessmentRunArns sets the AssessmentRunArns field's value. +func (s *ListAssessmentRunsOutput) SetAssessmentRunArns(v []*string) *ListAssessmentRunsOutput { + s.AssessmentRunArns = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentRunsOutput) SetNextToken(v string) *ListAssessmentRunsOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargetsRequest +type ListAssessmentTargetsInput struct { + _ struct{} `type:"structure"` + + // You can use this parameter to specify a subset of data to be included in + // the action's response. + // + // For a record to match a filter, all specified filter attributes must match. + // When multiple values are specified for a filter attribute, any of the values + // can match. + Filter *AssessmentTargetFilter `locationName:"filter" type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListAssessmentTargets action. + // Subsequent calls to the action fill nextToken in the request with the value + // of NextToken from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentTargetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAssessmentTargetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAssessmentTargetsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *ListAssessmentTargetsInput) SetFilter(v *AssessmentTargetFilter) *ListAssessmentTargetsInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAssessmentTargetsInput) SetMaxResults(v int64) *ListAssessmentTargetsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentTargetsInput) SetNextToken(v string) *ListAssessmentTargetsInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargetsResponse +type ListAssessmentTargetsOutput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the assessment targets that are returned by + // the action. + // + // AssessmentTargetArns is a required field + AssessmentTargetArns []*string `locationName:"assessmentTargetArns" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentTargetsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentTargetsOutput) GoString() string { + return s.String() +} + +// SetAssessmentTargetArns sets the AssessmentTargetArns field's value. +func (s *ListAssessmentTargetsOutput) SetAssessmentTargetArns(v []*string) *ListAssessmentTargetsOutput { + s.AssessmentTargetArns = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentTargetsOutput) SetNextToken(v string) *ListAssessmentTargetsOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplatesRequest +type ListAssessmentTemplatesInput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the assessment targets whose assessment templates + // you want to list. + AssessmentTargetArns []*string `locationName:"assessmentTargetArns" type:"list"` + + // You can use this parameter to specify a subset of data to be included in + // the action's response. + // + // For a record to match a filter, all specified filter attributes must match. + // When multiple values are specified for a filter attribute, any of the values + // can match. + Filter *AssessmentTemplateFilter `locationName:"filter" type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListAssessmentTemplates action. + // Subsequent calls to the action fill nextToken in the request with the value + // of NextToken from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAssessmentTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAssessmentTemplatesInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetArns sets the AssessmentTargetArns field's value. +func (s *ListAssessmentTemplatesInput) SetAssessmentTargetArns(v []*string) *ListAssessmentTemplatesInput { + s.AssessmentTargetArns = v + return s +} + +// SetFilter sets the Filter field's value. +func (s *ListAssessmentTemplatesInput) SetFilter(v *AssessmentTemplateFilter) *ListAssessmentTemplatesInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAssessmentTemplatesInput) SetMaxResults(v int64) *ListAssessmentTemplatesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentTemplatesInput) SetNextToken(v string) *ListAssessmentTemplatesInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplatesResponse +type ListAssessmentTemplatesOutput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the assessment templates returned by the action. + // + // AssessmentTemplateArns is a required field + AssessmentTemplateArns []*string `locationName:"assessmentTemplateArns" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAssessmentTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAssessmentTemplatesOutput) GoString() string { + return s.String() +} + +// SetAssessmentTemplateArns sets the AssessmentTemplateArns field's value. +func (s *ListAssessmentTemplatesOutput) SetAssessmentTemplateArns(v []*string) *ListAssessmentTemplatesOutput { + s.AssessmentTemplateArns = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAssessmentTemplatesOutput) SetNextToken(v string) *ListAssessmentTemplatesOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptionsRequest +type ListEventSubscriptionsInput struct { + _ struct{} `type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListEventSubscriptions action. + // Subsequent calls to the action fill nextToken in the request with the value + // of NextToken from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The ARN of the assessment template for which you want to list the existing + // event subscriptions. + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEventSubscriptionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEventSubscriptionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEventSubscriptionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListEventSubscriptionsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListEventSubscriptionsInput) SetMaxResults(v int64) *ListEventSubscriptionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEventSubscriptionsInput) SetNextToken(v string) *ListEventSubscriptionsInput { + s.NextToken = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListEventSubscriptionsInput) SetResourceArn(v string) *ListEventSubscriptionsInput { + s.ResourceArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptionsResponse +type ListEventSubscriptionsOutput struct { + _ struct{} `type:"structure"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // Details of the returned event subscriptions. + // + // Subscriptions is a required field + Subscriptions []*Subscription `locationName:"subscriptions" type:"list" required:"true"` +} + +// String returns the string representation +func (s ListEventSubscriptionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEventSubscriptionsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEventSubscriptionsOutput) SetNextToken(v string) *ListEventSubscriptionsOutput { + s.NextToken = &v + return s +} + +// SetSubscriptions sets the Subscriptions field's value. +func (s *ListEventSubscriptionsOutput) SetSubscriptions(v []*Subscription) *ListEventSubscriptionsOutput { + s.Subscriptions = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindingsRequest +type ListFindingsInput struct { + _ struct{} `type:"structure"` + + // The ARNs of the assessment runs that generate the findings that you want + // to list. + AssessmentRunArns []*string `locationName:"assessmentRunArns" type:"list"` + + // You can use this parameter to specify a subset of data to be included in + // the action's response. + // + // For a record to match a filter, all specified filter attributes must match. + // When multiple values are specified for a filter attribute, any of the values + // can match. + Filter *FindingFilter `locationName:"filter" type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListFindings action. Subsequent + // calls to the action fill nextToken in the request with the value of NextToken + // from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListFindingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFindingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFindingsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArns sets the AssessmentRunArns field's value. +func (s *ListFindingsInput) SetAssessmentRunArns(v []*string) *ListFindingsInput { + s.AssessmentRunArns = v + return s +} + +// SetFilter sets the Filter field's value. +func (s *ListFindingsInput) SetFilter(v *FindingFilter) *ListFindingsInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListFindingsInput) SetMaxResults(v int64) *ListFindingsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsInput) SetNextToken(v string) *ListFindingsInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindingsResponse +type ListFindingsOutput struct { + _ struct{} `type:"structure"` + + // A list of ARNs that specifies the findings returned by the action. + // + // FindingArns is a required field + FindingArns []*string `locationName:"findingArns" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListFindingsOutput) GoString() string { + return s.String() +} + +// SetFindingArns sets the FindingArns field's value. +func (s *ListFindingsOutput) SetFindingArns(v []*string) *ListFindingsOutput { + s.FindingArns = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsOutput) SetNextToken(v string) *ListFindingsOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackagesRequest +type ListRulesPackagesInput struct { + _ struct{} `type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListRulesPackages action. Subsequent + // calls to the action fill nextToken in the request with the value of NextToken + // from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListRulesPackagesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListRulesPackagesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRulesPackagesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRulesPackagesInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRulesPackagesInput) SetMaxResults(v int64) *ListRulesPackagesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRulesPackagesInput) SetNextToken(v string) *ListRulesPackagesInput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackagesResponse +type ListRulesPackagesOutput struct { + _ struct{} `type:"structure"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The list of ARNs that specifies the rules packages returned by the action. + // + // RulesPackageArns is a required field + RulesPackageArns []*string `locationName:"rulesPackageArns" type:"list" required:"true"` +} + +// String returns the string representation +func (s ListRulesPackagesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListRulesPackagesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRulesPackagesOutput) SetNextToken(v string) *ListRulesPackagesOutput { + s.NextToken = &v + return s +} + +// SetRulesPackageArns sets the RulesPackageArns field's value. +func (s *ListRulesPackagesOutput) SetRulesPackageArns(v []*string) *ListRulesPackagesOutput { + s.RulesPackageArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResourceRequest +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN that specifies the assessment template whose tags you want to list. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResourceResponse +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // A collection of key and value pairs. + // + // Tags is a required field + Tags []*Tag `locationName:"tags" type:"list" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgentsRequest +type PreviewAgentsInput struct { + _ struct{} `type:"structure"` + + // You can use this parameter to indicate the maximum number of items you want + // in the response. The default value is 10. The maximum value is 500. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // You can use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the PreviewAgents action. Subsequent + // calls to the action fill nextToken in the request with the value of NextToken + // from the previous response to continue listing data. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The ARN of the assessment target whose agents you want to preview. + // + // PreviewAgentsArn is a required field + PreviewAgentsArn *string `locationName:"previewAgentsArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PreviewAgentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PreviewAgentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PreviewAgentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PreviewAgentsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.PreviewAgentsArn == nil { + invalidParams.Add(request.NewErrParamRequired("PreviewAgentsArn")) + } + if s.PreviewAgentsArn != nil && len(*s.PreviewAgentsArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PreviewAgentsArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *PreviewAgentsInput) SetMaxResults(v int64) *PreviewAgentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *PreviewAgentsInput) SetNextToken(v string) *PreviewAgentsInput { + s.NextToken = &v + return s +} + +// SetPreviewAgentsArn sets the PreviewAgentsArn field's value. +func (s *PreviewAgentsInput) SetPreviewAgentsArn(v string) *PreviewAgentsInput { + s.PreviewAgentsArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgentsResponse +type PreviewAgentsOutput struct { + _ struct{} `type:"structure"` + + // The resulting list of agents. + // + // AgentPreviews is a required field + AgentPreviews []*AgentPreview `locationName:"agentPreviews" type:"list" required:"true"` + + // When a response is generated, if there is more data to be listed, this parameter + // is present in the response and contains the value to use for the nextToken + // parameter in a subsequent pagination request. If there is no more data to + // be listed, this parameter is set to null. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s PreviewAgentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PreviewAgentsOutput) GoString() string { + return s.String() +} + +// SetAgentPreviews sets the AgentPreviews field's value. +func (s *PreviewAgentsOutput) SetAgentPreviews(v []*AgentPreview) *PreviewAgentsOutput { + s.AgentPreviews = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *PreviewAgentsOutput) SetNextToken(v string) *PreviewAgentsOutput { + s.NextToken = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRoleRequest +type RegisterCrossAccountAccessRoleInput struct { + _ struct{} `type:"structure"` + + // The ARN of the IAM role that Amazon Inspector uses to list your EC2 instances + // during the assessment run or when you call the PreviewAgents action. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s RegisterCrossAccountAccessRoleInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RegisterCrossAccountAccessRoleInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterCrossAccountAccessRoleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RegisterCrossAccountAccessRoleInput"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRoleArn sets the RoleArn field's value. +func (s *RegisterCrossAccountAccessRoleInput) SetRoleArn(v string) *RegisterCrossAccountAccessRoleInput { + s.RoleArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRoleOutput +type RegisterCrossAccountAccessRoleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s RegisterCrossAccountAccessRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RegisterCrossAccountAccessRoleOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindingsRequest +type RemoveAttributesFromFindingsInput struct { + _ struct{} `type:"structure"` + + // The array of attribute keys that you want to remove from specified findings. + // + // AttributeKeys is a required field + AttributeKeys []*string `locationName:"attributeKeys" type:"list" required:"true"` + + // The ARNs that specify the findings that you want to remove attributes from. + // + // FindingArns is a required field + FindingArns []*string `locationName:"findingArns" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s RemoveAttributesFromFindingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemoveAttributesFromFindingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemoveAttributesFromFindingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RemoveAttributesFromFindingsInput"} + if s.AttributeKeys == nil { + invalidParams.Add(request.NewErrParamRequired("AttributeKeys")) + } + if s.FindingArns == nil { + invalidParams.Add(request.NewErrParamRequired("FindingArns")) + } + if s.FindingArns != nil && len(s.FindingArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FindingArns", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributeKeys sets the AttributeKeys field's value. +func (s *RemoveAttributesFromFindingsInput) SetAttributeKeys(v []*string) *RemoveAttributesFromFindingsInput { + s.AttributeKeys = v + return s +} + +// SetFindingArns sets the FindingArns field's value. +func (s *RemoveAttributesFromFindingsInput) SetFindingArns(v []*string) *RemoveAttributesFromFindingsInput { + s.FindingArns = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindingsResponse +type RemoveAttributesFromFindingsOutput struct { + _ struct{} `type:"structure"` + + // Attributes details that cannot be described. An error code is provided for + // each failed item. + // + // FailedItems is a required field + FailedItems map[string]*FailedItemDetails `locationName:"failedItems" type:"map" required:"true"` +} + +// String returns the string representation +func (s RemoveAttributesFromFindingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemoveAttributesFromFindingsOutput) GoString() string { + return s.String() +} + +// SetFailedItems sets the FailedItems field's value. +func (s *RemoveAttributesFromFindingsOutput) SetFailedItems(v map[string]*FailedItemDetails) *RemoveAttributesFromFindingsOutput { + s.FailedItems = v + return s +} + +// Contains information about a resource group. The resource group defines a +// set of tags that, when queried, identify the AWS resources that make up the +// assessment target. This data type is used as the response element in the +// DescribeResourceGroups action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ResourceGroup +type ResourceGroup struct { + _ struct{} `type:"structure"` + + // The ARN of the resource group. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // The time at which resource group is created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix" required:"true"` + + // The tags (key and value pairs) of the resource group. This data type property + // is used in the CreateResourceGroup action. + // + // Tags is a required field + Tags []*ResourceGroupTag `locationName:"tags" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s ResourceGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceGroup) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ResourceGroup) SetArn(v string) *ResourceGroup { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ResourceGroup) SetCreatedAt(v time.Time) *ResourceGroup { + s.CreatedAt = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ResourceGroup) SetTags(v []*ResourceGroupTag) *ResourceGroup { + s.Tags = v + return s +} + +// This data type is used as one of the elements of the ResourceGroup data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ResourceGroupTag +type ResourceGroupTag struct { + _ struct{} `type:"structure"` + + // A tag key. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The value assigned to a tag key. + Value *string `locationName:"value" min:"1" type:"string"` +} + +// String returns the string representation +func (s ResourceGroupTag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceGroupTag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResourceGroupTag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResourceGroupTag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *ResourceGroupTag) SetKey(v string) *ResourceGroupTag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ResourceGroupTag) SetValue(v string) *ResourceGroupTag { + s.Value = &v + return s +} + +// Contains information about an Amazon Inspector rules package. This data type +// is used as the response element in the DescribeRulesPackages action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RulesPackage +type RulesPackage struct { + _ struct{} `type:"structure"` + + // The ARN of the rules package. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"1" type:"string" required:"true"` + + // The description of the rules package. + Description *string `locationName:"description" type:"string"` + + // The name of the rules package. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The provider of the rules package. + // + // Provider is a required field + Provider *string `locationName:"provider" type:"string" required:"true"` + + // The version ID of the rules package. + // + // Version is a required field + Version *string `locationName:"version" type:"string" required:"true"` +} + +// String returns the string representation +func (s RulesPackage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RulesPackage) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *RulesPackage) SetArn(v string) *RulesPackage { + s.Arn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *RulesPackage) SetDescription(v string) *RulesPackage { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *RulesPackage) SetName(v string) *RulesPackage { + s.Name = &v + return s +} + +// SetProvider sets the Provider field's value. +func (s *RulesPackage) SetProvider(v string) *RulesPackage { + s.Provider = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *RulesPackage) SetVersion(v string) *RulesPackage { + s.Version = &v + return s +} + +// This data type is used in the Finding data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/InspectorServiceAttributes +type ServiceAttributes struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment run during which the finding is generated. + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string"` + + // The ARN of the rules package that is used to generate the finding. + RulesPackageArn *string `locationName:"rulesPackageArn" min:"1" type:"string"` + + // The schema version of this data type. + // + // SchemaVersion is a required field + SchemaVersion *int64 `locationName:"schemaVersion" type:"integer" required:"true"` +} + +// String returns the string representation +func (s ServiceAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ServiceAttributes) GoString() string { + return s.String() +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *ServiceAttributes) SetAssessmentRunArn(v string) *ServiceAttributes { + s.AssessmentRunArn = &v + return s +} + +// SetRulesPackageArn sets the RulesPackageArn field's value. +func (s *ServiceAttributes) SetRulesPackageArn(v string) *ServiceAttributes { + s.RulesPackageArn = &v + return s +} + +// SetSchemaVersion sets the SchemaVersion field's value. +func (s *ServiceAttributes) SetSchemaVersion(v int64) *ServiceAttributes { + s.SchemaVersion = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResourceRequest +type SetTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment template that you want to set tags to. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // A collection of key and value pairs that you want to set to the assessment + // template. + Tags []*Tag `locationName:"tags" type:"list"` +} + +// String returns the string representation +func (s SetTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SetTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SetTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SetTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *SetTagsForResourceInput) SetResourceArn(v string) *SetTagsForResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *SetTagsForResourceInput) SetTags(v []*Tag) *SetTagsForResourceInput { + s.Tags = v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResourceOutput +type SetTagsForResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s SetTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SetTagsForResourceOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRunRequest +type StartAssessmentRunInput struct { + _ struct{} `type:"structure"` + + // You can specify the name for the assessment run. The name must be unique + // for the assessment template whose ARN is used to start the assessment run. + AssessmentRunName *string `locationName:"assessmentRunName" min:"1" type:"string"` + + // The ARN of the assessment template of the assessment run that you want to + // start. + // + // AssessmentTemplateArn is a required field + AssessmentTemplateArn *string `locationName:"assessmentTemplateArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartAssessmentRunInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartAssessmentRunInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartAssessmentRunInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartAssessmentRunInput"} + if s.AssessmentRunName != nil && len(*s.AssessmentRunName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunName", 1)) + } + if s.AssessmentTemplateArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTemplateArn")) + } + if s.AssessmentTemplateArn != nil && len(*s.AssessmentTemplateArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTemplateArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunName sets the AssessmentRunName field's value. +func (s *StartAssessmentRunInput) SetAssessmentRunName(v string) *StartAssessmentRunInput { + s.AssessmentRunName = &v + return s +} + +// SetAssessmentTemplateArn sets the AssessmentTemplateArn field's value. +func (s *StartAssessmentRunInput) SetAssessmentTemplateArn(v string) *StartAssessmentRunInput { + s.AssessmentTemplateArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRunResponse +type StartAssessmentRunOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment run that has been started. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StartAssessmentRunOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartAssessmentRunOutput) GoString() string { + return s.String() +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *StartAssessmentRunOutput) SetAssessmentRunArn(v string) *StartAssessmentRunOutput { + s.AssessmentRunArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRunRequest +type StopAssessmentRunInput struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment run that you want to stop. + // + // AssessmentRunArn is a required field + AssessmentRunArn *string `locationName:"assessmentRunArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopAssessmentRunInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopAssessmentRunInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopAssessmentRunInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopAssessmentRunInput"} + if s.AssessmentRunArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentRunArn")) + } + if s.AssessmentRunArn != nil && len(*s.AssessmentRunArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentRunArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentRunArn sets the AssessmentRunArn field's value. +func (s *StopAssessmentRunInput) SetAssessmentRunArn(v string) *StopAssessmentRunInput { + s.AssessmentRunArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRunOutput +type StopAssessmentRunOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopAssessmentRunOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopAssessmentRunOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEventRequest +type SubscribeToEventInput struct { + _ struct{} `type:"structure"` + + // The event for which you want to receive SNS notifications. + // + // Event is a required field + Event *string `locationName:"event" type:"string" required:"true" enum:"Event"` + + // The ARN of the assessment template that is used during the event for which + // you want to receive SNS notifications. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The ARN of the SNS topic to which the SNS notifications are sent. + // + // TopicArn is a required field + TopicArn *string `locationName:"topicArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s SubscribeToEventInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubscribeToEventInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SubscribeToEventInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SubscribeToEventInput"} + if s.Event == nil { + invalidParams.Add(request.NewErrParamRequired("Event")) + } + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TopicArn == nil { + invalidParams.Add(request.NewErrParamRequired("TopicArn")) + } + if s.TopicArn != nil && len(*s.TopicArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TopicArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEvent sets the Event field's value. +func (s *SubscribeToEventInput) SetEvent(v string) *SubscribeToEventInput { + s.Event = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *SubscribeToEventInput) SetResourceArn(v string) *SubscribeToEventInput { + s.ResourceArn = &v + return s +} + +// SetTopicArn sets the TopicArn field's value. +func (s *SubscribeToEventInput) SetTopicArn(v string) *SubscribeToEventInput { + s.TopicArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEventOutput +type SubscribeToEventOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s SubscribeToEventOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubscribeToEventOutput) GoString() string { + return s.String() +} + +// This data type is used as a response element in the ListEventSubscriptions +// action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Subscription +type Subscription struct { + _ struct{} `type:"structure"` + + // The list of existing event subscriptions. + // + // EventSubscriptions is a required field + EventSubscriptions []*EventSubscription `locationName:"eventSubscriptions" min:"1" type:"list" required:"true"` + + // The ARN of the assessment template that is used during the event for which + // the SNS notification is sent. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The ARN of the Amazon Simple Notification Service (SNS) topic to which the + // SNS notifications are sent. + // + // TopicArn is a required field + TopicArn *string `locationName:"topicArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s Subscription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Subscription) GoString() string { + return s.String() +} + +// SetEventSubscriptions sets the EventSubscriptions field's value. +func (s *Subscription) SetEventSubscriptions(v []*EventSubscription) *Subscription { + s.EventSubscriptions = v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *Subscription) SetResourceArn(v string) *Subscription { + s.ResourceArn = &v + return s +} + +// SetTopicArn sets the TopicArn field's value. +func (s *Subscription) SetTopicArn(v string) *Subscription { + s.TopicArn = &v + return s +} + +// A key and value pair. This data type is used as a request parameter in the +// SetTagsForResource action and a response element in the ListTagsForResource +// action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Tag +type Tag struct { + _ struct{} `type:"structure"` + + // A tag key. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // A value assigned to a tag key. + Value *string `locationName:"value" min:"1" type:"string"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Tag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +// The metadata about the Amazon Inspector application data metrics collected +// by the agent. This data type is used as the response element in the GetTelemetryMetadata +// action. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/TelemetryMetadata +type TelemetryMetadata struct { + _ struct{} `type:"structure"` + + // The count of messages that the agent sends to the Amazon Inspector service. + // + // Count is a required field + Count *int64 `locationName:"count" type:"long" required:"true"` + + // The data size of messages that the agent sends to the Amazon Inspector service. + DataSize *int64 `locationName:"dataSize" type:"long"` + + // A specific type of behavioral data that is collected by the agent. + // + // MessageType is a required field + MessageType *string `locationName:"messageType" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s TelemetryMetadata) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TelemetryMetadata) GoString() string { + return s.String() +} + +// SetCount sets the Count field's value. +func (s *TelemetryMetadata) SetCount(v int64) *TelemetryMetadata { + s.Count = &v + return s +} + +// SetDataSize sets the DataSize field's value. +func (s *TelemetryMetadata) SetDataSize(v int64) *TelemetryMetadata { + s.DataSize = &v + return s +} + +// SetMessageType sets the MessageType field's value. +func (s *TelemetryMetadata) SetMessageType(v string) *TelemetryMetadata { + s.MessageType = &v + return s +} + +// This data type is used in the AssessmentRunFilter data type. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/TimestampRange +type TimestampRange struct { + _ struct{} `type:"structure"` + + // The minimum value of the timestamp range. + BeginDate *time.Time `locationName:"beginDate" type:"timestamp" timestampFormat:"unix"` + + // The maximum value of the timestamp range. + EndDate *time.Time `locationName:"endDate" type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s TimestampRange) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestampRange) GoString() string { + return s.String() +} + +// SetBeginDate sets the BeginDate field's value. +func (s *TimestampRange) SetBeginDate(v time.Time) *TimestampRange { + s.BeginDate = &v + return s +} + +// SetEndDate sets the EndDate field's value. +func (s *TimestampRange) SetEndDate(v time.Time) *TimestampRange { + s.EndDate = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEventRequest +type UnsubscribeFromEventInput struct { + _ struct{} `type:"structure"` + + // The event for which you want to stop receiving SNS notifications. + // + // Event is a required field + Event *string `locationName:"event" type:"string" required:"true" enum:"Event"` + + // The ARN of the assessment template that is used during the event for which + // you want to stop receiving SNS notifications. + // + // ResourceArn is a required field + ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"` + + // The ARN of the SNS topic to which SNS notifications are sent. + // + // TopicArn is a required field + TopicArn *string `locationName:"topicArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UnsubscribeFromEventInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UnsubscribeFromEventInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UnsubscribeFromEventInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UnsubscribeFromEventInput"} + if s.Event == nil { + invalidParams.Add(request.NewErrParamRequired("Event")) + } + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TopicArn == nil { + invalidParams.Add(request.NewErrParamRequired("TopicArn")) + } + if s.TopicArn != nil && len(*s.TopicArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TopicArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEvent sets the Event field's value. +func (s *UnsubscribeFromEventInput) SetEvent(v string) *UnsubscribeFromEventInput { + s.Event = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UnsubscribeFromEventInput) SetResourceArn(v string) *UnsubscribeFromEventInput { + s.ResourceArn = &v + return s +} + +// SetTopicArn sets the TopicArn field's value. +func (s *UnsubscribeFromEventInput) SetTopicArn(v string) *UnsubscribeFromEventInput { + s.TopicArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEventOutput +type UnsubscribeFromEventOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UnsubscribeFromEventOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UnsubscribeFromEventOutput) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTargetRequest +type UpdateAssessmentTargetInput struct { + _ struct{} `type:"structure"` + + // The ARN of the assessment target that you want to update. + // + // AssessmentTargetArn is a required field + AssessmentTargetArn *string `locationName:"assessmentTargetArn" min:"1" type:"string" required:"true"` + + // The name of the assessment target that you want to update. + // + // AssessmentTargetName is a required field + AssessmentTargetName *string `locationName:"assessmentTargetName" min:"1" type:"string" required:"true"` + + // The ARN of the resource group that is used to specify the new resource group + // to associate with the assessment target. + // + // ResourceGroupArn is a required field + ResourceGroupArn *string `locationName:"resourceGroupArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateAssessmentTargetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAssessmentTargetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAssessmentTargetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAssessmentTargetInput"} + if s.AssessmentTargetArn == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetArn")) + } + if s.AssessmentTargetArn != nil && len(*s.AssessmentTargetArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetArn", 1)) + } + if s.AssessmentTargetName == nil { + invalidParams.Add(request.NewErrParamRequired("AssessmentTargetName")) + } + if s.AssessmentTargetName != nil && len(*s.AssessmentTargetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssessmentTargetName", 1)) + } + if s.ResourceGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceGroupArn")) + } + if s.ResourceGroupArn != nil && len(*s.ResourceGroupArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceGroupArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssessmentTargetArn sets the AssessmentTargetArn field's value. +func (s *UpdateAssessmentTargetInput) SetAssessmentTargetArn(v string) *UpdateAssessmentTargetInput { + s.AssessmentTargetArn = &v + return s +} + +// SetAssessmentTargetName sets the AssessmentTargetName field's value. +func (s *UpdateAssessmentTargetInput) SetAssessmentTargetName(v string) *UpdateAssessmentTargetInput { + s.AssessmentTargetName = &v + return s +} + +// SetResourceGroupArn sets the ResourceGroupArn field's value. +func (s *UpdateAssessmentTargetInput) SetResourceGroupArn(v string) *UpdateAssessmentTargetInput { + s.ResourceGroupArn = &v + return s +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTargetOutput +type UpdateAssessmentTargetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateAssessmentTargetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAssessmentTargetOutput) GoString() string { + return s.String() +} + +const ( + // AccessDeniedErrorCodeAccessDeniedToAssessmentTarget is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToAssessmentTarget = "ACCESS_DENIED_TO_ASSESSMENT_TARGET" + + // AccessDeniedErrorCodeAccessDeniedToAssessmentTemplate is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToAssessmentTemplate = "ACCESS_DENIED_TO_ASSESSMENT_TEMPLATE" + + // AccessDeniedErrorCodeAccessDeniedToAssessmentRun is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToAssessmentRun = "ACCESS_DENIED_TO_ASSESSMENT_RUN" + + // AccessDeniedErrorCodeAccessDeniedToFinding is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToFinding = "ACCESS_DENIED_TO_FINDING" + + // AccessDeniedErrorCodeAccessDeniedToResourceGroup is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToResourceGroup = "ACCESS_DENIED_TO_RESOURCE_GROUP" + + // AccessDeniedErrorCodeAccessDeniedToRulesPackage is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToRulesPackage = "ACCESS_DENIED_TO_RULES_PACKAGE" + + // AccessDeniedErrorCodeAccessDeniedToSnsTopic is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToSnsTopic = "ACCESS_DENIED_TO_SNS_TOPIC" + + // AccessDeniedErrorCodeAccessDeniedToIamRole is a AccessDeniedErrorCode enum value + AccessDeniedErrorCodeAccessDeniedToIamRole = "ACCESS_DENIED_TO_IAM_ROLE" +) + +const ( + // AgentHealthHealthy is a AgentHealth enum value + AgentHealthHealthy = "HEALTHY" + + // AgentHealthUnhealthy is a AgentHealth enum value + AgentHealthUnhealthy = "UNHEALTHY" +) + +const ( + // AgentHealthCodeIdle is a AgentHealthCode enum value + AgentHealthCodeIdle = "IDLE" + + // AgentHealthCodeRunning is a AgentHealthCode enum value + AgentHealthCodeRunning = "RUNNING" + + // AgentHealthCodeShutdown is a AgentHealthCode enum value + AgentHealthCodeShutdown = "SHUTDOWN" + + // AgentHealthCodeUnhealthy is a AgentHealthCode enum value + AgentHealthCodeUnhealthy = "UNHEALTHY" + + // AgentHealthCodeThrottled is a AgentHealthCode enum value + AgentHealthCodeThrottled = "THROTTLED" + + // AgentHealthCodeUnknown is a AgentHealthCode enum value + AgentHealthCodeUnknown = "UNKNOWN" +) + +const ( + // AssessmentRunNotificationSnsStatusCodeSuccess is a AssessmentRunNotificationSnsStatusCode enum value + AssessmentRunNotificationSnsStatusCodeSuccess = "SUCCESS" + + // AssessmentRunNotificationSnsStatusCodeTopicDoesNotExist is a AssessmentRunNotificationSnsStatusCode enum value + AssessmentRunNotificationSnsStatusCodeTopicDoesNotExist = "TOPIC_DOES_NOT_EXIST" + + // AssessmentRunNotificationSnsStatusCodeAccessDenied is a AssessmentRunNotificationSnsStatusCode enum value + AssessmentRunNotificationSnsStatusCodeAccessDenied = "ACCESS_DENIED" + + // AssessmentRunNotificationSnsStatusCodeInternalError is a AssessmentRunNotificationSnsStatusCode enum value + AssessmentRunNotificationSnsStatusCodeInternalError = "INTERNAL_ERROR" +) + +const ( + // AssessmentRunStateCreated is a AssessmentRunState enum value + AssessmentRunStateCreated = "CREATED" + + // AssessmentRunStateStartDataCollectionPending is a AssessmentRunState enum value + AssessmentRunStateStartDataCollectionPending = "START_DATA_COLLECTION_PENDING" + + // AssessmentRunStateStartDataCollectionInProgress is a AssessmentRunState enum value + AssessmentRunStateStartDataCollectionInProgress = "START_DATA_COLLECTION_IN_PROGRESS" + + // AssessmentRunStateCollectingData is a AssessmentRunState enum value + AssessmentRunStateCollectingData = "COLLECTING_DATA" + + // AssessmentRunStateStopDataCollectionPending is a AssessmentRunState enum value + AssessmentRunStateStopDataCollectionPending = "STOP_DATA_COLLECTION_PENDING" + + // AssessmentRunStateDataCollected is a AssessmentRunState enum value + AssessmentRunStateDataCollected = "DATA_COLLECTED" + + // AssessmentRunStateEvaluatingRules is a AssessmentRunState enum value + AssessmentRunStateEvaluatingRules = "EVALUATING_RULES" + + // AssessmentRunStateFailed is a AssessmentRunState enum value + AssessmentRunStateFailed = "FAILED" + + // AssessmentRunStateCompleted is a AssessmentRunState enum value + AssessmentRunStateCompleted = "COMPLETED" + + // AssessmentRunStateCompletedWithErrors is a AssessmentRunState enum value + AssessmentRunStateCompletedWithErrors = "COMPLETED_WITH_ERRORS" +) + +const ( + // AssetTypeEc2Instance is a AssetType enum value + AssetTypeEc2Instance = "ec2-instance" +) + +const ( + // EventAssessmentRunStarted is a Event enum value + EventAssessmentRunStarted = "ASSESSMENT_RUN_STARTED" + + // EventAssessmentRunCompleted is a Event enum value + EventAssessmentRunCompleted = "ASSESSMENT_RUN_COMPLETED" + + // EventAssessmentRunStateChanged is a Event enum value + EventAssessmentRunStateChanged = "ASSESSMENT_RUN_STATE_CHANGED" + + // EventFindingReported is a Event enum value + EventFindingReported = "FINDING_REPORTED" + + // EventOther is a Event enum value + EventOther = "OTHER" +) + +const ( + // FailedItemErrorCodeInvalidArn is a FailedItemErrorCode enum value + FailedItemErrorCodeInvalidArn = "INVALID_ARN" + + // FailedItemErrorCodeDuplicateArn is a FailedItemErrorCode enum value + FailedItemErrorCodeDuplicateArn = "DUPLICATE_ARN" + + // FailedItemErrorCodeItemDoesNotExist is a FailedItemErrorCode enum value + FailedItemErrorCodeItemDoesNotExist = "ITEM_DOES_NOT_EXIST" + + // FailedItemErrorCodeAccessDenied is a FailedItemErrorCode enum value + FailedItemErrorCodeAccessDenied = "ACCESS_DENIED" + + // FailedItemErrorCodeLimitExceeded is a FailedItemErrorCode enum value + FailedItemErrorCodeLimitExceeded = "LIMIT_EXCEEDED" + + // FailedItemErrorCodeInternalError is a FailedItemErrorCode enum value + FailedItemErrorCodeInternalError = "INTERNAL_ERROR" +) + +const ( + // InvalidCrossAccountRoleErrorCodeRoleDoesNotExistOrInvalidTrustRelationship is a InvalidCrossAccountRoleErrorCode enum value + InvalidCrossAccountRoleErrorCodeRoleDoesNotExistOrInvalidTrustRelationship = "ROLE_DOES_NOT_EXIST_OR_INVALID_TRUST_RELATIONSHIP" + + // InvalidCrossAccountRoleErrorCodeRoleDoesNotHaveCorrectPolicy is a InvalidCrossAccountRoleErrorCode enum value + InvalidCrossAccountRoleErrorCodeRoleDoesNotHaveCorrectPolicy = "ROLE_DOES_NOT_HAVE_CORRECT_POLICY" +) + +const ( + // InvalidInputErrorCodeInvalidAssessmentTargetArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTargetArn = "INVALID_ASSESSMENT_TARGET_ARN" + + // InvalidInputErrorCodeInvalidAssessmentTemplateArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTemplateArn = "INVALID_ASSESSMENT_TEMPLATE_ARN" + + // InvalidInputErrorCodeInvalidAssessmentRunArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunArn = "INVALID_ASSESSMENT_RUN_ARN" + + // InvalidInputErrorCodeInvalidFindingArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidFindingArn = "INVALID_FINDING_ARN" + + // InvalidInputErrorCodeInvalidResourceGroupArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidResourceGroupArn = "INVALID_RESOURCE_GROUP_ARN" + + // InvalidInputErrorCodeInvalidRulesPackageArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidRulesPackageArn = "INVALID_RULES_PACKAGE_ARN" + + // InvalidInputErrorCodeInvalidResourceArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidResourceArn = "INVALID_RESOURCE_ARN" + + // InvalidInputErrorCodeInvalidSnsTopicArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidSnsTopicArn = "INVALID_SNS_TOPIC_ARN" + + // InvalidInputErrorCodeInvalidIamRoleArn is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidIamRoleArn = "INVALID_IAM_ROLE_ARN" + + // InvalidInputErrorCodeInvalidAssessmentTargetName is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTargetName = "INVALID_ASSESSMENT_TARGET_NAME" + + // InvalidInputErrorCodeInvalidAssessmentTargetNamePattern is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTargetNamePattern = "INVALID_ASSESSMENT_TARGET_NAME_PATTERN" + + // InvalidInputErrorCodeInvalidAssessmentTemplateName is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTemplateName = "INVALID_ASSESSMENT_TEMPLATE_NAME" + + // InvalidInputErrorCodeInvalidAssessmentTemplateNamePattern is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTemplateNamePattern = "INVALID_ASSESSMENT_TEMPLATE_NAME_PATTERN" + + // InvalidInputErrorCodeInvalidAssessmentTemplateDuration is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTemplateDuration = "INVALID_ASSESSMENT_TEMPLATE_DURATION" + + // InvalidInputErrorCodeInvalidAssessmentTemplateDurationRange is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentTemplateDurationRange = "INVALID_ASSESSMENT_TEMPLATE_DURATION_RANGE" + + // InvalidInputErrorCodeInvalidAssessmentRunDurationRange is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunDurationRange = "INVALID_ASSESSMENT_RUN_DURATION_RANGE" + + // InvalidInputErrorCodeInvalidAssessmentRunStartTimeRange is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunStartTimeRange = "INVALID_ASSESSMENT_RUN_START_TIME_RANGE" + + // InvalidInputErrorCodeInvalidAssessmentRunCompletionTimeRange is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunCompletionTimeRange = "INVALID_ASSESSMENT_RUN_COMPLETION_TIME_RANGE" + + // InvalidInputErrorCodeInvalidAssessmentRunStateChangeTimeRange is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunStateChangeTimeRange = "INVALID_ASSESSMENT_RUN_STATE_CHANGE_TIME_RANGE" + + // InvalidInputErrorCodeInvalidAssessmentRunState is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAssessmentRunState = "INVALID_ASSESSMENT_RUN_STATE" + + // InvalidInputErrorCodeInvalidTag is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidTag = "INVALID_TAG" + + // InvalidInputErrorCodeInvalidTagKey is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidTagKey = "INVALID_TAG_KEY" + + // InvalidInputErrorCodeInvalidTagValue is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidTagValue = "INVALID_TAG_VALUE" + + // InvalidInputErrorCodeInvalidResourceGroupTagKey is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidResourceGroupTagKey = "INVALID_RESOURCE_GROUP_TAG_KEY" + + // InvalidInputErrorCodeInvalidResourceGroupTagValue is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidResourceGroupTagValue = "INVALID_RESOURCE_GROUP_TAG_VALUE" + + // InvalidInputErrorCodeInvalidAttribute is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAttribute = "INVALID_ATTRIBUTE" + + // InvalidInputErrorCodeInvalidUserAttribute is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidUserAttribute = "INVALID_USER_ATTRIBUTE" + + // InvalidInputErrorCodeInvalidUserAttributeKey is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidUserAttributeKey = "INVALID_USER_ATTRIBUTE_KEY" + + // InvalidInputErrorCodeInvalidUserAttributeValue is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidUserAttributeValue = "INVALID_USER_ATTRIBUTE_VALUE" + + // InvalidInputErrorCodeInvalidPaginationToken is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidPaginationToken = "INVALID_PAGINATION_TOKEN" + + // InvalidInputErrorCodeInvalidMaxResults is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidMaxResults = "INVALID_MAX_RESULTS" + + // InvalidInputErrorCodeInvalidAgentId is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAgentId = "INVALID_AGENT_ID" + + // InvalidInputErrorCodeInvalidAutoScalingGroup is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidAutoScalingGroup = "INVALID_AUTO_SCALING_GROUP" + + // InvalidInputErrorCodeInvalidRuleName is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidRuleName = "INVALID_RULE_NAME" + + // InvalidInputErrorCodeInvalidSeverity is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidSeverity = "INVALID_SEVERITY" + + // InvalidInputErrorCodeInvalidLocale is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidLocale = "INVALID_LOCALE" + + // InvalidInputErrorCodeInvalidEvent is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidEvent = "INVALID_EVENT" + + // InvalidInputErrorCodeAssessmentTargetNameAlreadyTaken is a InvalidInputErrorCode enum value + InvalidInputErrorCodeAssessmentTargetNameAlreadyTaken = "ASSESSMENT_TARGET_NAME_ALREADY_TAKEN" + + // InvalidInputErrorCodeAssessmentTemplateNameAlreadyTaken is a InvalidInputErrorCode enum value + InvalidInputErrorCodeAssessmentTemplateNameAlreadyTaken = "ASSESSMENT_TEMPLATE_NAME_ALREADY_TAKEN" + + // InvalidInputErrorCodeInvalidNumberOfAssessmentTargetArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAssessmentTargetArns = "INVALID_NUMBER_OF_ASSESSMENT_TARGET_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfAssessmentTemplateArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAssessmentTemplateArns = "INVALID_NUMBER_OF_ASSESSMENT_TEMPLATE_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfAssessmentRunArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAssessmentRunArns = "INVALID_NUMBER_OF_ASSESSMENT_RUN_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfFindingArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfFindingArns = "INVALID_NUMBER_OF_FINDING_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfResourceGroupArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfResourceGroupArns = "INVALID_NUMBER_OF_RESOURCE_GROUP_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfRulesPackageArns is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfRulesPackageArns = "INVALID_NUMBER_OF_RULES_PACKAGE_ARNS" + + // InvalidInputErrorCodeInvalidNumberOfAssessmentRunStates is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAssessmentRunStates = "INVALID_NUMBER_OF_ASSESSMENT_RUN_STATES" + + // InvalidInputErrorCodeInvalidNumberOfTags is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfTags = "INVALID_NUMBER_OF_TAGS" + + // InvalidInputErrorCodeInvalidNumberOfResourceGroupTags is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfResourceGroupTags = "INVALID_NUMBER_OF_RESOURCE_GROUP_TAGS" + + // InvalidInputErrorCodeInvalidNumberOfAttributes is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAttributes = "INVALID_NUMBER_OF_ATTRIBUTES" + + // InvalidInputErrorCodeInvalidNumberOfUserAttributes is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfUserAttributes = "INVALID_NUMBER_OF_USER_ATTRIBUTES" + + // InvalidInputErrorCodeInvalidNumberOfAgentIds is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAgentIds = "INVALID_NUMBER_OF_AGENT_IDS" + + // InvalidInputErrorCodeInvalidNumberOfAutoScalingGroups is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfAutoScalingGroups = "INVALID_NUMBER_OF_AUTO_SCALING_GROUPS" + + // InvalidInputErrorCodeInvalidNumberOfRuleNames is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfRuleNames = "INVALID_NUMBER_OF_RULE_NAMES" + + // InvalidInputErrorCodeInvalidNumberOfSeverities is a InvalidInputErrorCode enum value + InvalidInputErrorCodeInvalidNumberOfSeverities = "INVALID_NUMBER_OF_SEVERITIES" +) + +const ( + // LimitExceededErrorCodeAssessmentTargetLimitExceeded is a LimitExceededErrorCode enum value + LimitExceededErrorCodeAssessmentTargetLimitExceeded = "ASSESSMENT_TARGET_LIMIT_EXCEEDED" + + // LimitExceededErrorCodeAssessmentTemplateLimitExceeded is a LimitExceededErrorCode enum value + LimitExceededErrorCodeAssessmentTemplateLimitExceeded = "ASSESSMENT_TEMPLATE_LIMIT_EXCEEDED" + + // LimitExceededErrorCodeAssessmentRunLimitExceeded is a LimitExceededErrorCode enum value + LimitExceededErrorCodeAssessmentRunLimitExceeded = "ASSESSMENT_RUN_LIMIT_EXCEEDED" + + // LimitExceededErrorCodeResourceGroupLimitExceeded is a LimitExceededErrorCode enum value + LimitExceededErrorCodeResourceGroupLimitExceeded = "RESOURCE_GROUP_LIMIT_EXCEEDED" + + // LimitExceededErrorCodeEventSubscriptionLimitExceeded is a LimitExceededErrorCode enum value + LimitExceededErrorCodeEventSubscriptionLimitExceeded = "EVENT_SUBSCRIPTION_LIMIT_EXCEEDED" +) + +const ( + // LocaleEnUs is a Locale enum value + LocaleEnUs = "EN_US" +) + +const ( + // NoSuchEntityErrorCodeAssessmentTargetDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeAssessmentTargetDoesNotExist = "ASSESSMENT_TARGET_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeAssessmentTemplateDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeAssessmentTemplateDoesNotExist = "ASSESSMENT_TEMPLATE_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeAssessmentRunDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeAssessmentRunDoesNotExist = "ASSESSMENT_RUN_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeFindingDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeFindingDoesNotExist = "FINDING_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeResourceGroupDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeResourceGroupDoesNotExist = "RESOURCE_GROUP_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeRulesPackageDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeRulesPackageDoesNotExist = "RULES_PACKAGE_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeSnsTopicDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeSnsTopicDoesNotExist = "SNS_TOPIC_DOES_NOT_EXIST" + + // NoSuchEntityErrorCodeIamRoleDoesNotExist is a NoSuchEntityErrorCode enum value + NoSuchEntityErrorCodeIamRoleDoesNotExist = "IAM_ROLE_DOES_NOT_EXIST" +) + +const ( + // SeverityLow is a Severity enum value + SeverityLow = "Low" + + // SeverityMedium is a Severity enum value + SeverityMedium = "Medium" + + // SeverityHigh is a Severity enum value + SeverityHigh = "High" + + // SeverityInformational is a Severity enum value + SeverityInformational = "Informational" + + // SeverityUndefined is a Severity enum value + SeverityUndefined = "Undefined" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/inspector/service.go b/vendor/github.com/aws/aws-sdk-go/service/inspector/service.go new file mode 100644 index 0000000000..3401a9c405 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/inspector/service.go @@ -0,0 +1,95 @@ +// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. + +package inspector + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// Amazon Inspector enables you to analyze the behavior of your AWS resources +// and to identify potential security issues. For more information, see Amazon +// Inspector User Guide (http://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html). +// The service client's operations are safe to be used concurrently. +// It is not safe to mutate any of the client's properties though. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16 +type Inspector struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "inspector" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the Inspector client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a Inspector client from just a session. +// svc := inspector.New(mySession) +// +// // Create a Inspector client with additional configuration +// svc := inspector.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *Inspector { + c := p.ClientConfig(EndpointsID, cfgs...) + return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *Inspector { + svc := &Inspector{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2016-02-16", + JSONVersion: "1.1", + TargetPrefix: "InspectorService", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a Inspector operation and runs any +// custom request initialization. +func (c *Inspector) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/vendor/vendor.json b/vendor/vendor.json index bc60573b56..839498c3a4 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -885,6 +885,12 @@ "version": "v1.6.9", "versionExact": "v1.6.9" }, + { + "checksumSHA1": "lL1vgSAaM89zLB0QBCwm2FnTzTw=", + "path": "github.com/aws/aws-sdk-go/service/inspector", + "revision": "8649d278323ebf6bd20c9cd56ecb152b1c617375", + "revisionTime": "2017-01-04T18:16:48Z" + }, { "checksumSHA1": "TR063wmYitpnw1vXbwSlslbUOAA=", "path": "github.com/aws/aws-sdk-go/service/kinesis", diff --git a/website/source/docs/providers/aws/r/inspector_assessment_target.html.markdown b/website/source/docs/providers/aws/r/inspector_assessment_target.html.markdown new file mode 100644 index 0000000000..7aead22351 --- /dev/null +++ b/website/source/docs/providers/aws/r/inspector_assessment_target.html.markdown @@ -0,0 +1,40 @@ +--- +layout: "aws" +page_title: "AWS: aws_inspector_assessment_target" +sidebar_current: "docs-aws-resource-inspector-assessment-target" +description: |\ + Provides a Inspector assessment target. +--- + +# aws\_inspector\_assessment\_target + +Provides a Inspector assessment target + +## Example Usage + +``` +resource "aws_inspector_resource_group" "bar" { + tags { + Name = "foo" + Env = "bar" + } +} + +resource "aws_inspector_assessment_target" "foo" { + name = "assessment target" + resource_group_arn = "${aws_inspector_resource_group.bar.arn}" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the assessment target. +* `resource_group_arn` (Required )- The resource group ARN stating tags for instance matching. + +## Attributes Reference + +The following attributes are exported: + +* `arn` - The target assessment ARN. diff --git a/website/source/docs/providers/aws/r/inspector_assessment_template.html.markdown b/website/source/docs/providers/aws/r/inspector_assessment_template.html.markdown new file mode 100644 index 0000000000..20559e6f1c --- /dev/null +++ b/website/source/docs/providers/aws/r/inspector_assessment_template.html.markdown @@ -0,0 +1,43 @@ +--- +layout: "aws" +page_title: "AWS: aws_inspector_assessment_template" +sidebar_current: "docs-aws-resource-inspector-assessment-template" +description: |\ + Provides a Inspector assessment template. +--- + +# aws\_inspector\_assessment\_template + +Provides a Inspector assessment template + +## Example Usage + +``` +resource "aws_inspector_assessment_template" "foo" { + name = "bar template" + target_arn = "${aws_inspector_assessment_target.foo.arn}" + duration = 3600 + + rules_package_arns = [ + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ", + "arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD", + ] +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the assessment template. +* `target_arn` - (Required) The assessment target ARN to attach the template to. +* `duration` - (Required) The duration of the inspector run. +* `rules_package_arns` - (Required) The rules to be used during the run. + +## Attributes Reference + +The following attributes are exported: + +* `arn` - The template assessment ARN. diff --git a/website/source/docs/providers/aws/r/inspector_resouce_group.html.markdown b/website/source/docs/providers/aws/r/inspector_resouce_group.html.markdown new file mode 100644 index 0000000000..fadca67922 --- /dev/null +++ b/website/source/docs/providers/aws/r/inspector_resouce_group.html.markdown @@ -0,0 +1,34 @@ +--- +layout: "aws" +page_title: "AWS: aws_inspector_resource_group" +sidebar_current: "docs-aws-resource-inspector-resource-group" +description: |\ + Provides a Inspector resource group. +--- + +# aws\_inspector\_resource\_group + +Provides a Inspector assessment template + +## Example Usage + +``` +resource "aws_inspector_resource_group" "bar" { + tags { + Name = "foo" + Env = "bar" + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `tags` - (Required) The tags on your EC2 Instance. + +## Attributes Reference + +The following attributes are exported: + +* `arn` - The resource group ARN. diff --git a/website/source/layouts/aws.erb b/website/source/layouts/aws.erb index 16810b778d..9a677e7fc5 100644 --- a/website/source/layouts/aws.erb +++ b/website/source/layouts/aws.erb @@ -662,6 +662,25 @@ +