func resourceAwsEcsTaskDefinitionCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ecsconn rawDefinitions := d.Get("container_definitions").(string) definitions, err := expandEcsContainerDefinitions(rawDefinitions) if err != nil { return err } input := ecs.RegisterTaskDefinitionInput{ ContainerDefinitions: definitions, Family: aws.String(d.Get("family").(string)), } if v, ok := d.GetOk("task_role_arn"); ok { input.TaskRoleArn = aws.String(v.(string)) } if v, ok := d.GetOk("network_mode"); ok { input.NetworkMode = aws.String(v.(string)) } if v, ok := d.GetOk("volume"); ok { volumes, err := expandEcsVolumes(v.(*schema.Set).List()) if err != nil { return err } input.Volumes = volumes } constraints := d.Get("placement_constraints").(*schema.Set).List() if len(constraints) > 0 { var pc []*ecs.TaskDefinitionPlacementConstraint for _, raw := range constraints { p := raw.(map[string]interface{}) pc = append(pc, &ecs.TaskDefinitionPlacementConstraint{ Type: aws.String(p["type"].(string)), Expression: aws.String(p["expression"].(string)), }) } input.PlacementConstraints = pc } log.Printf("[DEBUG] Registering ECS task definition: %s", input) out, err := conn.RegisterTaskDefinition(&input) if err != nil { return err } taskDefinition := *out.TaskDefinition log.Printf("[DEBUG] ECS task definition registered: %q (rev. %d)", *taskDefinition.TaskDefinitionArn, *taskDefinition.Revision) d.SetId(*taskDefinition.Family) d.Set("arn", taskDefinition.TaskDefinitionArn) return resourceAwsEcsTaskDefinitionRead(d, meta) }
func resourceAwsEcsTaskDefinitionCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ecsconn rawDefinitions := d.Get("container_definitions").(string) definitions, err := expandEcsContainerDefinitions(rawDefinitions) if err != nil { return err } input := ecs.RegisterTaskDefinitionInput{ ContainerDefinitions: definitions, Family: aws.String(d.Get("family").(string)), } if v, ok := d.GetOk("task_role_arn"); ok { input.TaskRoleArn = aws.String(v.(string)) } if v, ok := d.GetOk("network_mode"); ok { input.NetworkMode = aws.String(v.(string)) } if v, ok := d.GetOk("volume"); ok { volumes, err := expandEcsVolumes(v.(*schema.Set).List()) if err != nil { return err } input.Volumes = volumes } log.Printf("[DEBUG] Registering ECS task definition: %s", input) out, err := conn.RegisterTaskDefinition(&input) if err != nil { return err } taskDefinition := *out.TaskDefinition log.Printf("[DEBUG] ECS task definition registered: %q (rev. %d)", *taskDefinition.TaskDefinitionArn, *taskDefinition.Revision) d.SetId(*taskDefinition.Family) d.Set("arn", taskDefinition.TaskDefinitionArn) return resourceAwsEcsTaskDefinitionRead(d, meta) }