@@ -36,44 +36,47 @@ func init() {
3636func Provider (version string ) * schema.Provider {
3737 var (
3838 // Resources that require the Grafana client to exist.
39- grafanaClientResources = addResourcesMetadataValidation (grafanaClientPresent , map [string ]* schema.Resource {
40- // Grafana
41- "grafana_annotation" : grafana .ResourceAnnotation (),
42- "grafana_api_key" : grafana .ResourceAPIKey (),
43- "grafana_contact_point" : grafana .ResourceContactPoint (),
44- "grafana_dashboard" : grafana .ResourceDashboard (),
45- "grafana_dashboard_public" : grafana .ResourcePublicDashboard (),
46- "grafana_dashboard_permission" : grafana .ResourceDashboardPermission (),
47- "grafana_data_source" : grafana .ResourceDataSource (),
48- "grafana_data_source_permission" : grafana .ResourceDatasourcePermission (),
49- "grafana_folder" : grafana .ResourceFolder (),
50- "grafana_folder_permission" : grafana .ResourceFolderPermission (),
51- "grafana_library_panel" : grafana .ResourceLibraryPanel (),
52- "grafana_message_template" : grafana .ResourceMessageTemplate (),
53- "grafana_mute_timing" : grafana .ResourceMuteTiming (),
54- "grafana_notification_policy" : grafana .ResourceNotificationPolicy (),
55- "grafana_organization" : grafana .ResourceOrganization (),
56- "grafana_organization_preferences" : grafana .ResourceOrganizationPreferences (),
57- "grafana_playlist" : grafana .ResourcePlaylist (),
58- "grafana_report" : grafana .ResourceReport (),
59- "grafana_role" : grafana .ResourceRole (),
60- "grafana_role_assignment" : grafana .ResourceRoleAssignment (),
61- "grafana_rule_group" : grafana .ResourceRuleGroup (),
62- "grafana_team" : grafana .ResourceTeam (),
63- "grafana_team_external_group" : grafana .ResourceTeamExternalGroup (),
64- "grafana_service_account_token" : grafana .ResourceServiceAccountToken (),
65- "grafana_service_account" : grafana .ResourceServiceAccount (),
66- "grafana_service_account_permission" : grafana .ResourceServiceAccountPermission (),
67- "grafana_user" : grafana .ResourceUser (),
68-
69- // Machine Learning
70- "grafana_machine_learning_job" : machinelearning .ResourceJob (),
71- "grafana_machine_learning_holiday" : machinelearning .ResourceHoliday (),
72- "grafana_machine_learning_outlier_detector" : machinelearning .ResourceOutlierDetector (),
73-
74- // SLO
75- "grafana_slo" : slo .ResourceSlo (),
76- })
39+ grafanaClientResources = addCreateReadResourcesMetadataValidation (
40+ readGrafanaClientValidation ,
41+ createGrafanaClientValidation ,
42+ map [string ]* schema.Resource {
43+ // Grafana
44+ "grafana_annotation" : grafana .ResourceAnnotation (),
45+ "grafana_api_key" : grafana .ResourceAPIKey (),
46+ "grafana_contact_point" : grafana .ResourceContactPoint (),
47+ "grafana_dashboard" : grafana .ResourceDashboard (),
48+ "grafana_dashboard_public" : grafana .ResourcePublicDashboard (),
49+ "grafana_dashboard_permission" : grafana .ResourceDashboardPermission (),
50+ "grafana_data_source" : grafana .ResourceDataSource (),
51+ "grafana_data_source_permission" : grafana .ResourceDatasourcePermission (),
52+ "grafana_folder" : grafana .ResourceFolder (),
53+ "grafana_folder_permission" : grafana .ResourceFolderPermission (),
54+ "grafana_library_panel" : grafana .ResourceLibraryPanel (),
55+ "grafana_message_template" : grafana .ResourceMessageTemplate (),
56+ "grafana_mute_timing" : grafana .ResourceMuteTiming (),
57+ "grafana_notification_policy" : grafana .ResourceNotificationPolicy (),
58+ "grafana_organization" : grafana .ResourceOrganization (),
59+ "grafana_organization_preferences" : grafana .ResourceOrganizationPreferences (),
60+ "grafana_playlist" : grafana .ResourcePlaylist (),
61+ "grafana_report" : grafana .ResourceReport (),
62+ "grafana_role" : grafana .ResourceRole (),
63+ "grafana_role_assignment" : grafana .ResourceRoleAssignment (),
64+ "grafana_rule_group" : grafana .ResourceRuleGroup (),
65+ "grafana_team" : grafana .ResourceTeam (),
66+ "grafana_team_external_group" : grafana .ResourceTeamExternalGroup (),
67+ "grafana_service_account_token" : grafana .ResourceServiceAccountToken (),
68+ "grafana_service_account" : grafana .ResourceServiceAccount (),
69+ "grafana_service_account_permission" : grafana .ResourceServiceAccountPermission (),
70+ "grafana_user" : grafana .ResourceUser (),
71+
72+ // Machine Learning
73+ "grafana_machine_learning_job" : machinelearning .ResourceJob (),
74+ "grafana_machine_learning_holiday" : machinelearning .ResourceHoliday (),
75+ "grafana_machine_learning_outlier_detector" : machinelearning .ResourceOutlierDetector (),
76+
77+ // SLO
78+ "grafana_slo" : slo .ResourceSlo (),
79+ })
7780
7881 // Resources that require the Synthetic Monitoring client to exist.
7982 smClientResources = addResourcesMetadataValidation (smClientPresent , map [string ]* schema.Resource {
@@ -106,24 +109,27 @@ func Provider(version string) *schema.Provider {
106109 })
107110
108111 // Datasources that require the Grafana client to exist.
109- grafanaClientDatasources = addResourcesMetadataValidation (grafanaClientPresent , map [string ]* schema.Resource {
110- "grafana_dashboard" : grafana .DatasourceDashboard (),
111- "grafana_dashboards" : grafana .DatasourceDashboards (),
112- "grafana_data_source" : grafana .DatasourceDatasource (),
113- "grafana_folder" : grafana .DatasourceFolder (),
114- "grafana_folders" : grafana .DatasourceFolders (),
115- "grafana_library_panel" : grafana .DatasourceLibraryPanel (),
116- "grafana_user" : grafana .DatasourceUser (),
117- "grafana_users" : grafana .DatasourceUsers (),
118- "grafana_role" : grafana .DatasourceRole (),
119- "grafana_service_account" : grafana .DatasourceServiceAccount (),
120- "grafana_team" : grafana .DatasourceTeam (),
121- "grafana_organization" : grafana .DatasourceOrganization (),
122- "grafana_organization_preferences" : grafana .DatasourceOrganizationPreferences (),
123-
124- // SLO
125- "grafana_slos" : slo .DatasourceSlo (),
126- })
112+ grafanaClientDatasources = addCreateReadResourcesMetadataValidation (
113+ readGrafanaClientValidation ,
114+ createGrafanaClientValidation ,
115+ map [string ]* schema.Resource {
116+ "grafana_dashboard" : grafana .DatasourceDashboard (),
117+ "grafana_dashboards" : grafana .DatasourceDashboards (),
118+ "grafana_data_source" : grafana .DatasourceDatasource (),
119+ "grafana_folder" : grafana .DatasourceFolder (),
120+ "grafana_folders" : grafana .DatasourceFolders (),
121+ "grafana_library_panel" : grafana .DatasourceLibraryPanel (),
122+ "grafana_user" : grafana .DatasourceUser (),
123+ "grafana_users" : grafana .DatasourceUsers (),
124+ "grafana_role" : grafana .DatasourceRole (),
125+ "grafana_service_account" : grafana .DatasourceServiceAccount (),
126+ "grafana_team" : grafana .DatasourceTeam (),
127+ "grafana_organization" : grafana .DatasourceOrganization (),
128+ "grafana_organization_preferences" : grafana .DatasourceOrganizationPreferences (),
129+
130+ // SLO
131+ "grafana_slos" : slo .DatasourceSlo (),
132+ })
127133
128134 // Datasources that require the Synthetic Monitoring client to exist.
129135 smClientDatasources = addResourcesMetadataValidation (smClientPresent , map [string ]* schema.Resource {
0 commit comments