|
1 | 1 | package statuspage |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
4 | 5 | "log" |
| 6 | + "strings" |
5 | 7 |
|
6 | 8 | "github.com/hashicorp/terraform/helper/schema" |
7 | 9 | "github.com/hashicorp/terraform/helper/validation" |
@@ -105,12 +107,30 @@ func resourceMetricsProviderDelete(d *schema.ResourceData, m interface{}) error |
105 | 107 | return sp.DeleteMetricsProvider(client, d.Get("page_id").(string), d.Id()) |
106 | 108 | } |
107 | 109 |
|
| 110 | +func resourceMetricsProviderImport(d *schema.ResourceData, m interface{}) ([]*schema.ResourceData, error) { |
| 111 | + if len(strings.Split(d.Id(), "/")) != 2 { |
| 112 | + return []*schema.ResourceData{}, fmt.Errorf("[ERROR] Invalid resource format: %s. Please use 'page-id/metrics-provider-id'", d.Id()) |
| 113 | + } |
| 114 | + pageID := strings.Split(d.Id(), "/")[0] |
| 115 | + metricsProviderID := strings.Split(d.Id(), "/")[1] |
| 116 | + log.Printf("[INFO] Importing Metrics Provider %s from Page %s", metricsProviderID, pageID) |
| 117 | + |
| 118 | + d.Set("page_id", pageID) |
| 119 | + d.SetId(metricsProviderID) |
| 120 | + err := resourceMetricsProviderRead(d, m) |
| 121 | + |
| 122 | + return []*schema.ResourceData{d}, err |
| 123 | +} |
| 124 | + |
108 | 125 | func resourceMetricsProvider() *schema.Resource { |
109 | 126 | return &schema.Resource{ |
110 | 127 | Create: resourceMetricsProviderCreate, |
111 | 128 | Read: resourceMetricsProviderRead, |
112 | 129 | Update: resourceMetricsProviderUpdate, |
113 | 130 | Delete: resourceMetricsProviderDelete, |
| 131 | + Importer: &schema.ResourceImporter{ |
| 132 | + State: resourceMetricsProviderImport, |
| 133 | + }, |
114 | 134 |
|
115 | 135 | Schema: map[string]*schema.Schema{ |
116 | 136 | "page_id": { |
|
0 commit comments