]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/plugin/resource_provider.go
deps: github.com/hashicorp/terraform@sdk-v0.11-with-go-modules
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / plugin / resource_provider.go
index 473f78601314cde0a8d69e9917243f4d13710677..d6a433c4e561aeb86bffd03a4b87de09994a48d5 100644 (file)
@@ -41,6 +41,24 @@ func (p *ResourceProvider) Stop() error {
        return err
 }
 
+func (p *ResourceProvider) GetSchema(req *terraform.ProviderSchemaRequest) (*terraform.ProviderSchema, error) {
+       var result ResourceProviderGetSchemaResponse
+       args := &ResourceProviderGetSchemaArgs{
+               Req: req,
+       }
+
+       err := p.Client.Call("Plugin.GetSchema", args, &result)
+       if err != nil {
+               return nil, err
+       }
+
+       if result.Error != nil {
+               err = result.Error
+       }
+
+       return result.Schema, err
+}
+
 func (p *ResourceProvider) Input(
        input terraform.UIInput,
        c *terraform.ResourceConfig) (*terraform.ResourceConfig, error) {
@@ -312,6 +330,15 @@ type ResourceProviderStopResponse struct {
        Error *plugin.BasicError
 }
 
+type ResourceProviderGetSchemaArgs struct {
+       Req *terraform.ProviderSchemaRequest
+}
+
+type ResourceProviderGetSchemaResponse struct {
+       Schema *terraform.ProviderSchema
+       Error  *plugin.BasicError
+}
+
 type ResourceProviderConfigureResponse struct {
        Error *plugin.BasicError
 }
@@ -418,6 +445,18 @@ func (s *ResourceProviderServer) Stop(
        return nil
 }
 
+func (s *ResourceProviderServer) GetSchema(
+       args *ResourceProviderGetSchemaArgs,
+       result *ResourceProviderGetSchemaResponse,
+) error {
+       schema, err := s.Provider.GetSchema(args.Req)
+       result.Schema = schema
+       if err != nil {
+               result.Error = plugin.NewBasicError(err)
+       }
+       return nil
+}
+
 func (s *ResourceProviderServer) Input(
        args *ResourceProviderInputArgs,
        reply *ResourceProviderInputResponse) error {