provider.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. // Copyright (c) HashiCorp, Inc.
  2. // SPDX-License-Identifier: MPL-2.0
  3. package provider
  4. import (
  5. "context"
  6. "github.com/hashicorp/terraform-plugin-framework/datasource"
  7. "github.com/hashicorp/terraform-plugin-framework/provider"
  8. "github.com/hashicorp/terraform-plugin-framework/provider/schema"
  9. "github.com/hashicorp/terraform-plugin-framework/resource"
  10. )
  11. // Ensure hashicupsProvider satisfies various provider interfaces.
  12. var _ provider.Provider = &hashicupsProvider{}
  13. // New is a helper function to simplify provider server and testing implementation.
  14. func New(version string) func() provider.Provider {
  15. return func() provider.Provider {
  16. return &hashicupsProvider{
  17. version: version,
  18. }
  19. }
  20. }
  21. // hashicupsProvider defines the provider implementation.
  22. type hashicupsProvider struct {
  23. // version is set to the provider version on release, "dev" when the
  24. // provider is built and ran locally, and "test" when running acceptance
  25. // testing.
  26. version string
  27. }
  28. func (p *hashicupsProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) {
  29. resp.TypeName = "hashicups"
  30. resp.Version = p.version
  31. }
  32. func (p *hashicupsProvider) Schema(_ context.Context, _ provider.SchemaRequest, resp *provider.SchemaResponse) {
  33. resp.Schema = schema.Schema{}
  34. }
  35. func (p *hashicupsProvider) Configure(_ context.Context, _ provider.ConfigureRequest, _ *provider.ConfigureResponse) {
  36. }
  37. func (p *hashicupsProvider) DataSources(_ context.Context) []func() datasource.DataSource {
  38. return nil
  39. }
  40. func (p *hashicupsProvider) Resources(_ context.Context) []func() resource.Resource {
  41. return nil
  42. }
  43. //// Ensure hashicupsProvider satisfies various provider interfaces.
  44. //var _ provider.Provider = &hashicupsProvider{}
  45. //var _ provider.ProviderWithFunctions = &hashicupsProvider{}
  46. //
  47. //// hashicupsProvider defines the provider implementation.
  48. //type hashicupsProvider struct {
  49. // // version is set to the provider version on release, "dev" when the
  50. // // provider is built and ran locally, and "test" when running acceptance
  51. // // testing.
  52. // version string
  53. //}
  54. //
  55. //// ScaffoldingProviderModel describes the provider data model.
  56. //type ScaffoldingProviderModel struct {
  57. // Endpoint types.String `tfsdk:"endpoint"`
  58. //}
  59. //
  60. //func (p *hashicupsProvider) Metadata(ctx context.Context, req provider.MetadataRequest, resp *provider.MetadataResponse) {
  61. // resp.TypeName = "scaffolding"
  62. // resp.Version = p.version
  63. //}
  64. //
  65. //func (p *hashicupsProvider) Schema(ctx context.Context, req provider.SchemaRequest, resp *provider.SchemaResponse) {
  66. // resp.Schema = schema.Schema{
  67. // Attributes: map[string]schema.Attribute{
  68. // "endpoint": schema.StringAttribute{
  69. // MarkdownDescription: "Example provider attribute",
  70. // Optional: true,
  71. // },
  72. // },
  73. // }
  74. //}
  75. //
  76. //func (p *hashicupsProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) {
  77. // var data ScaffoldingProviderModel
  78. //
  79. // resp.Diagnostics.Append(req.Config.Get(ctx, &data)...)
  80. //
  81. // if resp.Diagnostics.HasError() {
  82. // return
  83. // }
  84. //
  85. // // Configuration values are now available.
  86. // // if data.Endpoint.IsNull() { /* ... */ }
  87. //
  88. // // Example client configuration for data sources and resources
  89. // client := http.DefaultClient
  90. // resp.DataSourceData = client
  91. // resp.ResourceData = client
  92. //}
  93. //
  94. //func (p *hashicupsProvider) Resources(ctx context.Context) []func() resource.Resource {
  95. // return []func() resource.Resource{
  96. // NewExampleResource,
  97. // }
  98. //}
  99. //
  100. //func (p *hashicupsProvider) DataSources(ctx context.Context) []func() datasource.DataSource {
  101. // return []func() datasource.DataSource{
  102. // NewExampleDataSource,
  103. // }
  104. //}
  105. //
  106. //func (p *hashicupsProvider) Functions(ctx context.Context) []func() function.Function {
  107. // return []func() function.Function{
  108. // NewExampleFunction,
  109. // }
  110. //}
  111. //
  112. //func New(version string) func() provider.Provider {
  113. // return func() provider.Provider {
  114. // return &hashicupsProvider{
  115. // version: version,
  116. // }
  117. // }
  118. //}