func resourceAwsCloudTrailCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).cloudtrailconn input := cloudtrail.CreateTrailInput{ Name: aws.String(d.Get("name").(string)), S3BucketName: aws.String(d.Get("s3_bucket_name").(string)), } if v, ok := d.GetOk("cloud_watch_logs_group_arn"); ok { input.CloudWatchLogsLogGroupArn = aws.String(v.(string)) } if v, ok := d.GetOk("cloud_watch_logs_role_arn"); ok { input.CloudWatchLogsRoleArn = aws.String(v.(string)) } if v, ok := d.GetOk("include_global_service_events"); ok { input.IncludeGlobalServiceEvents = aws.Bool(v.(bool)) } if v, ok := d.GetOk("s3_key_prefix"); ok { input.S3KeyPrefix = aws.String(v.(string)) } if v, ok := d.GetOk("sns_topic_name"); ok { input.SnsTopicName = aws.String(v.(string)) } t, err := conn.CreateTrail(&input) if err != nil { return err } log.Printf("[DEBUG] CloudTrail created: %s", t) d.SetId(*t.Name) return resourceAwsCloudTrailRead(d, meta) }
func resourceAwsCloudTrailCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).cloudtrailconn input := cloudtrail.CreateTrailInput{ Name: aws.String(d.Get("name").(string)), S3BucketName: aws.String(d.Get("s3_bucket_name").(string)), } if v, ok := d.GetOk("cloud_watch_logs_group_arn"); ok { input.CloudWatchLogsLogGroupArn = aws.String(v.(string)) } if v, ok := d.GetOk("cloud_watch_logs_role_arn"); ok { input.CloudWatchLogsRoleArn = aws.String(v.(string)) } if v, ok := d.GetOk("include_global_service_events"); ok { input.IncludeGlobalServiceEvents = aws.Bool(v.(bool)) } if v, ok := d.GetOk("is_multi_region_trail"); ok { input.IsMultiRegionTrail = aws.Bool(v.(bool)) } if v, ok := d.GetOk("enable_log_file_validation"); ok { input.EnableLogFileValidation = aws.Bool(v.(bool)) } if v, ok := d.GetOk("kms_key_id"); ok { input.KmsKeyId = aws.String(v.(string)) } if v, ok := d.GetOk("s3_key_prefix"); ok { input.S3KeyPrefix = aws.String(v.(string)) } if v, ok := d.GetOk("sns_topic_name"); ok { input.SnsTopicName = aws.String(v.(string)) } t, err := conn.CreateTrail(&input) if err != nil { return err } log.Printf("[DEBUG] CloudTrail created: %s", t) d.Set("arn", *t.TrailARN) d.SetId(*t.Name) // AWS CloudTrail sets newly-created trails to false. if v, ok := d.GetOk("enable_logging"); ok && v.(bool) { err := cloudTrailSetLogging(conn, v.(bool), d.Id()) if err != nil { return err } } return resourceAwsCloudTrailUpdate(d, meta) }