You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: api_op_GetEnvironmentTemplateVersion.go
    path of file: ./repos/aws-sdk-go-v2/service/proton
    
    the code of the file until where you have to start completion: // Code generated by smithy-go-codegen DO NOT EDIT.

package proton

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/service/proton/types"
	"github.com/aws/smithy-go/middleware"
	smithytime "github.com/aws/smithy-go/time"
	smithyhttp "github.com/aws/smithy-go/transport/http"
	smithywaiter "github.com/aws/smithy-go/waiter"
	"github.com/jmespath/go-jmespath"
	"time"
)

// Get detailed data for a major or minor version of an environment template.
func
    
func NewEnvironmentTemplateVersionRegisteredWaiter(client GetEnvironmentTemplateVersionAPIClient, optFns ...func(*EnvironmentTemplateVersionRegisteredWaiterOptions)) *EnvironmentTemplateVersionRegisteredWaiter {
	options := EnvironmentTemplateVersionRegisteredWaiterOptions{}
	options.MinDelay = 2 * time.Second
	options.MaxDelay = 300 * time.Second
	options.Retryable = environmentTemplateVersionRegisteredStateRetryable

	for _, fn := range optFns {
		fn(&options)
	}
	return &EnvironmentTemplateVersionRegisteredWaiter{
		client:  client,
		options: options,
	}
}