func resourceServerCreate(d *schema.ResourceData, m interface{}) error { scaleway := m.(*api.ScalewayAPI) image := d.Get("image").(string) volumes := make(map[string]string) /*for k, v := range d.Get("volumes").(map[string]interface{}) { volumes[k] = v.(string) }*/ var def api.ScalewayServerDefinition def.Name = d.Get("name").(string) def.Image = &image def.Volumes = volumes ipRequired := false def.DynamicIPRequired = &ipRequired def.CommercialType = d.Get("type").(string) if bootscriptI, ok := d.GetOk("bootscript"); ok { bootscript := bootscriptI.(string) def.Bootscript = &bootscript } if tags, ok := d.GetOk("tags"); ok { def.Tags = tags.([]string) } id, err := scaleway.PostServer(def) if err != nil { serr := err.(api.ScalewayAPIError) // _, _ := json.Marshal(def) return fmt.Errorf("Error Posting server with image %s. Reason: %s", image, serr.APIMessage) } err = scaleway.PostServerAction(id, "poweron") if err != nil { return err } d.SetId(id) _, err = api.WaitForServerState(scaleway, id, "running") if err != nil { return err } return resourceServerRead(d, m) }