github.com/aavshr/aws-sdk-go@v1.41.3/service/servicediscovery/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package servicediscovery
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const opCreateHttpNamespace = "CreateHttpNamespace"
    17  
    18  // CreateHttpNamespaceRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateHttpNamespace operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See CreateHttpNamespace for more information on using the CreateHttpNamespace
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the CreateHttpNamespaceRequest method.
    34  //    req, resp := client.CreateHttpNamespaceRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateHttpNamespace
    42  func (c *ServiceDiscovery) CreateHttpNamespaceRequest(input *CreateHttpNamespaceInput) (req *request.Request, output *CreateHttpNamespaceOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateHttpNamespace,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateHttpNamespaceInput{}
    51  	}
    52  
    53  	output = &CreateHttpNamespaceOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateHttpNamespace API operation for AWS Cloud Map.
    59  //
    60  // Creates an HTTP namespace. Service instances registered using an HTTP namespace
    61  // can be discovered using a DiscoverInstances request but can't be discovered
    62  // using DNS.
    63  //
    64  // For the current quota on the number of namespaces that you can create using
    65  // the same account, see Cloud Map quotas (https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html)
    66  // in the Cloud Map Developer Guide.
    67  //
    68  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    69  // with awserr.Error's Code and Message methods to get detailed information about
    70  // the error.
    71  //
    72  // See the AWS API reference guide for AWS Cloud Map's
    73  // API operation CreateHttpNamespace for usage and error information.
    74  //
    75  // Returned Error Types:
    76  //   * InvalidInput
    77  //   One or more specified values aren't valid. For example, a required value
    78  //   might be missing, a numeric value might be outside the allowed range, or
    79  //   a string value might exceed length constraints.
    80  //
    81  //   * NamespaceAlreadyExists
    82  //   The namespace that you're trying to create already exists.
    83  //
    84  //   * ResourceLimitExceeded
    85  //   The resource can't be created because you've reached the quota on the number
    86  //   of resources.
    87  //
    88  //   * DuplicateRequest
    89  //   The operation is already in progress.
    90  //
    91  //   * TooManyTagsException
    92  //   The list of tags on the resource is over the quota. The maximum number of
    93  //   tags that can be applied to a resource is 50.
    94  //
    95  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateHttpNamespace
    96  func (c *ServiceDiscovery) CreateHttpNamespace(input *CreateHttpNamespaceInput) (*CreateHttpNamespaceOutput, error) {
    97  	req, out := c.CreateHttpNamespaceRequest(input)
    98  	return out, req.Send()
    99  }
   100  
   101  // CreateHttpNamespaceWithContext is the same as CreateHttpNamespace with the addition of
   102  // the ability to pass a context and additional request options.
   103  //
   104  // See CreateHttpNamespace for details on how to use this API operation.
   105  //
   106  // The context must be non-nil and will be used for request cancellation. If
   107  // the context is nil a panic will occur. In the future the SDK may create
   108  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   109  // for more information on using Contexts.
   110  func (c *ServiceDiscovery) CreateHttpNamespaceWithContext(ctx aws.Context, input *CreateHttpNamespaceInput, opts ...request.Option) (*CreateHttpNamespaceOutput, error) {
   111  	req, out := c.CreateHttpNamespaceRequest(input)
   112  	req.SetContext(ctx)
   113  	req.ApplyOptions(opts...)
   114  	return out, req.Send()
   115  }
   116  
   117  const opCreatePrivateDnsNamespace = "CreatePrivateDnsNamespace"
   118  
   119  // CreatePrivateDnsNamespaceRequest generates a "aws/request.Request" representing the
   120  // client's request for the CreatePrivateDnsNamespace operation. The "output" return
   121  // value will be populated with the request's response once the request completes
   122  // successfully.
   123  //
   124  // Use "Send" method on the returned Request to send the API call to the service.
   125  // the "output" return value is not valid until after Send returns without error.
   126  //
   127  // See CreatePrivateDnsNamespace for more information on using the CreatePrivateDnsNamespace
   128  // API call, and error handling.
   129  //
   130  // This method is useful when you want to inject custom logic or configuration
   131  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   132  //
   133  //
   134  //    // Example sending a request using the CreatePrivateDnsNamespaceRequest method.
   135  //    req, resp := client.CreatePrivateDnsNamespaceRequest(params)
   136  //
   137  //    err := req.Send()
   138  //    if err == nil { // resp is now filled
   139  //        fmt.Println(resp)
   140  //    }
   141  //
   142  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePrivateDnsNamespace
   143  func (c *ServiceDiscovery) CreatePrivateDnsNamespaceRequest(input *CreatePrivateDnsNamespaceInput) (req *request.Request, output *CreatePrivateDnsNamespaceOutput) {
   144  	op := &request.Operation{
   145  		Name:       opCreatePrivateDnsNamespace,
   146  		HTTPMethod: "POST",
   147  		HTTPPath:   "/",
   148  	}
   149  
   150  	if input == nil {
   151  		input = &CreatePrivateDnsNamespaceInput{}
   152  	}
   153  
   154  	output = &CreatePrivateDnsNamespaceOutput{}
   155  	req = c.newRequest(op, input, output)
   156  	return
   157  }
   158  
   159  // CreatePrivateDnsNamespace API operation for AWS Cloud Map.
   160  //
   161  // Creates a private namespace based on DNS, which is visible only inside a
   162  // specified Amazon VPC. The namespace defines your service naming scheme. For
   163  // example, if you name your namespace example.com and name your service backend,
   164  // the resulting DNS name for the service is backend.example.com. Service instances
   165  // that are registered using a private DNS namespace can be discovered using
   166  // either a DiscoverInstances request or using DNS. For the current quota on
   167  // the number of namespaces that you can create using the same account, see
   168  // Cloud Map quotas (https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html)
   169  // in the Cloud Map Developer Guide.
   170  //
   171  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   172  // with awserr.Error's Code and Message methods to get detailed information about
   173  // the error.
   174  //
   175  // See the AWS API reference guide for AWS Cloud Map's
   176  // API operation CreatePrivateDnsNamespace for usage and error information.
   177  //
   178  // Returned Error Types:
   179  //   * InvalidInput
   180  //   One or more specified values aren't valid. For example, a required value
   181  //   might be missing, a numeric value might be outside the allowed range, or
   182  //   a string value might exceed length constraints.
   183  //
   184  //   * NamespaceAlreadyExists
   185  //   The namespace that you're trying to create already exists.
   186  //
   187  //   * ResourceLimitExceeded
   188  //   The resource can't be created because you've reached the quota on the number
   189  //   of resources.
   190  //
   191  //   * DuplicateRequest
   192  //   The operation is already in progress.
   193  //
   194  //   * TooManyTagsException
   195  //   The list of tags on the resource is over the quota. The maximum number of
   196  //   tags that can be applied to a resource is 50.
   197  //
   198  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePrivateDnsNamespace
   199  func (c *ServiceDiscovery) CreatePrivateDnsNamespace(input *CreatePrivateDnsNamespaceInput) (*CreatePrivateDnsNamespaceOutput, error) {
   200  	req, out := c.CreatePrivateDnsNamespaceRequest(input)
   201  	return out, req.Send()
   202  }
   203  
   204  // CreatePrivateDnsNamespaceWithContext is the same as CreatePrivateDnsNamespace with the addition of
   205  // the ability to pass a context and additional request options.
   206  //
   207  // See CreatePrivateDnsNamespace for details on how to use this API operation.
   208  //
   209  // The context must be non-nil and will be used for request cancellation. If
   210  // the context is nil a panic will occur. In the future the SDK may create
   211  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   212  // for more information on using Contexts.
   213  func (c *ServiceDiscovery) CreatePrivateDnsNamespaceWithContext(ctx aws.Context, input *CreatePrivateDnsNamespaceInput, opts ...request.Option) (*CreatePrivateDnsNamespaceOutput, error) {
   214  	req, out := c.CreatePrivateDnsNamespaceRequest(input)
   215  	req.SetContext(ctx)
   216  	req.ApplyOptions(opts...)
   217  	return out, req.Send()
   218  }
   219  
   220  const opCreatePublicDnsNamespace = "CreatePublicDnsNamespace"
   221  
   222  // CreatePublicDnsNamespaceRequest generates a "aws/request.Request" representing the
   223  // client's request for the CreatePublicDnsNamespace operation. The "output" return
   224  // value will be populated with the request's response once the request completes
   225  // successfully.
   226  //
   227  // Use "Send" method on the returned Request to send the API call to the service.
   228  // the "output" return value is not valid until after Send returns without error.
   229  //
   230  // See CreatePublicDnsNamespace for more information on using the CreatePublicDnsNamespace
   231  // API call, and error handling.
   232  //
   233  // This method is useful when you want to inject custom logic or configuration
   234  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   235  //
   236  //
   237  //    // Example sending a request using the CreatePublicDnsNamespaceRequest method.
   238  //    req, resp := client.CreatePublicDnsNamespaceRequest(params)
   239  //
   240  //    err := req.Send()
   241  //    if err == nil { // resp is now filled
   242  //        fmt.Println(resp)
   243  //    }
   244  //
   245  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePublicDnsNamespace
   246  func (c *ServiceDiscovery) CreatePublicDnsNamespaceRequest(input *CreatePublicDnsNamespaceInput) (req *request.Request, output *CreatePublicDnsNamespaceOutput) {
   247  	op := &request.Operation{
   248  		Name:       opCreatePublicDnsNamespace,
   249  		HTTPMethod: "POST",
   250  		HTTPPath:   "/",
   251  	}
   252  
   253  	if input == nil {
   254  		input = &CreatePublicDnsNamespaceInput{}
   255  	}
   256  
   257  	output = &CreatePublicDnsNamespaceOutput{}
   258  	req = c.newRequest(op, input, output)
   259  	return
   260  }
   261  
   262  // CreatePublicDnsNamespace API operation for AWS Cloud Map.
   263  //
   264  // Creates a public namespace based on DNS, which is visible on the internet.
   265  // The namespace defines your service naming scheme. For example, if you name
   266  // your namespace example.com and name your service backend, the resulting DNS
   267  // name for the service is backend.example.com. You can discover instances that
   268  // were registered with a public DNS namespace by using either a DiscoverInstances
   269  // request or using DNS. For the current quota on the number of namespaces that
   270  // you can create using the same account, see Cloud Map quotas (https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html)
   271  // in the Cloud Map Developer Guide.
   272  //
   273  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   274  // with awserr.Error's Code and Message methods to get detailed information about
   275  // the error.
   276  //
   277  // See the AWS API reference guide for AWS Cloud Map's
   278  // API operation CreatePublicDnsNamespace for usage and error information.
   279  //
   280  // Returned Error Types:
   281  //   * InvalidInput
   282  //   One or more specified values aren't valid. For example, a required value
   283  //   might be missing, a numeric value might be outside the allowed range, or
   284  //   a string value might exceed length constraints.
   285  //
   286  //   * NamespaceAlreadyExists
   287  //   The namespace that you're trying to create already exists.
   288  //
   289  //   * ResourceLimitExceeded
   290  //   The resource can't be created because you've reached the quota on the number
   291  //   of resources.
   292  //
   293  //   * DuplicateRequest
   294  //   The operation is already in progress.
   295  //
   296  //   * TooManyTagsException
   297  //   The list of tags on the resource is over the quota. The maximum number of
   298  //   tags that can be applied to a resource is 50.
   299  //
   300  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePublicDnsNamespace
   301  func (c *ServiceDiscovery) CreatePublicDnsNamespace(input *CreatePublicDnsNamespaceInput) (*CreatePublicDnsNamespaceOutput, error) {
   302  	req, out := c.CreatePublicDnsNamespaceRequest(input)
   303  	return out, req.Send()
   304  }
   305  
   306  // CreatePublicDnsNamespaceWithContext is the same as CreatePublicDnsNamespace with the addition of
   307  // the ability to pass a context and additional request options.
   308  //
   309  // See CreatePublicDnsNamespace for details on how to use this API operation.
   310  //
   311  // The context must be non-nil and will be used for request cancellation. If
   312  // the context is nil a panic will occur. In the future the SDK may create
   313  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   314  // for more information on using Contexts.
   315  func (c *ServiceDiscovery) CreatePublicDnsNamespaceWithContext(ctx aws.Context, input *CreatePublicDnsNamespaceInput, opts ...request.Option) (*CreatePublicDnsNamespaceOutput, error) {
   316  	req, out := c.CreatePublicDnsNamespaceRequest(input)
   317  	req.SetContext(ctx)
   318  	req.ApplyOptions(opts...)
   319  	return out, req.Send()
   320  }
   321  
   322  const opCreateService = "CreateService"
   323  
   324  // CreateServiceRequest generates a "aws/request.Request" representing the
   325  // client's request for the CreateService operation. The "output" return
   326  // value will be populated with the request's response once the request completes
   327  // successfully.
   328  //
   329  // Use "Send" method on the returned Request to send the API call to the service.
   330  // the "output" return value is not valid until after Send returns without error.
   331  //
   332  // See CreateService for more information on using the CreateService
   333  // API call, and error handling.
   334  //
   335  // This method is useful when you want to inject custom logic or configuration
   336  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   337  //
   338  //
   339  //    // Example sending a request using the CreateServiceRequest method.
   340  //    req, resp := client.CreateServiceRequest(params)
   341  //
   342  //    err := req.Send()
   343  //    if err == nil { // resp is now filled
   344  //        fmt.Println(resp)
   345  //    }
   346  //
   347  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateService
   348  func (c *ServiceDiscovery) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
   349  	op := &request.Operation{
   350  		Name:       opCreateService,
   351  		HTTPMethod: "POST",
   352  		HTTPPath:   "/",
   353  	}
   354  
   355  	if input == nil {
   356  		input = &CreateServiceInput{}
   357  	}
   358  
   359  	output = &CreateServiceOutput{}
   360  	req = c.newRequest(op, input, output)
   361  	return
   362  }
   363  
   364  // CreateService API operation for AWS Cloud Map.
   365  //
   366  // Creates a service. This action defines the configuration for the following
   367  // entities:
   368  //
   369  //    * For public and private DNS namespaces, one of the following combinations
   370  //    of DNS records in Amazon Route 53: A AAAA A and AAAA SRV CNAME
   371  //
   372  //    * Optionally, a health check
   373  //
   374  // After you create the service, you can submit a RegisterInstance (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
   375  // request, and Cloud Map uses the values in the configuration to create the
   376  // specified entities.
   377  //
   378  // For the current quota on the number of instances that you can register using
   379  // the same namespace and using the same service, see Cloud Map quotas (https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html)
   380  // in the Cloud Map Developer Guide.
   381  //
   382  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   383  // with awserr.Error's Code and Message methods to get detailed information about
   384  // the error.
   385  //
   386  // See the AWS API reference guide for AWS Cloud Map's
   387  // API operation CreateService for usage and error information.
   388  //
   389  // Returned Error Types:
   390  //   * InvalidInput
   391  //   One or more specified values aren't valid. For example, a required value
   392  //   might be missing, a numeric value might be outside the allowed range, or
   393  //   a string value might exceed length constraints.
   394  //
   395  //   * ResourceLimitExceeded
   396  //   The resource can't be created because you've reached the quota on the number
   397  //   of resources.
   398  //
   399  //   * NamespaceNotFound
   400  //   No namespace exists with the specified ID.
   401  //
   402  //   * ServiceAlreadyExists
   403  //   The service can't be created because a service with the same name already
   404  //   exists.
   405  //
   406  //   * TooManyTagsException
   407  //   The list of tags on the resource is over the quota. The maximum number of
   408  //   tags that can be applied to a resource is 50.
   409  //
   410  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateService
   411  func (c *ServiceDiscovery) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
   412  	req, out := c.CreateServiceRequest(input)
   413  	return out, req.Send()
   414  }
   415  
   416  // CreateServiceWithContext is the same as CreateService with the addition of
   417  // the ability to pass a context and additional request options.
   418  //
   419  // See CreateService for details on how to use this API operation.
   420  //
   421  // The context must be non-nil and will be used for request cancellation. If
   422  // the context is nil a panic will occur. In the future the SDK may create
   423  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   424  // for more information on using Contexts.
   425  func (c *ServiceDiscovery) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
   426  	req, out := c.CreateServiceRequest(input)
   427  	req.SetContext(ctx)
   428  	req.ApplyOptions(opts...)
   429  	return out, req.Send()
   430  }
   431  
   432  const opDeleteNamespace = "DeleteNamespace"
   433  
   434  // DeleteNamespaceRequest generates a "aws/request.Request" representing the
   435  // client's request for the DeleteNamespace operation. The "output" return
   436  // value will be populated with the request's response once the request completes
   437  // successfully.
   438  //
   439  // Use "Send" method on the returned Request to send the API call to the service.
   440  // the "output" return value is not valid until after Send returns without error.
   441  //
   442  // See DeleteNamespace for more information on using the DeleteNamespace
   443  // API call, and error handling.
   444  //
   445  // This method is useful when you want to inject custom logic or configuration
   446  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   447  //
   448  //
   449  //    // Example sending a request using the DeleteNamespaceRequest method.
   450  //    req, resp := client.DeleteNamespaceRequest(params)
   451  //
   452  //    err := req.Send()
   453  //    if err == nil { // resp is now filled
   454  //        fmt.Println(resp)
   455  //    }
   456  //
   457  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteNamespace
   458  func (c *ServiceDiscovery) DeleteNamespaceRequest(input *DeleteNamespaceInput) (req *request.Request, output *DeleteNamespaceOutput) {
   459  	op := &request.Operation{
   460  		Name:       opDeleteNamespace,
   461  		HTTPMethod: "POST",
   462  		HTTPPath:   "/",
   463  	}
   464  
   465  	if input == nil {
   466  		input = &DeleteNamespaceInput{}
   467  	}
   468  
   469  	output = &DeleteNamespaceOutput{}
   470  	req = c.newRequest(op, input, output)
   471  	return
   472  }
   473  
   474  // DeleteNamespace API operation for AWS Cloud Map.
   475  //
   476  // Deletes a namespace from the current account. If the namespace still contains
   477  // one or more services, the request fails.
   478  //
   479  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   480  // with awserr.Error's Code and Message methods to get detailed information about
   481  // the error.
   482  //
   483  // See the AWS API reference guide for AWS Cloud Map's
   484  // API operation DeleteNamespace for usage and error information.
   485  //
   486  // Returned Error Types:
   487  //   * InvalidInput
   488  //   One or more specified values aren't valid. For example, a required value
   489  //   might be missing, a numeric value might be outside the allowed range, or
   490  //   a string value might exceed length constraints.
   491  //
   492  //   * NamespaceNotFound
   493  //   No namespace exists with the specified ID.
   494  //
   495  //   * ResourceInUse
   496  //   The specified resource can't be deleted because it contains other resources.
   497  //   For example, you can't delete a service that contains any instances.
   498  //
   499  //   * DuplicateRequest
   500  //   The operation is already in progress.
   501  //
   502  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteNamespace
   503  func (c *ServiceDiscovery) DeleteNamespace(input *DeleteNamespaceInput) (*DeleteNamespaceOutput, error) {
   504  	req, out := c.DeleteNamespaceRequest(input)
   505  	return out, req.Send()
   506  }
   507  
   508  // DeleteNamespaceWithContext is the same as DeleteNamespace with the addition of
   509  // the ability to pass a context and additional request options.
   510  //
   511  // See DeleteNamespace for details on how to use this API operation.
   512  //
   513  // The context must be non-nil and will be used for request cancellation. If
   514  // the context is nil a panic will occur. In the future the SDK may create
   515  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   516  // for more information on using Contexts.
   517  func (c *ServiceDiscovery) DeleteNamespaceWithContext(ctx aws.Context, input *DeleteNamespaceInput, opts ...request.Option) (*DeleteNamespaceOutput, error) {
   518  	req, out := c.DeleteNamespaceRequest(input)
   519  	req.SetContext(ctx)
   520  	req.ApplyOptions(opts...)
   521  	return out, req.Send()
   522  }
   523  
   524  const opDeleteService = "DeleteService"
   525  
   526  // DeleteServiceRequest generates a "aws/request.Request" representing the
   527  // client's request for the DeleteService operation. The "output" return
   528  // value will be populated with the request's response once the request completes
   529  // successfully.
   530  //
   531  // Use "Send" method on the returned Request to send the API call to the service.
   532  // the "output" return value is not valid until after Send returns without error.
   533  //
   534  // See DeleteService for more information on using the DeleteService
   535  // API call, and error handling.
   536  //
   537  // This method is useful when you want to inject custom logic or configuration
   538  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   539  //
   540  //
   541  //    // Example sending a request using the DeleteServiceRequest method.
   542  //    req, resp := client.DeleteServiceRequest(params)
   543  //
   544  //    err := req.Send()
   545  //    if err == nil { // resp is now filled
   546  //        fmt.Println(resp)
   547  //    }
   548  //
   549  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteService
   550  func (c *ServiceDiscovery) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
   551  	op := &request.Operation{
   552  		Name:       opDeleteService,
   553  		HTTPMethod: "POST",
   554  		HTTPPath:   "/",
   555  	}
   556  
   557  	if input == nil {
   558  		input = &DeleteServiceInput{}
   559  	}
   560  
   561  	output = &DeleteServiceOutput{}
   562  	req = c.newRequest(op, input, output)
   563  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   564  	return
   565  }
   566  
   567  // DeleteService API operation for AWS Cloud Map.
   568  //
   569  // Deletes a specified service. If the service still contains one or more registered
   570  // instances, the request fails.
   571  //
   572  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   573  // with awserr.Error's Code and Message methods to get detailed information about
   574  // the error.
   575  //
   576  // See the AWS API reference guide for AWS Cloud Map's
   577  // API operation DeleteService for usage and error information.
   578  //
   579  // Returned Error Types:
   580  //   * InvalidInput
   581  //   One or more specified values aren't valid. For example, a required value
   582  //   might be missing, a numeric value might be outside the allowed range, or
   583  //   a string value might exceed length constraints.
   584  //
   585  //   * ServiceNotFound
   586  //   No service exists with the specified ID.
   587  //
   588  //   * ResourceInUse
   589  //   The specified resource can't be deleted because it contains other resources.
   590  //   For example, you can't delete a service that contains any instances.
   591  //
   592  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteService
   593  func (c *ServiceDiscovery) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
   594  	req, out := c.DeleteServiceRequest(input)
   595  	return out, req.Send()
   596  }
   597  
   598  // DeleteServiceWithContext is the same as DeleteService with the addition of
   599  // the ability to pass a context and additional request options.
   600  //
   601  // See DeleteService for details on how to use this API operation.
   602  //
   603  // The context must be non-nil and will be used for request cancellation. If
   604  // the context is nil a panic will occur. In the future the SDK may create
   605  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   606  // for more information on using Contexts.
   607  func (c *ServiceDiscovery) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
   608  	req, out := c.DeleteServiceRequest(input)
   609  	req.SetContext(ctx)
   610  	req.ApplyOptions(opts...)
   611  	return out, req.Send()
   612  }
   613  
   614  const opDeregisterInstance = "DeregisterInstance"
   615  
   616  // DeregisterInstanceRequest generates a "aws/request.Request" representing the
   617  // client's request for the DeregisterInstance operation. The "output" return
   618  // value will be populated with the request's response once the request completes
   619  // successfully.
   620  //
   621  // Use "Send" method on the returned Request to send the API call to the service.
   622  // the "output" return value is not valid until after Send returns without error.
   623  //
   624  // See DeregisterInstance for more information on using the DeregisterInstance
   625  // API call, and error handling.
   626  //
   627  // This method is useful when you want to inject custom logic or configuration
   628  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   629  //
   630  //
   631  //    // Example sending a request using the DeregisterInstanceRequest method.
   632  //    req, resp := client.DeregisterInstanceRequest(params)
   633  //
   634  //    err := req.Send()
   635  //    if err == nil { // resp is now filled
   636  //        fmt.Println(resp)
   637  //    }
   638  //
   639  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeregisterInstance
   640  func (c *ServiceDiscovery) DeregisterInstanceRequest(input *DeregisterInstanceInput) (req *request.Request, output *DeregisterInstanceOutput) {
   641  	op := &request.Operation{
   642  		Name:       opDeregisterInstance,
   643  		HTTPMethod: "POST",
   644  		HTTPPath:   "/",
   645  	}
   646  
   647  	if input == nil {
   648  		input = &DeregisterInstanceInput{}
   649  	}
   650  
   651  	output = &DeregisterInstanceOutput{}
   652  	req = c.newRequest(op, input, output)
   653  	return
   654  }
   655  
   656  // DeregisterInstance API operation for AWS Cloud Map.
   657  //
   658  // Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud
   659  // Map created for the specified instance.
   660  //
   661  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   662  // with awserr.Error's Code and Message methods to get detailed information about
   663  // the error.
   664  //
   665  // See the AWS API reference guide for AWS Cloud Map's
   666  // API operation DeregisterInstance for usage and error information.
   667  //
   668  // Returned Error Types:
   669  //   * DuplicateRequest
   670  //   The operation is already in progress.
   671  //
   672  //   * InvalidInput
   673  //   One or more specified values aren't valid. For example, a required value
   674  //   might be missing, a numeric value might be outside the allowed range, or
   675  //   a string value might exceed length constraints.
   676  //
   677  //   * InstanceNotFound
   678  //   No instance exists with the specified ID, or the instance was recently registered,
   679  //   and information about the instance hasn't propagated yet.
   680  //
   681  //   * ResourceInUse
   682  //   The specified resource can't be deleted because it contains other resources.
   683  //   For example, you can't delete a service that contains any instances.
   684  //
   685  //   * ServiceNotFound
   686  //   No service exists with the specified ID.
   687  //
   688  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeregisterInstance
   689  func (c *ServiceDiscovery) DeregisterInstance(input *DeregisterInstanceInput) (*DeregisterInstanceOutput, error) {
   690  	req, out := c.DeregisterInstanceRequest(input)
   691  	return out, req.Send()
   692  }
   693  
   694  // DeregisterInstanceWithContext is the same as DeregisterInstance with the addition of
   695  // the ability to pass a context and additional request options.
   696  //
   697  // See DeregisterInstance for details on how to use this API operation.
   698  //
   699  // The context must be non-nil and will be used for request cancellation. If
   700  // the context is nil a panic will occur. In the future the SDK may create
   701  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   702  // for more information on using Contexts.
   703  func (c *ServiceDiscovery) DeregisterInstanceWithContext(ctx aws.Context, input *DeregisterInstanceInput, opts ...request.Option) (*DeregisterInstanceOutput, error) {
   704  	req, out := c.DeregisterInstanceRequest(input)
   705  	req.SetContext(ctx)
   706  	req.ApplyOptions(opts...)
   707  	return out, req.Send()
   708  }
   709  
   710  const opDiscoverInstances = "DiscoverInstances"
   711  
   712  // DiscoverInstancesRequest generates a "aws/request.Request" representing the
   713  // client's request for the DiscoverInstances operation. The "output" return
   714  // value will be populated with the request's response once the request completes
   715  // successfully.
   716  //
   717  // Use "Send" method on the returned Request to send the API call to the service.
   718  // the "output" return value is not valid until after Send returns without error.
   719  //
   720  // See DiscoverInstances for more information on using the DiscoverInstances
   721  // API call, and error handling.
   722  //
   723  // This method is useful when you want to inject custom logic or configuration
   724  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   725  //
   726  //
   727  //    // Example sending a request using the DiscoverInstancesRequest method.
   728  //    req, resp := client.DiscoverInstancesRequest(params)
   729  //
   730  //    err := req.Send()
   731  //    if err == nil { // resp is now filled
   732  //        fmt.Println(resp)
   733  //    }
   734  //
   735  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DiscoverInstances
   736  func (c *ServiceDiscovery) DiscoverInstancesRequest(input *DiscoverInstancesInput) (req *request.Request, output *DiscoverInstancesOutput) {
   737  	op := &request.Operation{
   738  		Name:       opDiscoverInstances,
   739  		HTTPMethod: "POST",
   740  		HTTPPath:   "/",
   741  	}
   742  
   743  	if input == nil {
   744  		input = &DiscoverInstancesInput{}
   745  	}
   746  
   747  	output = &DiscoverInstancesOutput{}
   748  	req = c.newRequest(op, input, output)
   749  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("data-", nil))
   750  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   751  	return
   752  }
   753  
   754  // DiscoverInstances API operation for AWS Cloud Map.
   755  //
   756  // Discovers registered instances for a specified namespace and service. You
   757  // can use DiscoverInstances to discover instances for any type of namespace.
   758  // For public and private DNS namespaces, you can also use DNS queries to discover
   759  // instances.
   760  //
   761  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   762  // with awserr.Error's Code and Message methods to get detailed information about
   763  // the error.
   764  //
   765  // See the AWS API reference guide for AWS Cloud Map's
   766  // API operation DiscoverInstances for usage and error information.
   767  //
   768  // Returned Error Types:
   769  //   * ServiceNotFound
   770  //   No service exists with the specified ID.
   771  //
   772  //   * NamespaceNotFound
   773  //   No namespace exists with the specified ID.
   774  //
   775  //   * InvalidInput
   776  //   One or more specified values aren't valid. For example, a required value
   777  //   might be missing, a numeric value might be outside the allowed range, or
   778  //   a string value might exceed length constraints.
   779  //
   780  //   * RequestLimitExceeded
   781  //   The operation can't be completed because you've reached the quota for the
   782  //   number of requests. For more information, see Cloud Map API request throttling
   783  //   quota (https://docs.aws.amazon.com/cloud-map/latest/dg/throttling.html) in
   784  //   the Cloud Map Developer Guide.
   785  //
   786  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DiscoverInstances
   787  func (c *ServiceDiscovery) DiscoverInstances(input *DiscoverInstancesInput) (*DiscoverInstancesOutput, error) {
   788  	req, out := c.DiscoverInstancesRequest(input)
   789  	return out, req.Send()
   790  }
   791  
   792  // DiscoverInstancesWithContext is the same as DiscoverInstances with the addition of
   793  // the ability to pass a context and additional request options.
   794  //
   795  // See DiscoverInstances for details on how to use this API operation.
   796  //
   797  // The context must be non-nil and will be used for request cancellation. If
   798  // the context is nil a panic will occur. In the future the SDK may create
   799  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   800  // for more information on using Contexts.
   801  func (c *ServiceDiscovery) DiscoverInstancesWithContext(ctx aws.Context, input *DiscoverInstancesInput, opts ...request.Option) (*DiscoverInstancesOutput, error) {
   802  	req, out := c.DiscoverInstancesRequest(input)
   803  	req.SetContext(ctx)
   804  	req.ApplyOptions(opts...)
   805  	return out, req.Send()
   806  }
   807  
   808  const opGetInstance = "GetInstance"
   809  
   810  // GetInstanceRequest generates a "aws/request.Request" representing the
   811  // client's request for the GetInstance operation. The "output" return
   812  // value will be populated with the request's response once the request completes
   813  // successfully.
   814  //
   815  // Use "Send" method on the returned Request to send the API call to the service.
   816  // the "output" return value is not valid until after Send returns without error.
   817  //
   818  // See GetInstance for more information on using the GetInstance
   819  // API call, and error handling.
   820  //
   821  // This method is useful when you want to inject custom logic or configuration
   822  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   823  //
   824  //
   825  //    // Example sending a request using the GetInstanceRequest method.
   826  //    req, resp := client.GetInstanceRequest(params)
   827  //
   828  //    err := req.Send()
   829  //    if err == nil { // resp is now filled
   830  //        fmt.Println(resp)
   831  //    }
   832  //
   833  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstance
   834  func (c *ServiceDiscovery) GetInstanceRequest(input *GetInstanceInput) (req *request.Request, output *GetInstanceOutput) {
   835  	op := &request.Operation{
   836  		Name:       opGetInstance,
   837  		HTTPMethod: "POST",
   838  		HTTPPath:   "/",
   839  	}
   840  
   841  	if input == nil {
   842  		input = &GetInstanceInput{}
   843  	}
   844  
   845  	output = &GetInstanceOutput{}
   846  	req = c.newRequest(op, input, output)
   847  	return
   848  }
   849  
   850  // GetInstance API operation for AWS Cloud Map.
   851  //
   852  // Gets information about a specified instance.
   853  //
   854  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   855  // with awserr.Error's Code and Message methods to get detailed information about
   856  // the error.
   857  //
   858  // See the AWS API reference guide for AWS Cloud Map's
   859  // API operation GetInstance for usage and error information.
   860  //
   861  // Returned Error Types:
   862  //   * InstanceNotFound
   863  //   No instance exists with the specified ID, or the instance was recently registered,
   864  //   and information about the instance hasn't propagated yet.
   865  //
   866  //   * InvalidInput
   867  //   One or more specified values aren't valid. For example, a required value
   868  //   might be missing, a numeric value might be outside the allowed range, or
   869  //   a string value might exceed length constraints.
   870  //
   871  //   * ServiceNotFound
   872  //   No service exists with the specified ID.
   873  //
   874  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstance
   875  func (c *ServiceDiscovery) GetInstance(input *GetInstanceInput) (*GetInstanceOutput, error) {
   876  	req, out := c.GetInstanceRequest(input)
   877  	return out, req.Send()
   878  }
   879  
   880  // GetInstanceWithContext is the same as GetInstance with the addition of
   881  // the ability to pass a context and additional request options.
   882  //
   883  // See GetInstance for details on how to use this API operation.
   884  //
   885  // The context must be non-nil and will be used for request cancellation. If
   886  // the context is nil a panic will occur. In the future the SDK may create
   887  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   888  // for more information on using Contexts.
   889  func (c *ServiceDiscovery) GetInstanceWithContext(ctx aws.Context, input *GetInstanceInput, opts ...request.Option) (*GetInstanceOutput, error) {
   890  	req, out := c.GetInstanceRequest(input)
   891  	req.SetContext(ctx)
   892  	req.ApplyOptions(opts...)
   893  	return out, req.Send()
   894  }
   895  
   896  const opGetInstancesHealthStatus = "GetInstancesHealthStatus"
   897  
   898  // GetInstancesHealthStatusRequest generates a "aws/request.Request" representing the
   899  // client's request for the GetInstancesHealthStatus operation. The "output" return
   900  // value will be populated with the request's response once the request completes
   901  // successfully.
   902  //
   903  // Use "Send" method on the returned Request to send the API call to the service.
   904  // the "output" return value is not valid until after Send returns without error.
   905  //
   906  // See GetInstancesHealthStatus for more information on using the GetInstancesHealthStatus
   907  // API call, and error handling.
   908  //
   909  // This method is useful when you want to inject custom logic or configuration
   910  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   911  //
   912  //
   913  //    // Example sending a request using the GetInstancesHealthStatusRequest method.
   914  //    req, resp := client.GetInstancesHealthStatusRequest(params)
   915  //
   916  //    err := req.Send()
   917  //    if err == nil { // resp is now filled
   918  //        fmt.Println(resp)
   919  //    }
   920  //
   921  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstancesHealthStatus
   922  func (c *ServiceDiscovery) GetInstancesHealthStatusRequest(input *GetInstancesHealthStatusInput) (req *request.Request, output *GetInstancesHealthStatusOutput) {
   923  	op := &request.Operation{
   924  		Name:       opGetInstancesHealthStatus,
   925  		HTTPMethod: "POST",
   926  		HTTPPath:   "/",
   927  		Paginator: &request.Paginator{
   928  			InputTokens:     []string{"NextToken"},
   929  			OutputTokens:    []string{"NextToken"},
   930  			LimitToken:      "MaxResults",
   931  			TruncationToken: "",
   932  		},
   933  	}
   934  
   935  	if input == nil {
   936  		input = &GetInstancesHealthStatusInput{}
   937  	}
   938  
   939  	output = &GetInstancesHealthStatusOutput{}
   940  	req = c.newRequest(op, input, output)
   941  	return
   942  }
   943  
   944  // GetInstancesHealthStatus API operation for AWS Cloud Map.
   945  //
   946  // Gets the current health status (Healthy, Unhealthy, or Unknown) of one or
   947  // more instances that are associated with a specified service.
   948  //
   949  // There's a brief delay between when you register an instance and when the
   950  // health status for the instance is available.
   951  //
   952  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   953  // with awserr.Error's Code and Message methods to get detailed information about
   954  // the error.
   955  //
   956  // See the AWS API reference guide for AWS Cloud Map's
   957  // API operation GetInstancesHealthStatus for usage and error information.
   958  //
   959  // Returned Error Types:
   960  //   * InstanceNotFound
   961  //   No instance exists with the specified ID, or the instance was recently registered,
   962  //   and information about the instance hasn't propagated yet.
   963  //
   964  //   * InvalidInput
   965  //   One or more specified values aren't valid. For example, a required value
   966  //   might be missing, a numeric value might be outside the allowed range, or
   967  //   a string value might exceed length constraints.
   968  //
   969  //   * ServiceNotFound
   970  //   No service exists with the specified ID.
   971  //
   972  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstancesHealthStatus
   973  func (c *ServiceDiscovery) GetInstancesHealthStatus(input *GetInstancesHealthStatusInput) (*GetInstancesHealthStatusOutput, error) {
   974  	req, out := c.GetInstancesHealthStatusRequest(input)
   975  	return out, req.Send()
   976  }
   977  
   978  // GetInstancesHealthStatusWithContext is the same as GetInstancesHealthStatus with the addition of
   979  // the ability to pass a context and additional request options.
   980  //
   981  // See GetInstancesHealthStatus for details on how to use this API operation.
   982  //
   983  // The context must be non-nil and will be used for request cancellation. If
   984  // the context is nil a panic will occur. In the future the SDK may create
   985  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   986  // for more information on using Contexts.
   987  func (c *ServiceDiscovery) GetInstancesHealthStatusWithContext(ctx aws.Context, input *GetInstancesHealthStatusInput, opts ...request.Option) (*GetInstancesHealthStatusOutput, error) {
   988  	req, out := c.GetInstancesHealthStatusRequest(input)
   989  	req.SetContext(ctx)
   990  	req.ApplyOptions(opts...)
   991  	return out, req.Send()
   992  }
   993  
   994  // GetInstancesHealthStatusPages iterates over the pages of a GetInstancesHealthStatus operation,
   995  // calling the "fn" function with the response data for each page. To stop
   996  // iterating, return false from the fn function.
   997  //
   998  // See GetInstancesHealthStatus method for more information on how to use this operation.
   999  //
  1000  // Note: This operation can generate multiple requests to a service.
  1001  //
  1002  //    // Example iterating over at most 3 pages of a GetInstancesHealthStatus operation.
  1003  //    pageNum := 0
  1004  //    err := client.GetInstancesHealthStatusPages(params,
  1005  //        func(page *servicediscovery.GetInstancesHealthStatusOutput, lastPage bool) bool {
  1006  //            pageNum++
  1007  //            fmt.Println(page)
  1008  //            return pageNum <= 3
  1009  //        })
  1010  //
  1011  func (c *ServiceDiscovery) GetInstancesHealthStatusPages(input *GetInstancesHealthStatusInput, fn func(*GetInstancesHealthStatusOutput, bool) bool) error {
  1012  	return c.GetInstancesHealthStatusPagesWithContext(aws.BackgroundContext(), input, fn)
  1013  }
  1014  
  1015  // GetInstancesHealthStatusPagesWithContext same as GetInstancesHealthStatusPages except
  1016  // it takes a Context and allows setting request options on the pages.
  1017  //
  1018  // The context must be non-nil and will be used for request cancellation. If
  1019  // the context is nil a panic will occur. In the future the SDK may create
  1020  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1021  // for more information on using Contexts.
  1022  func (c *ServiceDiscovery) GetInstancesHealthStatusPagesWithContext(ctx aws.Context, input *GetInstancesHealthStatusInput, fn func(*GetInstancesHealthStatusOutput, bool) bool, opts ...request.Option) error {
  1023  	p := request.Pagination{
  1024  		NewRequest: func() (*request.Request, error) {
  1025  			var inCpy *GetInstancesHealthStatusInput
  1026  			if input != nil {
  1027  				tmp := *input
  1028  				inCpy = &tmp
  1029  			}
  1030  			req, _ := c.GetInstancesHealthStatusRequest(inCpy)
  1031  			req.SetContext(ctx)
  1032  			req.ApplyOptions(opts...)
  1033  			return req, nil
  1034  		},
  1035  	}
  1036  
  1037  	for p.Next() {
  1038  		if !fn(p.Page().(*GetInstancesHealthStatusOutput), !p.HasNextPage()) {
  1039  			break
  1040  		}
  1041  	}
  1042  
  1043  	return p.Err()
  1044  }
  1045  
  1046  const opGetNamespace = "GetNamespace"
  1047  
  1048  // GetNamespaceRequest generates a "aws/request.Request" representing the
  1049  // client's request for the GetNamespace operation. The "output" return
  1050  // value will be populated with the request's response once the request completes
  1051  // successfully.
  1052  //
  1053  // Use "Send" method on the returned Request to send the API call to the service.
  1054  // the "output" return value is not valid until after Send returns without error.
  1055  //
  1056  // See GetNamespace for more information on using the GetNamespace
  1057  // API call, and error handling.
  1058  //
  1059  // This method is useful when you want to inject custom logic or configuration
  1060  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1061  //
  1062  //
  1063  //    // Example sending a request using the GetNamespaceRequest method.
  1064  //    req, resp := client.GetNamespaceRequest(params)
  1065  //
  1066  //    err := req.Send()
  1067  //    if err == nil { // resp is now filled
  1068  //        fmt.Println(resp)
  1069  //    }
  1070  //
  1071  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetNamespace
  1072  func (c *ServiceDiscovery) GetNamespaceRequest(input *GetNamespaceInput) (req *request.Request, output *GetNamespaceOutput) {
  1073  	op := &request.Operation{
  1074  		Name:       opGetNamespace,
  1075  		HTTPMethod: "POST",
  1076  		HTTPPath:   "/",
  1077  	}
  1078  
  1079  	if input == nil {
  1080  		input = &GetNamespaceInput{}
  1081  	}
  1082  
  1083  	output = &GetNamespaceOutput{}
  1084  	req = c.newRequest(op, input, output)
  1085  	return
  1086  }
  1087  
  1088  // GetNamespace API operation for AWS Cloud Map.
  1089  //
  1090  // Gets information about a namespace.
  1091  //
  1092  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1093  // with awserr.Error's Code and Message methods to get detailed information about
  1094  // the error.
  1095  //
  1096  // See the AWS API reference guide for AWS Cloud Map's
  1097  // API operation GetNamespace for usage and error information.
  1098  //
  1099  // Returned Error Types:
  1100  //   * InvalidInput
  1101  //   One or more specified values aren't valid. For example, a required value
  1102  //   might be missing, a numeric value might be outside the allowed range, or
  1103  //   a string value might exceed length constraints.
  1104  //
  1105  //   * NamespaceNotFound
  1106  //   No namespace exists with the specified ID.
  1107  //
  1108  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetNamespace
  1109  func (c *ServiceDiscovery) GetNamespace(input *GetNamespaceInput) (*GetNamespaceOutput, error) {
  1110  	req, out := c.GetNamespaceRequest(input)
  1111  	return out, req.Send()
  1112  }
  1113  
  1114  // GetNamespaceWithContext is the same as GetNamespace with the addition of
  1115  // the ability to pass a context and additional request options.
  1116  //
  1117  // See GetNamespace for details on how to use this API operation.
  1118  //
  1119  // The context must be non-nil and will be used for request cancellation. If
  1120  // the context is nil a panic will occur. In the future the SDK may create
  1121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1122  // for more information on using Contexts.
  1123  func (c *ServiceDiscovery) GetNamespaceWithContext(ctx aws.Context, input *GetNamespaceInput, opts ...request.Option) (*GetNamespaceOutput, error) {
  1124  	req, out := c.GetNamespaceRequest(input)
  1125  	req.SetContext(ctx)
  1126  	req.ApplyOptions(opts...)
  1127  	return out, req.Send()
  1128  }
  1129  
  1130  const opGetOperation = "GetOperation"
  1131  
  1132  // GetOperationRequest generates a "aws/request.Request" representing the
  1133  // client's request for the GetOperation operation. The "output" return
  1134  // value will be populated with the request's response once the request completes
  1135  // successfully.
  1136  //
  1137  // Use "Send" method on the returned Request to send the API call to the service.
  1138  // the "output" return value is not valid until after Send returns without error.
  1139  //
  1140  // See GetOperation for more information on using the GetOperation
  1141  // API call, and error handling.
  1142  //
  1143  // This method is useful when you want to inject custom logic or configuration
  1144  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1145  //
  1146  //
  1147  //    // Example sending a request using the GetOperationRequest method.
  1148  //    req, resp := client.GetOperationRequest(params)
  1149  //
  1150  //    err := req.Send()
  1151  //    if err == nil { // resp is now filled
  1152  //        fmt.Println(resp)
  1153  //    }
  1154  //
  1155  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetOperation
  1156  func (c *ServiceDiscovery) GetOperationRequest(input *GetOperationInput) (req *request.Request, output *GetOperationOutput) {
  1157  	op := &request.Operation{
  1158  		Name:       opGetOperation,
  1159  		HTTPMethod: "POST",
  1160  		HTTPPath:   "/",
  1161  	}
  1162  
  1163  	if input == nil {
  1164  		input = &GetOperationInput{}
  1165  	}
  1166  
  1167  	output = &GetOperationOutput{}
  1168  	req = c.newRequest(op, input, output)
  1169  	return
  1170  }
  1171  
  1172  // GetOperation API operation for AWS Cloud Map.
  1173  //
  1174  // Gets information about any operation that returns an operation ID in the
  1175  // response, such as a CreateService request.
  1176  //
  1177  // To get a list of operations that match specified criteria, see ListOperations
  1178  // (https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html).
  1179  //
  1180  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1181  // with awserr.Error's Code and Message methods to get detailed information about
  1182  // the error.
  1183  //
  1184  // See the AWS API reference guide for AWS Cloud Map's
  1185  // API operation GetOperation for usage and error information.
  1186  //
  1187  // Returned Error Types:
  1188  //   * InvalidInput
  1189  //   One or more specified values aren't valid. For example, a required value
  1190  //   might be missing, a numeric value might be outside the allowed range, or
  1191  //   a string value might exceed length constraints.
  1192  //
  1193  //   * OperationNotFound
  1194  //   No operation exists with the specified ID.
  1195  //
  1196  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetOperation
  1197  func (c *ServiceDiscovery) GetOperation(input *GetOperationInput) (*GetOperationOutput, error) {
  1198  	req, out := c.GetOperationRequest(input)
  1199  	return out, req.Send()
  1200  }
  1201  
  1202  // GetOperationWithContext is the same as GetOperation with the addition of
  1203  // the ability to pass a context and additional request options.
  1204  //
  1205  // See GetOperation for details on how to use this API operation.
  1206  //
  1207  // The context must be non-nil and will be used for request cancellation. If
  1208  // the context is nil a panic will occur. In the future the SDK may create
  1209  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1210  // for more information on using Contexts.
  1211  func (c *ServiceDiscovery) GetOperationWithContext(ctx aws.Context, input *GetOperationInput, opts ...request.Option) (*GetOperationOutput, error) {
  1212  	req, out := c.GetOperationRequest(input)
  1213  	req.SetContext(ctx)
  1214  	req.ApplyOptions(opts...)
  1215  	return out, req.Send()
  1216  }
  1217  
  1218  const opGetService = "GetService"
  1219  
  1220  // GetServiceRequest generates a "aws/request.Request" representing the
  1221  // client's request for the GetService operation. The "output" return
  1222  // value will be populated with the request's response once the request completes
  1223  // successfully.
  1224  //
  1225  // Use "Send" method on the returned Request to send the API call to the service.
  1226  // the "output" return value is not valid until after Send returns without error.
  1227  //
  1228  // See GetService for more information on using the GetService
  1229  // API call, and error handling.
  1230  //
  1231  // This method is useful when you want to inject custom logic or configuration
  1232  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1233  //
  1234  //
  1235  //    // Example sending a request using the GetServiceRequest method.
  1236  //    req, resp := client.GetServiceRequest(params)
  1237  //
  1238  //    err := req.Send()
  1239  //    if err == nil { // resp is now filled
  1240  //        fmt.Println(resp)
  1241  //    }
  1242  //
  1243  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetService
  1244  func (c *ServiceDiscovery) GetServiceRequest(input *GetServiceInput) (req *request.Request, output *GetServiceOutput) {
  1245  	op := &request.Operation{
  1246  		Name:       opGetService,
  1247  		HTTPMethod: "POST",
  1248  		HTTPPath:   "/",
  1249  	}
  1250  
  1251  	if input == nil {
  1252  		input = &GetServiceInput{}
  1253  	}
  1254  
  1255  	output = &GetServiceOutput{}
  1256  	req = c.newRequest(op, input, output)
  1257  	return
  1258  }
  1259  
  1260  // GetService API operation for AWS Cloud Map.
  1261  //
  1262  // Gets the settings for a specified service.
  1263  //
  1264  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1265  // with awserr.Error's Code and Message methods to get detailed information about
  1266  // the error.
  1267  //
  1268  // See the AWS API reference guide for AWS Cloud Map's
  1269  // API operation GetService for usage and error information.
  1270  //
  1271  // Returned Error Types:
  1272  //   * InvalidInput
  1273  //   One or more specified values aren't valid. For example, a required value
  1274  //   might be missing, a numeric value might be outside the allowed range, or
  1275  //   a string value might exceed length constraints.
  1276  //
  1277  //   * ServiceNotFound
  1278  //   No service exists with the specified ID.
  1279  //
  1280  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetService
  1281  func (c *ServiceDiscovery) GetService(input *GetServiceInput) (*GetServiceOutput, error) {
  1282  	req, out := c.GetServiceRequest(input)
  1283  	return out, req.Send()
  1284  }
  1285  
  1286  // GetServiceWithContext is the same as GetService with the addition of
  1287  // the ability to pass a context and additional request options.
  1288  //
  1289  // See GetService for details on how to use this API operation.
  1290  //
  1291  // The context must be non-nil and will be used for request cancellation. If
  1292  // the context is nil a panic will occur. In the future the SDK may create
  1293  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1294  // for more information on using Contexts.
  1295  func (c *ServiceDiscovery) GetServiceWithContext(ctx aws.Context, input *GetServiceInput, opts ...request.Option) (*GetServiceOutput, error) {
  1296  	req, out := c.GetServiceRequest(input)
  1297  	req.SetContext(ctx)
  1298  	req.ApplyOptions(opts...)
  1299  	return out, req.Send()
  1300  }
  1301  
  1302  const opListInstances = "ListInstances"
  1303  
  1304  // ListInstancesRequest generates a "aws/request.Request" representing the
  1305  // client's request for the ListInstances operation. The "output" return
  1306  // value will be populated with the request's response once the request completes
  1307  // successfully.
  1308  //
  1309  // Use "Send" method on the returned Request to send the API call to the service.
  1310  // the "output" return value is not valid until after Send returns without error.
  1311  //
  1312  // See ListInstances for more information on using the ListInstances
  1313  // API call, and error handling.
  1314  //
  1315  // This method is useful when you want to inject custom logic or configuration
  1316  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1317  //
  1318  //
  1319  //    // Example sending a request using the ListInstancesRequest method.
  1320  //    req, resp := client.ListInstancesRequest(params)
  1321  //
  1322  //    err := req.Send()
  1323  //    if err == nil { // resp is now filled
  1324  //        fmt.Println(resp)
  1325  //    }
  1326  //
  1327  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListInstances
  1328  func (c *ServiceDiscovery) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
  1329  	op := &request.Operation{
  1330  		Name:       opListInstances,
  1331  		HTTPMethod: "POST",
  1332  		HTTPPath:   "/",
  1333  		Paginator: &request.Paginator{
  1334  			InputTokens:     []string{"NextToken"},
  1335  			OutputTokens:    []string{"NextToken"},
  1336  			LimitToken:      "MaxResults",
  1337  			TruncationToken: "",
  1338  		},
  1339  	}
  1340  
  1341  	if input == nil {
  1342  		input = &ListInstancesInput{}
  1343  	}
  1344  
  1345  	output = &ListInstancesOutput{}
  1346  	req = c.newRequest(op, input, output)
  1347  	return
  1348  }
  1349  
  1350  // ListInstances API operation for AWS Cloud Map.
  1351  //
  1352  // Lists summary information about the instances that you registered by using
  1353  // a specified service.
  1354  //
  1355  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1356  // with awserr.Error's Code and Message methods to get detailed information about
  1357  // the error.
  1358  //
  1359  // See the AWS API reference guide for AWS Cloud Map's
  1360  // API operation ListInstances for usage and error information.
  1361  //
  1362  // Returned Error Types:
  1363  //   * ServiceNotFound
  1364  //   No service exists with the specified ID.
  1365  //
  1366  //   * InvalidInput
  1367  //   One or more specified values aren't valid. For example, a required value
  1368  //   might be missing, a numeric value might be outside the allowed range, or
  1369  //   a string value might exceed length constraints.
  1370  //
  1371  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListInstances
  1372  func (c *ServiceDiscovery) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
  1373  	req, out := c.ListInstancesRequest(input)
  1374  	return out, req.Send()
  1375  }
  1376  
  1377  // ListInstancesWithContext is the same as ListInstances with the addition of
  1378  // the ability to pass a context and additional request options.
  1379  //
  1380  // See ListInstances for details on how to use this API operation.
  1381  //
  1382  // The context must be non-nil and will be used for request cancellation. If
  1383  // the context is nil a panic will occur. In the future the SDK may create
  1384  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1385  // for more information on using Contexts.
  1386  func (c *ServiceDiscovery) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
  1387  	req, out := c.ListInstancesRequest(input)
  1388  	req.SetContext(ctx)
  1389  	req.ApplyOptions(opts...)
  1390  	return out, req.Send()
  1391  }
  1392  
  1393  // ListInstancesPages iterates over the pages of a ListInstances operation,
  1394  // calling the "fn" function with the response data for each page. To stop
  1395  // iterating, return false from the fn function.
  1396  //
  1397  // See ListInstances method for more information on how to use this operation.
  1398  //
  1399  // Note: This operation can generate multiple requests to a service.
  1400  //
  1401  //    // Example iterating over at most 3 pages of a ListInstances operation.
  1402  //    pageNum := 0
  1403  //    err := client.ListInstancesPages(params,
  1404  //        func(page *servicediscovery.ListInstancesOutput, lastPage bool) bool {
  1405  //            pageNum++
  1406  //            fmt.Println(page)
  1407  //            return pageNum <= 3
  1408  //        })
  1409  //
  1410  func (c *ServiceDiscovery) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
  1411  	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
  1412  }
  1413  
  1414  // ListInstancesPagesWithContext same as ListInstancesPages except
  1415  // it takes a Context and allows setting request options on the pages.
  1416  //
  1417  // The context must be non-nil and will be used for request cancellation. If
  1418  // the context is nil a panic will occur. In the future the SDK may create
  1419  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1420  // for more information on using Contexts.
  1421  func (c *ServiceDiscovery) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
  1422  	p := request.Pagination{
  1423  		NewRequest: func() (*request.Request, error) {
  1424  			var inCpy *ListInstancesInput
  1425  			if input != nil {
  1426  				tmp := *input
  1427  				inCpy = &tmp
  1428  			}
  1429  			req, _ := c.ListInstancesRequest(inCpy)
  1430  			req.SetContext(ctx)
  1431  			req.ApplyOptions(opts...)
  1432  			return req, nil
  1433  		},
  1434  	}
  1435  
  1436  	for p.Next() {
  1437  		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
  1438  			break
  1439  		}
  1440  	}
  1441  
  1442  	return p.Err()
  1443  }
  1444  
  1445  const opListNamespaces = "ListNamespaces"
  1446  
  1447  // ListNamespacesRequest generates a "aws/request.Request" representing the
  1448  // client's request for the ListNamespaces operation. The "output" return
  1449  // value will be populated with the request's response once the request completes
  1450  // successfully.
  1451  //
  1452  // Use "Send" method on the returned Request to send the API call to the service.
  1453  // the "output" return value is not valid until after Send returns without error.
  1454  //
  1455  // See ListNamespaces for more information on using the ListNamespaces
  1456  // API call, and error handling.
  1457  //
  1458  // This method is useful when you want to inject custom logic or configuration
  1459  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1460  //
  1461  //
  1462  //    // Example sending a request using the ListNamespacesRequest method.
  1463  //    req, resp := client.ListNamespacesRequest(params)
  1464  //
  1465  //    err := req.Send()
  1466  //    if err == nil { // resp is now filled
  1467  //        fmt.Println(resp)
  1468  //    }
  1469  //
  1470  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListNamespaces
  1471  func (c *ServiceDiscovery) ListNamespacesRequest(input *ListNamespacesInput) (req *request.Request, output *ListNamespacesOutput) {
  1472  	op := &request.Operation{
  1473  		Name:       opListNamespaces,
  1474  		HTTPMethod: "POST",
  1475  		HTTPPath:   "/",
  1476  		Paginator: &request.Paginator{
  1477  			InputTokens:     []string{"NextToken"},
  1478  			OutputTokens:    []string{"NextToken"},
  1479  			LimitToken:      "MaxResults",
  1480  			TruncationToken: "",
  1481  		},
  1482  	}
  1483  
  1484  	if input == nil {
  1485  		input = &ListNamespacesInput{}
  1486  	}
  1487  
  1488  	output = &ListNamespacesOutput{}
  1489  	req = c.newRequest(op, input, output)
  1490  	return
  1491  }
  1492  
  1493  // ListNamespaces API operation for AWS Cloud Map.
  1494  //
  1495  // Lists summary information about the namespaces that were created by the current
  1496  // account.
  1497  //
  1498  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1499  // with awserr.Error's Code and Message methods to get detailed information about
  1500  // the error.
  1501  //
  1502  // See the AWS API reference guide for AWS Cloud Map's
  1503  // API operation ListNamespaces for usage and error information.
  1504  //
  1505  // Returned Error Types:
  1506  //   * InvalidInput
  1507  //   One or more specified values aren't valid. For example, a required value
  1508  //   might be missing, a numeric value might be outside the allowed range, or
  1509  //   a string value might exceed length constraints.
  1510  //
  1511  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListNamespaces
  1512  func (c *ServiceDiscovery) ListNamespaces(input *ListNamespacesInput) (*ListNamespacesOutput, error) {
  1513  	req, out := c.ListNamespacesRequest(input)
  1514  	return out, req.Send()
  1515  }
  1516  
  1517  // ListNamespacesWithContext is the same as ListNamespaces with the addition of
  1518  // the ability to pass a context and additional request options.
  1519  //
  1520  // See ListNamespaces for details on how to use this API operation.
  1521  //
  1522  // The context must be non-nil and will be used for request cancellation. If
  1523  // the context is nil a panic will occur. In the future the SDK may create
  1524  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1525  // for more information on using Contexts.
  1526  func (c *ServiceDiscovery) ListNamespacesWithContext(ctx aws.Context, input *ListNamespacesInput, opts ...request.Option) (*ListNamespacesOutput, error) {
  1527  	req, out := c.ListNamespacesRequest(input)
  1528  	req.SetContext(ctx)
  1529  	req.ApplyOptions(opts...)
  1530  	return out, req.Send()
  1531  }
  1532  
  1533  // ListNamespacesPages iterates over the pages of a ListNamespaces operation,
  1534  // calling the "fn" function with the response data for each page. To stop
  1535  // iterating, return false from the fn function.
  1536  //
  1537  // See ListNamespaces method for more information on how to use this operation.
  1538  //
  1539  // Note: This operation can generate multiple requests to a service.
  1540  //
  1541  //    // Example iterating over at most 3 pages of a ListNamespaces operation.
  1542  //    pageNum := 0
  1543  //    err := client.ListNamespacesPages(params,
  1544  //        func(page *servicediscovery.ListNamespacesOutput, lastPage bool) bool {
  1545  //            pageNum++
  1546  //            fmt.Println(page)
  1547  //            return pageNum <= 3
  1548  //        })
  1549  //
  1550  func (c *ServiceDiscovery) ListNamespacesPages(input *ListNamespacesInput, fn func(*ListNamespacesOutput, bool) bool) error {
  1551  	return c.ListNamespacesPagesWithContext(aws.BackgroundContext(), input, fn)
  1552  }
  1553  
  1554  // ListNamespacesPagesWithContext same as ListNamespacesPages except
  1555  // it takes a Context and allows setting request options on the pages.
  1556  //
  1557  // The context must be non-nil and will be used for request cancellation. If
  1558  // the context is nil a panic will occur. In the future the SDK may create
  1559  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1560  // for more information on using Contexts.
  1561  func (c *ServiceDiscovery) ListNamespacesPagesWithContext(ctx aws.Context, input *ListNamespacesInput, fn func(*ListNamespacesOutput, bool) bool, opts ...request.Option) error {
  1562  	p := request.Pagination{
  1563  		NewRequest: func() (*request.Request, error) {
  1564  			var inCpy *ListNamespacesInput
  1565  			if input != nil {
  1566  				tmp := *input
  1567  				inCpy = &tmp
  1568  			}
  1569  			req, _ := c.ListNamespacesRequest(inCpy)
  1570  			req.SetContext(ctx)
  1571  			req.ApplyOptions(opts...)
  1572  			return req, nil
  1573  		},
  1574  	}
  1575  
  1576  	for p.Next() {
  1577  		if !fn(p.Page().(*ListNamespacesOutput), !p.HasNextPage()) {
  1578  			break
  1579  		}
  1580  	}
  1581  
  1582  	return p.Err()
  1583  }
  1584  
  1585  const opListOperations = "ListOperations"
  1586  
  1587  // ListOperationsRequest generates a "aws/request.Request" representing the
  1588  // client's request for the ListOperations operation. The "output" return
  1589  // value will be populated with the request's response once the request completes
  1590  // successfully.
  1591  //
  1592  // Use "Send" method on the returned Request to send the API call to the service.
  1593  // the "output" return value is not valid until after Send returns without error.
  1594  //
  1595  // See ListOperations for more information on using the ListOperations
  1596  // API call, and error handling.
  1597  //
  1598  // This method is useful when you want to inject custom logic or configuration
  1599  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1600  //
  1601  //
  1602  //    // Example sending a request using the ListOperationsRequest method.
  1603  //    req, resp := client.ListOperationsRequest(params)
  1604  //
  1605  //    err := req.Send()
  1606  //    if err == nil { // resp is now filled
  1607  //        fmt.Println(resp)
  1608  //    }
  1609  //
  1610  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListOperations
  1611  func (c *ServiceDiscovery) ListOperationsRequest(input *ListOperationsInput) (req *request.Request, output *ListOperationsOutput) {
  1612  	op := &request.Operation{
  1613  		Name:       opListOperations,
  1614  		HTTPMethod: "POST",
  1615  		HTTPPath:   "/",
  1616  		Paginator: &request.Paginator{
  1617  			InputTokens:     []string{"NextToken"},
  1618  			OutputTokens:    []string{"NextToken"},
  1619  			LimitToken:      "MaxResults",
  1620  			TruncationToken: "",
  1621  		},
  1622  	}
  1623  
  1624  	if input == nil {
  1625  		input = &ListOperationsInput{}
  1626  	}
  1627  
  1628  	output = &ListOperationsOutput{}
  1629  	req = c.newRequest(op, input, output)
  1630  	return
  1631  }
  1632  
  1633  // ListOperations API operation for AWS Cloud Map.
  1634  //
  1635  // Lists operations that match the criteria that you specify.
  1636  //
  1637  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1638  // with awserr.Error's Code and Message methods to get detailed information about
  1639  // the error.
  1640  //
  1641  // See the AWS API reference guide for AWS Cloud Map's
  1642  // API operation ListOperations for usage and error information.
  1643  //
  1644  // Returned Error Types:
  1645  //   * InvalidInput
  1646  //   One or more specified values aren't valid. For example, a required value
  1647  //   might be missing, a numeric value might be outside the allowed range, or
  1648  //   a string value might exceed length constraints.
  1649  //
  1650  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListOperations
  1651  func (c *ServiceDiscovery) ListOperations(input *ListOperationsInput) (*ListOperationsOutput, error) {
  1652  	req, out := c.ListOperationsRequest(input)
  1653  	return out, req.Send()
  1654  }
  1655  
  1656  // ListOperationsWithContext is the same as ListOperations with the addition of
  1657  // the ability to pass a context and additional request options.
  1658  //
  1659  // See ListOperations for details on how to use this API operation.
  1660  //
  1661  // The context must be non-nil and will be used for request cancellation. If
  1662  // the context is nil a panic will occur. In the future the SDK may create
  1663  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1664  // for more information on using Contexts.
  1665  func (c *ServiceDiscovery) ListOperationsWithContext(ctx aws.Context, input *ListOperationsInput, opts ...request.Option) (*ListOperationsOutput, error) {
  1666  	req, out := c.ListOperationsRequest(input)
  1667  	req.SetContext(ctx)
  1668  	req.ApplyOptions(opts...)
  1669  	return out, req.Send()
  1670  }
  1671  
  1672  // ListOperationsPages iterates over the pages of a ListOperations operation,
  1673  // calling the "fn" function with the response data for each page. To stop
  1674  // iterating, return false from the fn function.
  1675  //
  1676  // See ListOperations method for more information on how to use this operation.
  1677  //
  1678  // Note: This operation can generate multiple requests to a service.
  1679  //
  1680  //    // Example iterating over at most 3 pages of a ListOperations operation.
  1681  //    pageNum := 0
  1682  //    err := client.ListOperationsPages(params,
  1683  //        func(page *servicediscovery.ListOperationsOutput, lastPage bool) bool {
  1684  //            pageNum++
  1685  //            fmt.Println(page)
  1686  //            return pageNum <= 3
  1687  //        })
  1688  //
  1689  func (c *ServiceDiscovery) ListOperationsPages(input *ListOperationsInput, fn func(*ListOperationsOutput, bool) bool) error {
  1690  	return c.ListOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
  1691  }
  1692  
  1693  // ListOperationsPagesWithContext same as ListOperationsPages except
  1694  // it takes a Context and allows setting request options on the pages.
  1695  //
  1696  // The context must be non-nil and will be used for request cancellation. If
  1697  // the context is nil a panic will occur. In the future the SDK may create
  1698  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1699  // for more information on using Contexts.
  1700  func (c *ServiceDiscovery) ListOperationsPagesWithContext(ctx aws.Context, input *ListOperationsInput, fn func(*ListOperationsOutput, bool) bool, opts ...request.Option) error {
  1701  	p := request.Pagination{
  1702  		NewRequest: func() (*request.Request, error) {
  1703  			var inCpy *ListOperationsInput
  1704  			if input != nil {
  1705  				tmp := *input
  1706  				inCpy = &tmp
  1707  			}
  1708  			req, _ := c.ListOperationsRequest(inCpy)
  1709  			req.SetContext(ctx)
  1710  			req.ApplyOptions(opts...)
  1711  			return req, nil
  1712  		},
  1713  	}
  1714  
  1715  	for p.Next() {
  1716  		if !fn(p.Page().(*ListOperationsOutput), !p.HasNextPage()) {
  1717  			break
  1718  		}
  1719  	}
  1720  
  1721  	return p.Err()
  1722  }
  1723  
  1724  const opListServices = "ListServices"
  1725  
  1726  // ListServicesRequest generates a "aws/request.Request" representing the
  1727  // client's request for the ListServices operation. The "output" return
  1728  // value will be populated with the request's response once the request completes
  1729  // successfully.
  1730  //
  1731  // Use "Send" method on the returned Request to send the API call to the service.
  1732  // the "output" return value is not valid until after Send returns without error.
  1733  //
  1734  // See ListServices for more information on using the ListServices
  1735  // API call, and error handling.
  1736  //
  1737  // This method is useful when you want to inject custom logic or configuration
  1738  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1739  //
  1740  //
  1741  //    // Example sending a request using the ListServicesRequest method.
  1742  //    req, resp := client.ListServicesRequest(params)
  1743  //
  1744  //    err := req.Send()
  1745  //    if err == nil { // resp is now filled
  1746  //        fmt.Println(resp)
  1747  //    }
  1748  //
  1749  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServices
  1750  func (c *ServiceDiscovery) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
  1751  	op := &request.Operation{
  1752  		Name:       opListServices,
  1753  		HTTPMethod: "POST",
  1754  		HTTPPath:   "/",
  1755  		Paginator: &request.Paginator{
  1756  			InputTokens:     []string{"NextToken"},
  1757  			OutputTokens:    []string{"NextToken"},
  1758  			LimitToken:      "MaxResults",
  1759  			TruncationToken: "",
  1760  		},
  1761  	}
  1762  
  1763  	if input == nil {
  1764  		input = &ListServicesInput{}
  1765  	}
  1766  
  1767  	output = &ListServicesOutput{}
  1768  	req = c.newRequest(op, input, output)
  1769  	return
  1770  }
  1771  
  1772  // ListServices API operation for AWS Cloud Map.
  1773  //
  1774  // Lists summary information for all the services that are associated with one
  1775  // or more specified namespaces.
  1776  //
  1777  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1778  // with awserr.Error's Code and Message methods to get detailed information about
  1779  // the error.
  1780  //
  1781  // See the AWS API reference guide for AWS Cloud Map's
  1782  // API operation ListServices for usage and error information.
  1783  //
  1784  // Returned Error Types:
  1785  //   * InvalidInput
  1786  //   One or more specified values aren't valid. For example, a required value
  1787  //   might be missing, a numeric value might be outside the allowed range, or
  1788  //   a string value might exceed length constraints.
  1789  //
  1790  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServices
  1791  func (c *ServiceDiscovery) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
  1792  	req, out := c.ListServicesRequest(input)
  1793  	return out, req.Send()
  1794  }
  1795  
  1796  // ListServicesWithContext is the same as ListServices with the addition of
  1797  // the ability to pass a context and additional request options.
  1798  //
  1799  // See ListServices for details on how to use this API operation.
  1800  //
  1801  // The context must be non-nil and will be used for request cancellation. If
  1802  // the context is nil a panic will occur. In the future the SDK may create
  1803  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1804  // for more information on using Contexts.
  1805  func (c *ServiceDiscovery) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
  1806  	req, out := c.ListServicesRequest(input)
  1807  	req.SetContext(ctx)
  1808  	req.ApplyOptions(opts...)
  1809  	return out, req.Send()
  1810  }
  1811  
  1812  // ListServicesPages iterates over the pages of a ListServices operation,
  1813  // calling the "fn" function with the response data for each page. To stop
  1814  // iterating, return false from the fn function.
  1815  //
  1816  // See ListServices method for more information on how to use this operation.
  1817  //
  1818  // Note: This operation can generate multiple requests to a service.
  1819  //
  1820  //    // Example iterating over at most 3 pages of a ListServices operation.
  1821  //    pageNum := 0
  1822  //    err := client.ListServicesPages(params,
  1823  //        func(page *servicediscovery.ListServicesOutput, lastPage bool) bool {
  1824  //            pageNum++
  1825  //            fmt.Println(page)
  1826  //            return pageNum <= 3
  1827  //        })
  1828  //
  1829  func (c *ServiceDiscovery) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
  1830  	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
  1831  }
  1832  
  1833  // ListServicesPagesWithContext same as ListServicesPages except
  1834  // it takes a Context and allows setting request options on the pages.
  1835  //
  1836  // The context must be non-nil and will be used for request cancellation. If
  1837  // the context is nil a panic will occur. In the future the SDK may create
  1838  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1839  // for more information on using Contexts.
  1840  func (c *ServiceDiscovery) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
  1841  	p := request.Pagination{
  1842  		NewRequest: func() (*request.Request, error) {
  1843  			var inCpy *ListServicesInput
  1844  			if input != nil {
  1845  				tmp := *input
  1846  				inCpy = &tmp
  1847  			}
  1848  			req, _ := c.ListServicesRequest(inCpy)
  1849  			req.SetContext(ctx)
  1850  			req.ApplyOptions(opts...)
  1851  			return req, nil
  1852  		},
  1853  	}
  1854  
  1855  	for p.Next() {
  1856  		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
  1857  			break
  1858  		}
  1859  	}
  1860  
  1861  	return p.Err()
  1862  }
  1863  
  1864  const opListTagsForResource = "ListTagsForResource"
  1865  
  1866  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  1867  // client's request for the ListTagsForResource operation. The "output" return
  1868  // value will be populated with the request's response once the request completes
  1869  // successfully.
  1870  //
  1871  // Use "Send" method on the returned Request to send the API call to the service.
  1872  // the "output" return value is not valid until after Send returns without error.
  1873  //
  1874  // See ListTagsForResource for more information on using the ListTagsForResource
  1875  // API call, and error handling.
  1876  //
  1877  // This method is useful when you want to inject custom logic or configuration
  1878  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1879  //
  1880  //
  1881  //    // Example sending a request using the ListTagsForResourceRequest method.
  1882  //    req, resp := client.ListTagsForResourceRequest(params)
  1883  //
  1884  //    err := req.Send()
  1885  //    if err == nil { // resp is now filled
  1886  //        fmt.Println(resp)
  1887  //    }
  1888  //
  1889  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListTagsForResource
  1890  func (c *ServiceDiscovery) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  1891  	op := &request.Operation{
  1892  		Name:       opListTagsForResource,
  1893  		HTTPMethod: "POST",
  1894  		HTTPPath:   "/",
  1895  	}
  1896  
  1897  	if input == nil {
  1898  		input = &ListTagsForResourceInput{}
  1899  	}
  1900  
  1901  	output = &ListTagsForResourceOutput{}
  1902  	req = c.newRequest(op, input, output)
  1903  	return
  1904  }
  1905  
  1906  // ListTagsForResource API operation for AWS Cloud Map.
  1907  //
  1908  // Lists tags for the specified resource.
  1909  //
  1910  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1911  // with awserr.Error's Code and Message methods to get detailed information about
  1912  // the error.
  1913  //
  1914  // See the AWS API reference guide for AWS Cloud Map's
  1915  // API operation ListTagsForResource for usage and error information.
  1916  //
  1917  // Returned Error Types:
  1918  //   * ResourceNotFoundException
  1919  //   The operation can't be completed because the resource was not found.
  1920  //
  1921  //   * InvalidInput
  1922  //   One or more specified values aren't valid. For example, a required value
  1923  //   might be missing, a numeric value might be outside the allowed range, or
  1924  //   a string value might exceed length constraints.
  1925  //
  1926  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListTagsForResource
  1927  func (c *ServiceDiscovery) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  1928  	req, out := c.ListTagsForResourceRequest(input)
  1929  	return out, req.Send()
  1930  }
  1931  
  1932  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  1933  // the ability to pass a context and additional request options.
  1934  //
  1935  // See ListTagsForResource for details on how to use this API operation.
  1936  //
  1937  // The context must be non-nil and will be used for request cancellation. If
  1938  // the context is nil a panic will occur. In the future the SDK may create
  1939  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1940  // for more information on using Contexts.
  1941  func (c *ServiceDiscovery) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  1942  	req, out := c.ListTagsForResourceRequest(input)
  1943  	req.SetContext(ctx)
  1944  	req.ApplyOptions(opts...)
  1945  	return out, req.Send()
  1946  }
  1947  
  1948  const opRegisterInstance = "RegisterInstance"
  1949  
  1950  // RegisterInstanceRequest generates a "aws/request.Request" representing the
  1951  // client's request for the RegisterInstance operation. The "output" return
  1952  // value will be populated with the request's response once the request completes
  1953  // successfully.
  1954  //
  1955  // Use "Send" method on the returned Request to send the API call to the service.
  1956  // the "output" return value is not valid until after Send returns without error.
  1957  //
  1958  // See RegisterInstance for more information on using the RegisterInstance
  1959  // API call, and error handling.
  1960  //
  1961  // This method is useful when you want to inject custom logic or configuration
  1962  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1963  //
  1964  //
  1965  //    // Example sending a request using the RegisterInstanceRequest method.
  1966  //    req, resp := client.RegisterInstanceRequest(params)
  1967  //
  1968  //    err := req.Send()
  1969  //    if err == nil { // resp is now filled
  1970  //        fmt.Println(resp)
  1971  //    }
  1972  //
  1973  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/RegisterInstance
  1974  func (c *ServiceDiscovery) RegisterInstanceRequest(input *RegisterInstanceInput) (req *request.Request, output *RegisterInstanceOutput) {
  1975  	op := &request.Operation{
  1976  		Name:       opRegisterInstance,
  1977  		HTTPMethod: "POST",
  1978  		HTTPPath:   "/",
  1979  	}
  1980  
  1981  	if input == nil {
  1982  		input = &RegisterInstanceInput{}
  1983  	}
  1984  
  1985  	output = &RegisterInstanceOutput{}
  1986  	req = c.newRequest(op, input, output)
  1987  	return
  1988  }
  1989  
  1990  // RegisterInstance API operation for AWS Cloud Map.
  1991  //
  1992  // Creates or updates one or more records and, optionally, creates a health
  1993  // check based on the settings in a specified service. When you submit a RegisterInstance
  1994  // request, the following occurs:
  1995  //
  1996  //    * For each DNS record that you define in the service that's specified
  1997  //    by ServiceId, a record is created or updated in the hosted zone that's
  1998  //    associated with the corresponding namespace.
  1999  //
  2000  //    * If the service includes HealthCheckConfig, a health check is created
  2001  //    based on the settings in the health check configuration.
  2002  //
  2003  //    * The health check, if any, is associated with each of the new or updated
  2004  //    records.
  2005  //
  2006  // One RegisterInstance request must complete before you can submit another
  2007  // request and specify the same service ID and instance ID.
  2008  //
  2009  // For more information, see CreateService (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
  2010  //
  2011  // When Cloud Map receives a DNS query for the specified DNS name, it returns
  2012  // the applicable value:
  2013  //
  2014  //    * If the health check is healthy: returns all the records
  2015  //
  2016  //    * If the health check is unhealthy: returns the applicable value for the
  2017  //    last healthy instance
  2018  //
  2019  //    * If you didn't specify a health check configuration: returns all the
  2020  //    records
  2021  //
  2022  // For the current quota on the number of instances that you can register using
  2023  // the same namespace and using the same service, see Cloud Map quotas (https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html)
  2024  // in the Cloud Map Developer Guide.
  2025  //
  2026  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2027  // with awserr.Error's Code and Message methods to get detailed information about
  2028  // the error.
  2029  //
  2030  // See the AWS API reference guide for AWS Cloud Map's
  2031  // API operation RegisterInstance for usage and error information.
  2032  //
  2033  // Returned Error Types:
  2034  //   * DuplicateRequest
  2035  //   The operation is already in progress.
  2036  //
  2037  //   * InvalidInput
  2038  //   One or more specified values aren't valid. For example, a required value
  2039  //   might be missing, a numeric value might be outside the allowed range, or
  2040  //   a string value might exceed length constraints.
  2041  //
  2042  //   * ResourceInUse
  2043  //   The specified resource can't be deleted because it contains other resources.
  2044  //   For example, you can't delete a service that contains any instances.
  2045  //
  2046  //   * ResourceLimitExceeded
  2047  //   The resource can't be created because you've reached the quota on the number
  2048  //   of resources.
  2049  //
  2050  //   * ServiceNotFound
  2051  //   No service exists with the specified ID.
  2052  //
  2053  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/RegisterInstance
  2054  func (c *ServiceDiscovery) RegisterInstance(input *RegisterInstanceInput) (*RegisterInstanceOutput, error) {
  2055  	req, out := c.RegisterInstanceRequest(input)
  2056  	return out, req.Send()
  2057  }
  2058  
  2059  // RegisterInstanceWithContext is the same as RegisterInstance with the addition of
  2060  // the ability to pass a context and additional request options.
  2061  //
  2062  // See RegisterInstance for details on how to use this API operation.
  2063  //
  2064  // The context must be non-nil and will be used for request cancellation. If
  2065  // the context is nil a panic will occur. In the future the SDK may create
  2066  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2067  // for more information on using Contexts.
  2068  func (c *ServiceDiscovery) RegisterInstanceWithContext(ctx aws.Context, input *RegisterInstanceInput, opts ...request.Option) (*RegisterInstanceOutput, error) {
  2069  	req, out := c.RegisterInstanceRequest(input)
  2070  	req.SetContext(ctx)
  2071  	req.ApplyOptions(opts...)
  2072  	return out, req.Send()
  2073  }
  2074  
  2075  const opTagResource = "TagResource"
  2076  
  2077  // TagResourceRequest generates a "aws/request.Request" representing the
  2078  // client's request for the TagResource operation. The "output" return
  2079  // value will be populated with the request's response once the request completes
  2080  // successfully.
  2081  //
  2082  // Use "Send" method on the returned Request to send the API call to the service.
  2083  // the "output" return value is not valid until after Send returns without error.
  2084  //
  2085  // See TagResource for more information on using the TagResource
  2086  // API call, and error handling.
  2087  //
  2088  // This method is useful when you want to inject custom logic or configuration
  2089  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2090  //
  2091  //
  2092  //    // Example sending a request using the TagResourceRequest method.
  2093  //    req, resp := client.TagResourceRequest(params)
  2094  //
  2095  //    err := req.Send()
  2096  //    if err == nil { // resp is now filled
  2097  //        fmt.Println(resp)
  2098  //    }
  2099  //
  2100  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/TagResource
  2101  func (c *ServiceDiscovery) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  2102  	op := &request.Operation{
  2103  		Name:       opTagResource,
  2104  		HTTPMethod: "POST",
  2105  		HTTPPath:   "/",
  2106  	}
  2107  
  2108  	if input == nil {
  2109  		input = &TagResourceInput{}
  2110  	}
  2111  
  2112  	output = &TagResourceOutput{}
  2113  	req = c.newRequest(op, input, output)
  2114  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2115  	return
  2116  }
  2117  
  2118  // TagResource API operation for AWS Cloud Map.
  2119  //
  2120  // Adds one or more tags to the specified resource.
  2121  //
  2122  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2123  // with awserr.Error's Code and Message methods to get detailed information about
  2124  // the error.
  2125  //
  2126  // See the AWS API reference guide for AWS Cloud Map's
  2127  // API operation TagResource for usage and error information.
  2128  //
  2129  // Returned Error Types:
  2130  //   * ResourceNotFoundException
  2131  //   The operation can't be completed because the resource was not found.
  2132  //
  2133  //   * TooManyTagsException
  2134  //   The list of tags on the resource is over the quota. The maximum number of
  2135  //   tags that can be applied to a resource is 50.
  2136  //
  2137  //   * InvalidInput
  2138  //   One or more specified values aren't valid. For example, a required value
  2139  //   might be missing, a numeric value might be outside the allowed range, or
  2140  //   a string value might exceed length constraints.
  2141  //
  2142  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/TagResource
  2143  func (c *ServiceDiscovery) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  2144  	req, out := c.TagResourceRequest(input)
  2145  	return out, req.Send()
  2146  }
  2147  
  2148  // TagResourceWithContext is the same as TagResource with the addition of
  2149  // the ability to pass a context and additional request options.
  2150  //
  2151  // See TagResource for details on how to use this API operation.
  2152  //
  2153  // The context must be non-nil and will be used for request cancellation. If
  2154  // the context is nil a panic will occur. In the future the SDK may create
  2155  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2156  // for more information on using Contexts.
  2157  func (c *ServiceDiscovery) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  2158  	req, out := c.TagResourceRequest(input)
  2159  	req.SetContext(ctx)
  2160  	req.ApplyOptions(opts...)
  2161  	return out, req.Send()
  2162  }
  2163  
  2164  const opUntagResource = "UntagResource"
  2165  
  2166  // UntagResourceRequest generates a "aws/request.Request" representing the
  2167  // client's request for the UntagResource operation. The "output" return
  2168  // value will be populated with the request's response once the request completes
  2169  // successfully.
  2170  //
  2171  // Use "Send" method on the returned Request to send the API call to the service.
  2172  // the "output" return value is not valid until after Send returns without error.
  2173  //
  2174  // See UntagResource for more information on using the UntagResource
  2175  // API call, and error handling.
  2176  //
  2177  // This method is useful when you want to inject custom logic or configuration
  2178  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2179  //
  2180  //
  2181  //    // Example sending a request using the UntagResourceRequest method.
  2182  //    req, resp := client.UntagResourceRequest(params)
  2183  //
  2184  //    err := req.Send()
  2185  //    if err == nil { // resp is now filled
  2186  //        fmt.Println(resp)
  2187  //    }
  2188  //
  2189  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UntagResource
  2190  func (c *ServiceDiscovery) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  2191  	op := &request.Operation{
  2192  		Name:       opUntagResource,
  2193  		HTTPMethod: "POST",
  2194  		HTTPPath:   "/",
  2195  	}
  2196  
  2197  	if input == nil {
  2198  		input = &UntagResourceInput{}
  2199  	}
  2200  
  2201  	output = &UntagResourceOutput{}
  2202  	req = c.newRequest(op, input, output)
  2203  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2204  	return
  2205  }
  2206  
  2207  // UntagResource API operation for AWS Cloud Map.
  2208  //
  2209  // Removes one or more tags from the specified resource.
  2210  //
  2211  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2212  // with awserr.Error's Code and Message methods to get detailed information about
  2213  // the error.
  2214  //
  2215  // See the AWS API reference guide for AWS Cloud Map's
  2216  // API operation UntagResource for usage and error information.
  2217  //
  2218  // Returned Error Types:
  2219  //   * ResourceNotFoundException
  2220  //   The operation can't be completed because the resource was not found.
  2221  //
  2222  //   * InvalidInput
  2223  //   One or more specified values aren't valid. For example, a required value
  2224  //   might be missing, a numeric value might be outside the allowed range, or
  2225  //   a string value might exceed length constraints.
  2226  //
  2227  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UntagResource
  2228  func (c *ServiceDiscovery) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  2229  	req, out := c.UntagResourceRequest(input)
  2230  	return out, req.Send()
  2231  }
  2232  
  2233  // UntagResourceWithContext is the same as UntagResource with the addition of
  2234  // the ability to pass a context and additional request options.
  2235  //
  2236  // See UntagResource for details on how to use this API operation.
  2237  //
  2238  // The context must be non-nil and will be used for request cancellation. If
  2239  // the context is nil a panic will occur. In the future the SDK may create
  2240  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2241  // for more information on using Contexts.
  2242  func (c *ServiceDiscovery) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  2243  	req, out := c.UntagResourceRequest(input)
  2244  	req.SetContext(ctx)
  2245  	req.ApplyOptions(opts...)
  2246  	return out, req.Send()
  2247  }
  2248  
  2249  const opUpdateHttpNamespace = "UpdateHttpNamespace"
  2250  
  2251  // UpdateHttpNamespaceRequest generates a "aws/request.Request" representing the
  2252  // client's request for the UpdateHttpNamespace operation. The "output" return
  2253  // value will be populated with the request's response once the request completes
  2254  // successfully.
  2255  //
  2256  // Use "Send" method on the returned Request to send the API call to the service.
  2257  // the "output" return value is not valid until after Send returns without error.
  2258  //
  2259  // See UpdateHttpNamespace for more information on using the UpdateHttpNamespace
  2260  // API call, and error handling.
  2261  //
  2262  // This method is useful when you want to inject custom logic or configuration
  2263  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2264  //
  2265  //
  2266  //    // Example sending a request using the UpdateHttpNamespaceRequest method.
  2267  //    req, resp := client.UpdateHttpNamespaceRequest(params)
  2268  //
  2269  //    err := req.Send()
  2270  //    if err == nil { // resp is now filled
  2271  //        fmt.Println(resp)
  2272  //    }
  2273  //
  2274  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateHttpNamespace
  2275  func (c *ServiceDiscovery) UpdateHttpNamespaceRequest(input *UpdateHttpNamespaceInput) (req *request.Request, output *UpdateHttpNamespaceOutput) {
  2276  	op := &request.Operation{
  2277  		Name:       opUpdateHttpNamespace,
  2278  		HTTPMethod: "POST",
  2279  		HTTPPath:   "/",
  2280  	}
  2281  
  2282  	if input == nil {
  2283  		input = &UpdateHttpNamespaceInput{}
  2284  	}
  2285  
  2286  	output = &UpdateHttpNamespaceOutput{}
  2287  	req = c.newRequest(op, input, output)
  2288  	return
  2289  }
  2290  
  2291  // UpdateHttpNamespace API operation for AWS Cloud Map.
  2292  //
  2293  // Updates an HTTP namespace.
  2294  //
  2295  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2296  // with awserr.Error's Code and Message methods to get detailed information about
  2297  // the error.
  2298  //
  2299  // See the AWS API reference guide for AWS Cloud Map's
  2300  // API operation UpdateHttpNamespace for usage and error information.
  2301  //
  2302  // Returned Error Types:
  2303  //   * InvalidInput
  2304  //   One or more specified values aren't valid. For example, a required value
  2305  //   might be missing, a numeric value might be outside the allowed range, or
  2306  //   a string value might exceed length constraints.
  2307  //
  2308  //   * NamespaceNotFound
  2309  //   No namespace exists with the specified ID.
  2310  //
  2311  //   * ResourceInUse
  2312  //   The specified resource can't be deleted because it contains other resources.
  2313  //   For example, you can't delete a service that contains any instances.
  2314  //
  2315  //   * DuplicateRequest
  2316  //   The operation is already in progress.
  2317  //
  2318  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateHttpNamespace
  2319  func (c *ServiceDiscovery) UpdateHttpNamespace(input *UpdateHttpNamespaceInput) (*UpdateHttpNamespaceOutput, error) {
  2320  	req, out := c.UpdateHttpNamespaceRequest(input)
  2321  	return out, req.Send()
  2322  }
  2323  
  2324  // UpdateHttpNamespaceWithContext is the same as UpdateHttpNamespace with the addition of
  2325  // the ability to pass a context and additional request options.
  2326  //
  2327  // See UpdateHttpNamespace for details on how to use this API operation.
  2328  //
  2329  // The context must be non-nil and will be used for request cancellation. If
  2330  // the context is nil a panic will occur. In the future the SDK may create
  2331  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2332  // for more information on using Contexts.
  2333  func (c *ServiceDiscovery) UpdateHttpNamespaceWithContext(ctx aws.Context, input *UpdateHttpNamespaceInput, opts ...request.Option) (*UpdateHttpNamespaceOutput, error) {
  2334  	req, out := c.UpdateHttpNamespaceRequest(input)
  2335  	req.SetContext(ctx)
  2336  	req.ApplyOptions(opts...)
  2337  	return out, req.Send()
  2338  }
  2339  
  2340  const opUpdateInstanceCustomHealthStatus = "UpdateInstanceCustomHealthStatus"
  2341  
  2342  // UpdateInstanceCustomHealthStatusRequest generates a "aws/request.Request" representing the
  2343  // client's request for the UpdateInstanceCustomHealthStatus operation. The "output" return
  2344  // value will be populated with the request's response once the request completes
  2345  // successfully.
  2346  //
  2347  // Use "Send" method on the returned Request to send the API call to the service.
  2348  // the "output" return value is not valid until after Send returns without error.
  2349  //
  2350  // See UpdateInstanceCustomHealthStatus for more information on using the UpdateInstanceCustomHealthStatus
  2351  // API call, and error handling.
  2352  //
  2353  // This method is useful when you want to inject custom logic or configuration
  2354  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2355  //
  2356  //
  2357  //    // Example sending a request using the UpdateInstanceCustomHealthStatusRequest method.
  2358  //    req, resp := client.UpdateInstanceCustomHealthStatusRequest(params)
  2359  //
  2360  //    err := req.Send()
  2361  //    if err == nil { // resp is now filled
  2362  //        fmt.Println(resp)
  2363  //    }
  2364  //
  2365  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateInstanceCustomHealthStatus
  2366  func (c *ServiceDiscovery) UpdateInstanceCustomHealthStatusRequest(input *UpdateInstanceCustomHealthStatusInput) (req *request.Request, output *UpdateInstanceCustomHealthStatusOutput) {
  2367  	op := &request.Operation{
  2368  		Name:       opUpdateInstanceCustomHealthStatus,
  2369  		HTTPMethod: "POST",
  2370  		HTTPPath:   "/",
  2371  	}
  2372  
  2373  	if input == nil {
  2374  		input = &UpdateInstanceCustomHealthStatusInput{}
  2375  	}
  2376  
  2377  	output = &UpdateInstanceCustomHealthStatusOutput{}
  2378  	req = c.newRequest(op, input, output)
  2379  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2380  	return
  2381  }
  2382  
  2383  // UpdateInstanceCustomHealthStatus API operation for AWS Cloud Map.
  2384  //
  2385  // Submits a request to change the health status of a custom health check to
  2386  // healthy or unhealthy.
  2387  //
  2388  // You can use UpdateInstanceCustomHealthStatus to change the status only for
  2389  // custom health checks, which you define using HealthCheckCustomConfig when
  2390  // you create a service. You can't use it to change the status for Route 53
  2391  // health checks, which you define using HealthCheckConfig.
  2392  //
  2393  // For more information, see HealthCheckCustomConfig (https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html).
  2394  //
  2395  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2396  // with awserr.Error's Code and Message methods to get detailed information about
  2397  // the error.
  2398  //
  2399  // See the AWS API reference guide for AWS Cloud Map's
  2400  // API operation UpdateInstanceCustomHealthStatus for usage and error information.
  2401  //
  2402  // Returned Error Types:
  2403  //   * InstanceNotFound
  2404  //   No instance exists with the specified ID, or the instance was recently registered,
  2405  //   and information about the instance hasn't propagated yet.
  2406  //
  2407  //   * ServiceNotFound
  2408  //   No service exists with the specified ID.
  2409  //
  2410  //   * CustomHealthNotFound
  2411  //   The health check for the instance that's specified by ServiceId and InstanceId
  2412  //   isn't a custom health check.
  2413  //
  2414  //   * InvalidInput
  2415  //   One or more specified values aren't valid. For example, a required value
  2416  //   might be missing, a numeric value might be outside the allowed range, or
  2417  //   a string value might exceed length constraints.
  2418  //
  2419  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateInstanceCustomHealthStatus
  2420  func (c *ServiceDiscovery) UpdateInstanceCustomHealthStatus(input *UpdateInstanceCustomHealthStatusInput) (*UpdateInstanceCustomHealthStatusOutput, error) {
  2421  	req, out := c.UpdateInstanceCustomHealthStatusRequest(input)
  2422  	return out, req.Send()
  2423  }
  2424  
  2425  // UpdateInstanceCustomHealthStatusWithContext is the same as UpdateInstanceCustomHealthStatus with the addition of
  2426  // the ability to pass a context and additional request options.
  2427  //
  2428  // See UpdateInstanceCustomHealthStatus for details on how to use this API operation.
  2429  //
  2430  // The context must be non-nil and will be used for request cancellation. If
  2431  // the context is nil a panic will occur. In the future the SDK may create
  2432  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2433  // for more information on using Contexts.
  2434  func (c *ServiceDiscovery) UpdateInstanceCustomHealthStatusWithContext(ctx aws.Context, input *UpdateInstanceCustomHealthStatusInput, opts ...request.Option) (*UpdateInstanceCustomHealthStatusOutput, error) {
  2435  	req, out := c.UpdateInstanceCustomHealthStatusRequest(input)
  2436  	req.SetContext(ctx)
  2437  	req.ApplyOptions(opts...)
  2438  	return out, req.Send()
  2439  }
  2440  
  2441  const opUpdatePrivateDnsNamespace = "UpdatePrivateDnsNamespace"
  2442  
  2443  // UpdatePrivateDnsNamespaceRequest generates a "aws/request.Request" representing the
  2444  // client's request for the UpdatePrivateDnsNamespace operation. The "output" return
  2445  // value will be populated with the request's response once the request completes
  2446  // successfully.
  2447  //
  2448  // Use "Send" method on the returned Request to send the API call to the service.
  2449  // the "output" return value is not valid until after Send returns without error.
  2450  //
  2451  // See UpdatePrivateDnsNamespace for more information on using the UpdatePrivateDnsNamespace
  2452  // API call, and error handling.
  2453  //
  2454  // This method is useful when you want to inject custom logic or configuration
  2455  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2456  //
  2457  //
  2458  //    // Example sending a request using the UpdatePrivateDnsNamespaceRequest method.
  2459  //    req, resp := client.UpdatePrivateDnsNamespaceRequest(params)
  2460  //
  2461  //    err := req.Send()
  2462  //    if err == nil { // resp is now filled
  2463  //        fmt.Println(resp)
  2464  //    }
  2465  //
  2466  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdatePrivateDnsNamespace
  2467  func (c *ServiceDiscovery) UpdatePrivateDnsNamespaceRequest(input *UpdatePrivateDnsNamespaceInput) (req *request.Request, output *UpdatePrivateDnsNamespaceOutput) {
  2468  	op := &request.Operation{
  2469  		Name:       opUpdatePrivateDnsNamespace,
  2470  		HTTPMethod: "POST",
  2471  		HTTPPath:   "/",
  2472  	}
  2473  
  2474  	if input == nil {
  2475  		input = &UpdatePrivateDnsNamespaceInput{}
  2476  	}
  2477  
  2478  	output = &UpdatePrivateDnsNamespaceOutput{}
  2479  	req = c.newRequest(op, input, output)
  2480  	return
  2481  }
  2482  
  2483  // UpdatePrivateDnsNamespace API operation for AWS Cloud Map.
  2484  //
  2485  // Updates a private DNS namespace.
  2486  //
  2487  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2488  // with awserr.Error's Code and Message methods to get detailed information about
  2489  // the error.
  2490  //
  2491  // See the AWS API reference guide for AWS Cloud Map's
  2492  // API operation UpdatePrivateDnsNamespace for usage and error information.
  2493  //
  2494  // Returned Error Types:
  2495  //   * InvalidInput
  2496  //   One or more specified values aren't valid. For example, a required value
  2497  //   might be missing, a numeric value might be outside the allowed range, or
  2498  //   a string value might exceed length constraints.
  2499  //
  2500  //   * NamespaceNotFound
  2501  //   No namespace exists with the specified ID.
  2502  //
  2503  //   * ResourceInUse
  2504  //   The specified resource can't be deleted because it contains other resources.
  2505  //   For example, you can't delete a service that contains any instances.
  2506  //
  2507  //   * DuplicateRequest
  2508  //   The operation is already in progress.
  2509  //
  2510  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdatePrivateDnsNamespace
  2511  func (c *ServiceDiscovery) UpdatePrivateDnsNamespace(input *UpdatePrivateDnsNamespaceInput) (*UpdatePrivateDnsNamespaceOutput, error) {
  2512  	req, out := c.UpdatePrivateDnsNamespaceRequest(input)
  2513  	return out, req.Send()
  2514  }
  2515  
  2516  // UpdatePrivateDnsNamespaceWithContext is the same as UpdatePrivateDnsNamespace with the addition of
  2517  // the ability to pass a context and additional request options.
  2518  //
  2519  // See UpdatePrivateDnsNamespace for details on how to use this API operation.
  2520  //
  2521  // The context must be non-nil and will be used for request cancellation. If
  2522  // the context is nil a panic will occur. In the future the SDK may create
  2523  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2524  // for more information on using Contexts.
  2525  func (c *ServiceDiscovery) UpdatePrivateDnsNamespaceWithContext(ctx aws.Context, input *UpdatePrivateDnsNamespaceInput, opts ...request.Option) (*UpdatePrivateDnsNamespaceOutput, error) {
  2526  	req, out := c.UpdatePrivateDnsNamespaceRequest(input)
  2527  	req.SetContext(ctx)
  2528  	req.ApplyOptions(opts...)
  2529  	return out, req.Send()
  2530  }
  2531  
  2532  const opUpdatePublicDnsNamespace = "UpdatePublicDnsNamespace"
  2533  
  2534  // UpdatePublicDnsNamespaceRequest generates a "aws/request.Request" representing the
  2535  // client's request for the UpdatePublicDnsNamespace operation. The "output" return
  2536  // value will be populated with the request's response once the request completes
  2537  // successfully.
  2538  //
  2539  // Use "Send" method on the returned Request to send the API call to the service.
  2540  // the "output" return value is not valid until after Send returns without error.
  2541  //
  2542  // See UpdatePublicDnsNamespace for more information on using the UpdatePublicDnsNamespace
  2543  // API call, and error handling.
  2544  //
  2545  // This method is useful when you want to inject custom logic or configuration
  2546  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2547  //
  2548  //
  2549  //    // Example sending a request using the UpdatePublicDnsNamespaceRequest method.
  2550  //    req, resp := client.UpdatePublicDnsNamespaceRequest(params)
  2551  //
  2552  //    err := req.Send()
  2553  //    if err == nil { // resp is now filled
  2554  //        fmt.Println(resp)
  2555  //    }
  2556  //
  2557  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdatePublicDnsNamespace
  2558  func (c *ServiceDiscovery) UpdatePublicDnsNamespaceRequest(input *UpdatePublicDnsNamespaceInput) (req *request.Request, output *UpdatePublicDnsNamespaceOutput) {
  2559  	op := &request.Operation{
  2560  		Name:       opUpdatePublicDnsNamespace,
  2561  		HTTPMethod: "POST",
  2562  		HTTPPath:   "/",
  2563  	}
  2564  
  2565  	if input == nil {
  2566  		input = &UpdatePublicDnsNamespaceInput{}
  2567  	}
  2568  
  2569  	output = &UpdatePublicDnsNamespaceOutput{}
  2570  	req = c.newRequest(op, input, output)
  2571  	return
  2572  }
  2573  
  2574  // UpdatePublicDnsNamespace API operation for AWS Cloud Map.
  2575  //
  2576  // Updates a public DNS namespace.
  2577  //
  2578  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2579  // with awserr.Error's Code and Message methods to get detailed information about
  2580  // the error.
  2581  //
  2582  // See the AWS API reference guide for AWS Cloud Map's
  2583  // API operation UpdatePublicDnsNamespace for usage and error information.
  2584  //
  2585  // Returned Error Types:
  2586  //   * InvalidInput
  2587  //   One or more specified values aren't valid. For example, a required value
  2588  //   might be missing, a numeric value might be outside the allowed range, or
  2589  //   a string value might exceed length constraints.
  2590  //
  2591  //   * NamespaceNotFound
  2592  //   No namespace exists with the specified ID.
  2593  //
  2594  //   * ResourceInUse
  2595  //   The specified resource can't be deleted because it contains other resources.
  2596  //   For example, you can't delete a service that contains any instances.
  2597  //
  2598  //   * DuplicateRequest
  2599  //   The operation is already in progress.
  2600  //
  2601  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdatePublicDnsNamespace
  2602  func (c *ServiceDiscovery) UpdatePublicDnsNamespace(input *UpdatePublicDnsNamespaceInput) (*UpdatePublicDnsNamespaceOutput, error) {
  2603  	req, out := c.UpdatePublicDnsNamespaceRequest(input)
  2604  	return out, req.Send()
  2605  }
  2606  
  2607  // UpdatePublicDnsNamespaceWithContext is the same as UpdatePublicDnsNamespace with the addition of
  2608  // the ability to pass a context and additional request options.
  2609  //
  2610  // See UpdatePublicDnsNamespace for details on how to use this API operation.
  2611  //
  2612  // The context must be non-nil and will be used for request cancellation. If
  2613  // the context is nil a panic will occur. In the future the SDK may create
  2614  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2615  // for more information on using Contexts.
  2616  func (c *ServiceDiscovery) UpdatePublicDnsNamespaceWithContext(ctx aws.Context, input *UpdatePublicDnsNamespaceInput, opts ...request.Option) (*UpdatePublicDnsNamespaceOutput, error) {
  2617  	req, out := c.UpdatePublicDnsNamespaceRequest(input)
  2618  	req.SetContext(ctx)
  2619  	req.ApplyOptions(opts...)
  2620  	return out, req.Send()
  2621  }
  2622  
  2623  const opUpdateService = "UpdateService"
  2624  
  2625  // UpdateServiceRequest generates a "aws/request.Request" representing the
  2626  // client's request for the UpdateService operation. The "output" return
  2627  // value will be populated with the request's response once the request completes
  2628  // successfully.
  2629  //
  2630  // Use "Send" method on the returned Request to send the API call to the service.
  2631  // the "output" return value is not valid until after Send returns without error.
  2632  //
  2633  // See UpdateService for more information on using the UpdateService
  2634  // API call, and error handling.
  2635  //
  2636  // This method is useful when you want to inject custom logic or configuration
  2637  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2638  //
  2639  //
  2640  //    // Example sending a request using the UpdateServiceRequest method.
  2641  //    req, resp := client.UpdateServiceRequest(params)
  2642  //
  2643  //    err := req.Send()
  2644  //    if err == nil { // resp is now filled
  2645  //        fmt.Println(resp)
  2646  //    }
  2647  //
  2648  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateService
  2649  func (c *ServiceDiscovery) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
  2650  	op := &request.Operation{
  2651  		Name:       opUpdateService,
  2652  		HTTPMethod: "POST",
  2653  		HTTPPath:   "/",
  2654  	}
  2655  
  2656  	if input == nil {
  2657  		input = &UpdateServiceInput{}
  2658  	}
  2659  
  2660  	output = &UpdateServiceOutput{}
  2661  	req = c.newRequest(op, input, output)
  2662  	return
  2663  }
  2664  
  2665  // UpdateService API operation for AWS Cloud Map.
  2666  //
  2667  // Submits a request to perform the following operations:
  2668  //
  2669  //    * Update the TTL setting for existing DnsRecords configurations
  2670  //
  2671  //    * Add, update, or delete HealthCheckConfig for a specified service You
  2672  //    can't add, update, or delete a HealthCheckCustomConfig configuration.
  2673  //
  2674  // For public and private DNS namespaces, note the following:
  2675  //
  2676  //    * If you omit any existing DnsRecords or HealthCheckConfig configurations
  2677  //    from an UpdateService request, the configurations are deleted from the
  2678  //    service.
  2679  //
  2680  //    * If you omit an existing HealthCheckCustomConfig configuration from an
  2681  //    UpdateService request, the configuration isn't deleted from the service.
  2682  //
  2683  // When you update settings for a service, Cloud Map also updates the corresponding
  2684  // settings in all the records and health checks that were created by using
  2685  // the specified service.
  2686  //
  2687  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2688  // with awserr.Error's Code and Message methods to get detailed information about
  2689  // the error.
  2690  //
  2691  // See the AWS API reference guide for AWS Cloud Map's
  2692  // API operation UpdateService for usage and error information.
  2693  //
  2694  // Returned Error Types:
  2695  //   * DuplicateRequest
  2696  //   The operation is already in progress.
  2697  //
  2698  //   * InvalidInput
  2699  //   One or more specified values aren't valid. For example, a required value
  2700  //   might be missing, a numeric value might be outside the allowed range, or
  2701  //   a string value might exceed length constraints.
  2702  //
  2703  //   * ServiceNotFound
  2704  //   No service exists with the specified ID.
  2705  //
  2706  // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateService
  2707  func (c *ServiceDiscovery) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
  2708  	req, out := c.UpdateServiceRequest(input)
  2709  	return out, req.Send()
  2710  }
  2711  
  2712  // UpdateServiceWithContext is the same as UpdateService with the addition of
  2713  // the ability to pass a context and additional request options.
  2714  //
  2715  // See UpdateService for details on how to use this API operation.
  2716  //
  2717  // The context must be non-nil and will be used for request cancellation. If
  2718  // the context is nil a panic will occur. In the future the SDK may create
  2719  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2720  // for more information on using Contexts.
  2721  func (c *ServiceDiscovery) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
  2722  	req, out := c.UpdateServiceRequest(input)
  2723  	req.SetContext(ctx)
  2724  	req.ApplyOptions(opts...)
  2725  	return out, req.Send()
  2726  }
  2727  
  2728  type CreateHttpNamespaceInput struct {
  2729  	_ struct{} `type:"structure"`
  2730  
  2731  	// A unique string that identifies the request and that allows failed CreateHttpNamespace
  2732  	// requests to be retried without the risk of running the operation twice. CreatorRequestId
  2733  	// can be any unique string (for example, a date/time stamp).
  2734  	CreatorRequestId *string `type:"string" idempotencyToken:"true"`
  2735  
  2736  	// A description for the namespace.
  2737  	Description *string `type:"string"`
  2738  
  2739  	// The name that you want to assign to this namespace.
  2740  	//
  2741  	// Name is a required field
  2742  	Name *string `type:"string" required:"true"`
  2743  
  2744  	// The tags to add to the namespace. Each tag consists of a key and an optional
  2745  	// value that you define. Tags keys can be up to 128 characters in length, and
  2746  	// tag values can be up to 256 characters in length.
  2747  	Tags []*Tag `type:"list"`
  2748  }
  2749  
  2750  // String returns the string representation.
  2751  //
  2752  // API parameter values that are decorated as "sensitive" in the API will not
  2753  // be included in the string output. The member name will be present, but the
  2754  // value will be replaced with "sensitive".
  2755  func (s CreateHttpNamespaceInput) String() string {
  2756  	return awsutil.Prettify(s)
  2757  }
  2758  
  2759  // GoString returns the string representation.
  2760  //
  2761  // API parameter values that are decorated as "sensitive" in the API will not
  2762  // be included in the string output. The member name will be present, but the
  2763  // value will be replaced with "sensitive".
  2764  func (s CreateHttpNamespaceInput) GoString() string {
  2765  	return s.String()
  2766  }
  2767  
  2768  // Validate inspects the fields of the type to determine if they are valid.
  2769  func (s *CreateHttpNamespaceInput) Validate() error {
  2770  	invalidParams := request.ErrInvalidParams{Context: "CreateHttpNamespaceInput"}
  2771  	if s.Name == nil {
  2772  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2773  	}
  2774  	if s.Tags != nil {
  2775  		for i, v := range s.Tags {
  2776  			if v == nil {
  2777  				continue
  2778  			}
  2779  			if err := v.Validate(); err != nil {
  2780  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  2781  			}
  2782  		}
  2783  	}
  2784  
  2785  	if invalidParams.Len() > 0 {
  2786  		return invalidParams
  2787  	}
  2788  	return nil
  2789  }
  2790  
  2791  // SetCreatorRequestId sets the CreatorRequestId field's value.
  2792  func (s *CreateHttpNamespaceInput) SetCreatorRequestId(v string) *CreateHttpNamespaceInput {
  2793  	s.CreatorRequestId = &v
  2794  	return s
  2795  }
  2796  
  2797  // SetDescription sets the Description field's value.
  2798  func (s *CreateHttpNamespaceInput) SetDescription(v string) *CreateHttpNamespaceInput {
  2799  	s.Description = &v
  2800  	return s
  2801  }
  2802  
  2803  // SetName sets the Name field's value.
  2804  func (s *CreateHttpNamespaceInput) SetName(v string) *CreateHttpNamespaceInput {
  2805  	s.Name = &v
  2806  	return s
  2807  }
  2808  
  2809  // SetTags sets the Tags field's value.
  2810  func (s *CreateHttpNamespaceInput) SetTags(v []*Tag) *CreateHttpNamespaceInput {
  2811  	s.Tags = v
  2812  	return s
  2813  }
  2814  
  2815  type CreateHttpNamespaceOutput struct {
  2816  	_ struct{} `type:"structure"`
  2817  
  2818  	// A value that you can use to determine whether the request completed successfully.
  2819  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  2820  	OperationId *string `type:"string"`
  2821  }
  2822  
  2823  // String returns the string representation.
  2824  //
  2825  // API parameter values that are decorated as "sensitive" in the API will not
  2826  // be included in the string output. The member name will be present, but the
  2827  // value will be replaced with "sensitive".
  2828  func (s CreateHttpNamespaceOutput) String() string {
  2829  	return awsutil.Prettify(s)
  2830  }
  2831  
  2832  // GoString returns the string representation.
  2833  //
  2834  // API parameter values that are decorated as "sensitive" in the API will not
  2835  // be included in the string output. The member name will be present, but the
  2836  // value will be replaced with "sensitive".
  2837  func (s CreateHttpNamespaceOutput) GoString() string {
  2838  	return s.String()
  2839  }
  2840  
  2841  // SetOperationId sets the OperationId field's value.
  2842  func (s *CreateHttpNamespaceOutput) SetOperationId(v string) *CreateHttpNamespaceOutput {
  2843  	s.OperationId = &v
  2844  	return s
  2845  }
  2846  
  2847  type CreatePrivateDnsNamespaceInput struct {
  2848  	_ struct{} `type:"structure"`
  2849  
  2850  	// A unique string that identifies the request and that allows failed CreatePrivateDnsNamespace
  2851  	// requests to be retried without the risk of running the operation twice. CreatorRequestId
  2852  	// can be any unique string (for example, a date/timestamp).
  2853  	CreatorRequestId *string `type:"string" idempotencyToken:"true"`
  2854  
  2855  	// A description for the namespace.
  2856  	Description *string `type:"string"`
  2857  
  2858  	// The name that you want to assign to this namespace. When you create a private
  2859  	// DNS namespace, Cloud Map automatically creates an Amazon Route 53 private
  2860  	// hosted zone that has the same name as the namespace.
  2861  	//
  2862  	// Name is a required field
  2863  	Name *string `type:"string" required:"true"`
  2864  
  2865  	// Properties for the private DNS namespace.
  2866  	Properties *PrivateDnsNamespaceProperties `type:"structure"`
  2867  
  2868  	// The tags to add to the namespace. Each tag consists of a key and an optional
  2869  	// value that you define. Tags keys can be up to 128 characters in length, and
  2870  	// tag values can be up to 256 characters in length.
  2871  	Tags []*Tag `type:"list"`
  2872  
  2873  	// The ID of the Amazon VPC that you want to associate the namespace with.
  2874  	//
  2875  	// Vpc is a required field
  2876  	Vpc *string `type:"string" required:"true"`
  2877  }
  2878  
  2879  // String returns the string representation.
  2880  //
  2881  // API parameter values that are decorated as "sensitive" in the API will not
  2882  // be included in the string output. The member name will be present, but the
  2883  // value will be replaced with "sensitive".
  2884  func (s CreatePrivateDnsNamespaceInput) String() string {
  2885  	return awsutil.Prettify(s)
  2886  }
  2887  
  2888  // GoString returns the string representation.
  2889  //
  2890  // API parameter values that are decorated as "sensitive" in the API will not
  2891  // be included in the string output. The member name will be present, but the
  2892  // value will be replaced with "sensitive".
  2893  func (s CreatePrivateDnsNamespaceInput) GoString() string {
  2894  	return s.String()
  2895  }
  2896  
  2897  // Validate inspects the fields of the type to determine if they are valid.
  2898  func (s *CreatePrivateDnsNamespaceInput) Validate() error {
  2899  	invalidParams := request.ErrInvalidParams{Context: "CreatePrivateDnsNamespaceInput"}
  2900  	if s.Name == nil {
  2901  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2902  	}
  2903  	if s.Vpc == nil {
  2904  		invalidParams.Add(request.NewErrParamRequired("Vpc"))
  2905  	}
  2906  	if s.Properties != nil {
  2907  		if err := s.Properties.Validate(); err != nil {
  2908  			invalidParams.AddNested("Properties", err.(request.ErrInvalidParams))
  2909  		}
  2910  	}
  2911  	if s.Tags != nil {
  2912  		for i, v := range s.Tags {
  2913  			if v == nil {
  2914  				continue
  2915  			}
  2916  			if err := v.Validate(); err != nil {
  2917  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  2918  			}
  2919  		}
  2920  	}
  2921  
  2922  	if invalidParams.Len() > 0 {
  2923  		return invalidParams
  2924  	}
  2925  	return nil
  2926  }
  2927  
  2928  // SetCreatorRequestId sets the CreatorRequestId field's value.
  2929  func (s *CreatePrivateDnsNamespaceInput) SetCreatorRequestId(v string) *CreatePrivateDnsNamespaceInput {
  2930  	s.CreatorRequestId = &v
  2931  	return s
  2932  }
  2933  
  2934  // SetDescription sets the Description field's value.
  2935  func (s *CreatePrivateDnsNamespaceInput) SetDescription(v string) *CreatePrivateDnsNamespaceInput {
  2936  	s.Description = &v
  2937  	return s
  2938  }
  2939  
  2940  // SetName sets the Name field's value.
  2941  func (s *CreatePrivateDnsNamespaceInput) SetName(v string) *CreatePrivateDnsNamespaceInput {
  2942  	s.Name = &v
  2943  	return s
  2944  }
  2945  
  2946  // SetProperties sets the Properties field's value.
  2947  func (s *CreatePrivateDnsNamespaceInput) SetProperties(v *PrivateDnsNamespaceProperties) *CreatePrivateDnsNamespaceInput {
  2948  	s.Properties = v
  2949  	return s
  2950  }
  2951  
  2952  // SetTags sets the Tags field's value.
  2953  func (s *CreatePrivateDnsNamespaceInput) SetTags(v []*Tag) *CreatePrivateDnsNamespaceInput {
  2954  	s.Tags = v
  2955  	return s
  2956  }
  2957  
  2958  // SetVpc sets the Vpc field's value.
  2959  func (s *CreatePrivateDnsNamespaceInput) SetVpc(v string) *CreatePrivateDnsNamespaceInput {
  2960  	s.Vpc = &v
  2961  	return s
  2962  }
  2963  
  2964  type CreatePrivateDnsNamespaceOutput struct {
  2965  	_ struct{} `type:"structure"`
  2966  
  2967  	// A value that you can use to determine whether the request completed successfully.
  2968  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  2969  	OperationId *string `type:"string"`
  2970  }
  2971  
  2972  // String returns the string representation.
  2973  //
  2974  // API parameter values that are decorated as "sensitive" in the API will not
  2975  // be included in the string output. The member name will be present, but the
  2976  // value will be replaced with "sensitive".
  2977  func (s CreatePrivateDnsNamespaceOutput) String() string {
  2978  	return awsutil.Prettify(s)
  2979  }
  2980  
  2981  // GoString returns the string representation.
  2982  //
  2983  // API parameter values that are decorated as "sensitive" in the API will not
  2984  // be included in the string output. The member name will be present, but the
  2985  // value will be replaced with "sensitive".
  2986  func (s CreatePrivateDnsNamespaceOutput) GoString() string {
  2987  	return s.String()
  2988  }
  2989  
  2990  // SetOperationId sets the OperationId field's value.
  2991  func (s *CreatePrivateDnsNamespaceOutput) SetOperationId(v string) *CreatePrivateDnsNamespaceOutput {
  2992  	s.OperationId = &v
  2993  	return s
  2994  }
  2995  
  2996  type CreatePublicDnsNamespaceInput struct {
  2997  	_ struct{} `type:"structure"`
  2998  
  2999  	// A unique string that identifies the request and that allows failed CreatePublicDnsNamespace
  3000  	// requests to be retried without the risk of running the operation twice. CreatorRequestId
  3001  	// can be any unique string (for example, a date/timestamp).
  3002  	CreatorRequestId *string `type:"string" idempotencyToken:"true"`
  3003  
  3004  	// A description for the namespace.
  3005  	Description *string `type:"string"`
  3006  
  3007  	// The name that you want to assign to this namespace.
  3008  	//
  3009  	// Name is a required field
  3010  	Name *string `type:"string" required:"true"`
  3011  
  3012  	// Properties for the public DNS namespace.
  3013  	Properties *PublicDnsNamespaceProperties `type:"structure"`
  3014  
  3015  	// The tags to add to the namespace. Each tag consists of a key and an optional
  3016  	// value that you define. Tags keys can be up to 128 characters in length, and
  3017  	// tag values can be up to 256 characters in length.
  3018  	Tags []*Tag `type:"list"`
  3019  }
  3020  
  3021  // String returns the string representation.
  3022  //
  3023  // API parameter values that are decorated as "sensitive" in the API will not
  3024  // be included in the string output. The member name will be present, but the
  3025  // value will be replaced with "sensitive".
  3026  func (s CreatePublicDnsNamespaceInput) String() string {
  3027  	return awsutil.Prettify(s)
  3028  }
  3029  
  3030  // GoString returns the string representation.
  3031  //
  3032  // API parameter values that are decorated as "sensitive" in the API will not
  3033  // be included in the string output. The member name will be present, but the
  3034  // value will be replaced with "sensitive".
  3035  func (s CreatePublicDnsNamespaceInput) GoString() string {
  3036  	return s.String()
  3037  }
  3038  
  3039  // Validate inspects the fields of the type to determine if they are valid.
  3040  func (s *CreatePublicDnsNamespaceInput) Validate() error {
  3041  	invalidParams := request.ErrInvalidParams{Context: "CreatePublicDnsNamespaceInput"}
  3042  	if s.Name == nil {
  3043  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3044  	}
  3045  	if s.Properties != nil {
  3046  		if err := s.Properties.Validate(); err != nil {
  3047  			invalidParams.AddNested("Properties", err.(request.ErrInvalidParams))
  3048  		}
  3049  	}
  3050  	if s.Tags != nil {
  3051  		for i, v := range s.Tags {
  3052  			if v == nil {
  3053  				continue
  3054  			}
  3055  			if err := v.Validate(); err != nil {
  3056  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  3057  			}
  3058  		}
  3059  	}
  3060  
  3061  	if invalidParams.Len() > 0 {
  3062  		return invalidParams
  3063  	}
  3064  	return nil
  3065  }
  3066  
  3067  // SetCreatorRequestId sets the CreatorRequestId field's value.
  3068  func (s *CreatePublicDnsNamespaceInput) SetCreatorRequestId(v string) *CreatePublicDnsNamespaceInput {
  3069  	s.CreatorRequestId = &v
  3070  	return s
  3071  }
  3072  
  3073  // SetDescription sets the Description field's value.
  3074  func (s *CreatePublicDnsNamespaceInput) SetDescription(v string) *CreatePublicDnsNamespaceInput {
  3075  	s.Description = &v
  3076  	return s
  3077  }
  3078  
  3079  // SetName sets the Name field's value.
  3080  func (s *CreatePublicDnsNamespaceInput) SetName(v string) *CreatePublicDnsNamespaceInput {
  3081  	s.Name = &v
  3082  	return s
  3083  }
  3084  
  3085  // SetProperties sets the Properties field's value.
  3086  func (s *CreatePublicDnsNamespaceInput) SetProperties(v *PublicDnsNamespaceProperties) *CreatePublicDnsNamespaceInput {
  3087  	s.Properties = v
  3088  	return s
  3089  }
  3090  
  3091  // SetTags sets the Tags field's value.
  3092  func (s *CreatePublicDnsNamespaceInput) SetTags(v []*Tag) *CreatePublicDnsNamespaceInput {
  3093  	s.Tags = v
  3094  	return s
  3095  }
  3096  
  3097  type CreatePublicDnsNamespaceOutput struct {
  3098  	_ struct{} `type:"structure"`
  3099  
  3100  	// A value that you can use to determine whether the request completed successfully.
  3101  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  3102  	OperationId *string `type:"string"`
  3103  }
  3104  
  3105  // String returns the string representation.
  3106  //
  3107  // API parameter values that are decorated as "sensitive" in the API will not
  3108  // be included in the string output. The member name will be present, but the
  3109  // value will be replaced with "sensitive".
  3110  func (s CreatePublicDnsNamespaceOutput) String() string {
  3111  	return awsutil.Prettify(s)
  3112  }
  3113  
  3114  // GoString returns the string representation.
  3115  //
  3116  // API parameter values that are decorated as "sensitive" in the API will not
  3117  // be included in the string output. The member name will be present, but the
  3118  // value will be replaced with "sensitive".
  3119  func (s CreatePublicDnsNamespaceOutput) GoString() string {
  3120  	return s.String()
  3121  }
  3122  
  3123  // SetOperationId sets the OperationId field's value.
  3124  func (s *CreatePublicDnsNamespaceOutput) SetOperationId(v string) *CreatePublicDnsNamespaceOutput {
  3125  	s.OperationId = &v
  3126  	return s
  3127  }
  3128  
  3129  type CreateServiceInput struct {
  3130  	_ struct{} `type:"structure"`
  3131  
  3132  	// A unique string that identifies the request and that allows failed CreateService
  3133  	// requests to be retried without the risk of running the operation twice. CreatorRequestId
  3134  	// can be any unique string (for example, a date/timestamp).
  3135  	CreatorRequestId *string `type:"string" idempotencyToken:"true"`
  3136  
  3137  	// A description for the service.
  3138  	Description *string `type:"string"`
  3139  
  3140  	// A complex type that contains information about the Amazon Route 53 records
  3141  	// that you want Cloud Map to create when you register an instance.
  3142  	DnsConfig *DnsConfig `type:"structure"`
  3143  
  3144  	// Public DNS and HTTP namespaces only. A complex type that contains settings
  3145  	// for an optional Route 53 health check. If you specify settings for a health
  3146  	// check, Cloud Map associates the health check with all the Route 53 DNS records
  3147  	// that you specify in DnsConfig.
  3148  	//
  3149  	// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  3150  	// or HealthCheckConfig but not both.
  3151  	//
  3152  	// For information about the charges for health checks, see Cloud Map Pricing
  3153  	// (http://aws.amazon.com/cloud-map/pricing/).
  3154  	HealthCheckConfig *HealthCheckConfig `type:"structure"`
  3155  
  3156  	// A complex type that contains information about an optional custom health
  3157  	// check.
  3158  	//
  3159  	// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  3160  	// or HealthCheckConfig but not both.
  3161  	//
  3162  	// You can't add, update, or delete a HealthCheckCustomConfig configuration
  3163  	// from an existing service.
  3164  	HealthCheckCustomConfig *HealthCheckCustomConfig `type:"structure"`
  3165  
  3166  	// The name that you want to assign to the service.
  3167  	//
  3168  	// If you want Cloud Map to create an SRV record when you register an instance
  3169  	// and you're using a system that requires a specific SRV format, such as HAProxy
  3170  	// (http://www.haproxy.org/), specify the following for Name:
  3171  	//
  3172  	//    * Start the name with an underscore (_), such as _exampleservice.
  3173  	//
  3174  	//    * End the name with ._protocol, such as ._tcp.
  3175  	//
  3176  	// When you register an instance, Cloud Map creates an SRV record and assigns
  3177  	// a name to the record by concatenating the service name and the namespace
  3178  	// name (for example,
  3179  	//
  3180  	// _exampleservice._tcp.example.com).
  3181  	//
  3182  	// For services that are accessible by DNS queries, you can't create multiple
  3183  	// services with names that differ only by case (such as EXAMPLE and example).
  3184  	// Otherwise, these services have the same DNS name and can't be distinguished.
  3185  	// However, if you use a namespace that's only accessible by API calls, then
  3186  	// you can create services that with names that differ only by case.
  3187  	//
  3188  	// Name is a required field
  3189  	Name *string `type:"string" required:"true"`
  3190  
  3191  	// The ID of the namespace that you want to use to create the service. The namespace
  3192  	// ID must be specified, but it can be specified either here or in the DnsConfig
  3193  	// object.
  3194  	NamespaceId *string `type:"string"`
  3195  
  3196  	// The tags to add to the service. Each tag consists of a key and an optional
  3197  	// value that you define. Tags keys can be up to 128 characters in length, and
  3198  	// tag values can be up to 256 characters in length.
  3199  	Tags []*Tag `type:"list"`
  3200  
  3201  	// If present, specifies that the service instances are only discoverable using
  3202  	// the DiscoverInstances API operation. No DNS records is registered for the
  3203  	// service instances. The only valid value is HTTP.
  3204  	Type *string `type:"string" enum:"ServiceTypeOption"`
  3205  }
  3206  
  3207  // String returns the string representation.
  3208  //
  3209  // API parameter values that are decorated as "sensitive" in the API will not
  3210  // be included in the string output. The member name will be present, but the
  3211  // value will be replaced with "sensitive".
  3212  func (s CreateServiceInput) String() string {
  3213  	return awsutil.Prettify(s)
  3214  }
  3215  
  3216  // GoString returns the string representation.
  3217  //
  3218  // API parameter values that are decorated as "sensitive" in the API will not
  3219  // be included in the string output. The member name will be present, but the
  3220  // value will be replaced with "sensitive".
  3221  func (s CreateServiceInput) GoString() string {
  3222  	return s.String()
  3223  }
  3224  
  3225  // Validate inspects the fields of the type to determine if they are valid.
  3226  func (s *CreateServiceInput) Validate() error {
  3227  	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
  3228  	if s.Name == nil {
  3229  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3230  	}
  3231  	if s.DnsConfig != nil {
  3232  		if err := s.DnsConfig.Validate(); err != nil {
  3233  			invalidParams.AddNested("DnsConfig", err.(request.ErrInvalidParams))
  3234  		}
  3235  	}
  3236  	if s.HealthCheckConfig != nil {
  3237  		if err := s.HealthCheckConfig.Validate(); err != nil {
  3238  			invalidParams.AddNested("HealthCheckConfig", err.(request.ErrInvalidParams))
  3239  		}
  3240  	}
  3241  	if s.HealthCheckCustomConfig != nil {
  3242  		if err := s.HealthCheckCustomConfig.Validate(); err != nil {
  3243  			invalidParams.AddNested("HealthCheckCustomConfig", err.(request.ErrInvalidParams))
  3244  		}
  3245  	}
  3246  	if s.Tags != nil {
  3247  		for i, v := range s.Tags {
  3248  			if v == nil {
  3249  				continue
  3250  			}
  3251  			if err := v.Validate(); err != nil {
  3252  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  3253  			}
  3254  		}
  3255  	}
  3256  
  3257  	if invalidParams.Len() > 0 {
  3258  		return invalidParams
  3259  	}
  3260  	return nil
  3261  }
  3262  
  3263  // SetCreatorRequestId sets the CreatorRequestId field's value.
  3264  func (s *CreateServiceInput) SetCreatorRequestId(v string) *CreateServiceInput {
  3265  	s.CreatorRequestId = &v
  3266  	return s
  3267  }
  3268  
  3269  // SetDescription sets the Description field's value.
  3270  func (s *CreateServiceInput) SetDescription(v string) *CreateServiceInput {
  3271  	s.Description = &v
  3272  	return s
  3273  }
  3274  
  3275  // SetDnsConfig sets the DnsConfig field's value.
  3276  func (s *CreateServiceInput) SetDnsConfig(v *DnsConfig) *CreateServiceInput {
  3277  	s.DnsConfig = v
  3278  	return s
  3279  }
  3280  
  3281  // SetHealthCheckConfig sets the HealthCheckConfig field's value.
  3282  func (s *CreateServiceInput) SetHealthCheckConfig(v *HealthCheckConfig) *CreateServiceInput {
  3283  	s.HealthCheckConfig = v
  3284  	return s
  3285  }
  3286  
  3287  // SetHealthCheckCustomConfig sets the HealthCheckCustomConfig field's value.
  3288  func (s *CreateServiceInput) SetHealthCheckCustomConfig(v *HealthCheckCustomConfig) *CreateServiceInput {
  3289  	s.HealthCheckCustomConfig = v
  3290  	return s
  3291  }
  3292  
  3293  // SetName sets the Name field's value.
  3294  func (s *CreateServiceInput) SetName(v string) *CreateServiceInput {
  3295  	s.Name = &v
  3296  	return s
  3297  }
  3298  
  3299  // SetNamespaceId sets the NamespaceId field's value.
  3300  func (s *CreateServiceInput) SetNamespaceId(v string) *CreateServiceInput {
  3301  	s.NamespaceId = &v
  3302  	return s
  3303  }
  3304  
  3305  // SetTags sets the Tags field's value.
  3306  func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
  3307  	s.Tags = v
  3308  	return s
  3309  }
  3310  
  3311  // SetType sets the Type field's value.
  3312  func (s *CreateServiceInput) SetType(v string) *CreateServiceInput {
  3313  	s.Type = &v
  3314  	return s
  3315  }
  3316  
  3317  type CreateServiceOutput struct {
  3318  	_ struct{} `type:"structure"`
  3319  
  3320  	// A complex type that contains information about the new service.
  3321  	Service *Service `type:"structure"`
  3322  }
  3323  
  3324  // String returns the string representation.
  3325  //
  3326  // API parameter values that are decorated as "sensitive" in the API will not
  3327  // be included in the string output. The member name will be present, but the
  3328  // value will be replaced with "sensitive".
  3329  func (s CreateServiceOutput) String() string {
  3330  	return awsutil.Prettify(s)
  3331  }
  3332  
  3333  // GoString returns the string representation.
  3334  //
  3335  // API parameter values that are decorated as "sensitive" in the API will not
  3336  // be included in the string output. The member name will be present, but the
  3337  // value will be replaced with "sensitive".
  3338  func (s CreateServiceOutput) GoString() string {
  3339  	return s.String()
  3340  }
  3341  
  3342  // SetService sets the Service field's value.
  3343  func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
  3344  	s.Service = v
  3345  	return s
  3346  }
  3347  
  3348  // The health check for the instance that's specified by ServiceId and InstanceId
  3349  // isn't a custom health check.
  3350  type CustomHealthNotFound struct {
  3351  	_            struct{}                  `type:"structure"`
  3352  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3353  
  3354  	Message_ *string `locationName:"Message" type:"string"`
  3355  }
  3356  
  3357  // String returns the string representation.
  3358  //
  3359  // API parameter values that are decorated as "sensitive" in the API will not
  3360  // be included in the string output. The member name will be present, but the
  3361  // value will be replaced with "sensitive".
  3362  func (s CustomHealthNotFound) String() string {
  3363  	return awsutil.Prettify(s)
  3364  }
  3365  
  3366  // GoString returns the string representation.
  3367  //
  3368  // API parameter values that are decorated as "sensitive" in the API will not
  3369  // be included in the string output. The member name will be present, but the
  3370  // value will be replaced with "sensitive".
  3371  func (s CustomHealthNotFound) GoString() string {
  3372  	return s.String()
  3373  }
  3374  
  3375  func newErrorCustomHealthNotFound(v protocol.ResponseMetadata) error {
  3376  	return &CustomHealthNotFound{
  3377  		RespMetadata: v,
  3378  	}
  3379  }
  3380  
  3381  // Code returns the exception type name.
  3382  func (s *CustomHealthNotFound) Code() string {
  3383  	return "CustomHealthNotFound"
  3384  }
  3385  
  3386  // Message returns the exception's message.
  3387  func (s *CustomHealthNotFound) Message() string {
  3388  	if s.Message_ != nil {
  3389  		return *s.Message_
  3390  	}
  3391  	return ""
  3392  }
  3393  
  3394  // OrigErr always returns nil, satisfies awserr.Error interface.
  3395  func (s *CustomHealthNotFound) OrigErr() error {
  3396  	return nil
  3397  }
  3398  
  3399  func (s *CustomHealthNotFound) Error() string {
  3400  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3401  }
  3402  
  3403  // Status code returns the HTTP status code for the request's response error.
  3404  func (s *CustomHealthNotFound) StatusCode() int {
  3405  	return s.RespMetadata.StatusCode
  3406  }
  3407  
  3408  // RequestID returns the service's response RequestID for request.
  3409  func (s *CustomHealthNotFound) RequestID() string {
  3410  	return s.RespMetadata.RequestID
  3411  }
  3412  
  3413  type DeleteNamespaceInput struct {
  3414  	_ struct{} `type:"structure"`
  3415  
  3416  	// The ID of the namespace that you want to delete.
  3417  	//
  3418  	// Id is a required field
  3419  	Id *string `type:"string" required:"true"`
  3420  }
  3421  
  3422  // String returns the string representation.
  3423  //
  3424  // API parameter values that are decorated as "sensitive" in the API will not
  3425  // be included in the string output. The member name will be present, but the
  3426  // value will be replaced with "sensitive".
  3427  func (s DeleteNamespaceInput) String() string {
  3428  	return awsutil.Prettify(s)
  3429  }
  3430  
  3431  // GoString returns the string representation.
  3432  //
  3433  // API parameter values that are decorated as "sensitive" in the API will not
  3434  // be included in the string output. The member name will be present, but the
  3435  // value will be replaced with "sensitive".
  3436  func (s DeleteNamespaceInput) GoString() string {
  3437  	return s.String()
  3438  }
  3439  
  3440  // Validate inspects the fields of the type to determine if they are valid.
  3441  func (s *DeleteNamespaceInput) Validate() error {
  3442  	invalidParams := request.ErrInvalidParams{Context: "DeleteNamespaceInput"}
  3443  	if s.Id == nil {
  3444  		invalidParams.Add(request.NewErrParamRequired("Id"))
  3445  	}
  3446  
  3447  	if invalidParams.Len() > 0 {
  3448  		return invalidParams
  3449  	}
  3450  	return nil
  3451  }
  3452  
  3453  // SetId sets the Id field's value.
  3454  func (s *DeleteNamespaceInput) SetId(v string) *DeleteNamespaceInput {
  3455  	s.Id = &v
  3456  	return s
  3457  }
  3458  
  3459  type DeleteNamespaceOutput struct {
  3460  	_ struct{} `type:"structure"`
  3461  
  3462  	// A value that you can use to determine whether the request completed successfully.
  3463  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  3464  	OperationId *string `type:"string"`
  3465  }
  3466  
  3467  // String returns the string representation.
  3468  //
  3469  // API parameter values that are decorated as "sensitive" in the API will not
  3470  // be included in the string output. The member name will be present, but the
  3471  // value will be replaced with "sensitive".
  3472  func (s DeleteNamespaceOutput) String() string {
  3473  	return awsutil.Prettify(s)
  3474  }
  3475  
  3476  // GoString returns the string representation.
  3477  //
  3478  // API parameter values that are decorated as "sensitive" in the API will not
  3479  // be included in the string output. The member name will be present, but the
  3480  // value will be replaced with "sensitive".
  3481  func (s DeleteNamespaceOutput) GoString() string {
  3482  	return s.String()
  3483  }
  3484  
  3485  // SetOperationId sets the OperationId field's value.
  3486  func (s *DeleteNamespaceOutput) SetOperationId(v string) *DeleteNamespaceOutput {
  3487  	s.OperationId = &v
  3488  	return s
  3489  }
  3490  
  3491  type DeleteServiceInput struct {
  3492  	_ struct{} `type:"structure"`
  3493  
  3494  	// The ID of the service that you want to delete.
  3495  	//
  3496  	// Id is a required field
  3497  	Id *string `type:"string" required:"true"`
  3498  }
  3499  
  3500  // String returns the string representation.
  3501  //
  3502  // API parameter values that are decorated as "sensitive" in the API will not
  3503  // be included in the string output. The member name will be present, but the
  3504  // value will be replaced with "sensitive".
  3505  func (s DeleteServiceInput) String() string {
  3506  	return awsutil.Prettify(s)
  3507  }
  3508  
  3509  // GoString returns the string representation.
  3510  //
  3511  // API parameter values that are decorated as "sensitive" in the API will not
  3512  // be included in the string output. The member name will be present, but the
  3513  // value will be replaced with "sensitive".
  3514  func (s DeleteServiceInput) GoString() string {
  3515  	return s.String()
  3516  }
  3517  
  3518  // Validate inspects the fields of the type to determine if they are valid.
  3519  func (s *DeleteServiceInput) Validate() error {
  3520  	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
  3521  	if s.Id == nil {
  3522  		invalidParams.Add(request.NewErrParamRequired("Id"))
  3523  	}
  3524  
  3525  	if invalidParams.Len() > 0 {
  3526  		return invalidParams
  3527  	}
  3528  	return nil
  3529  }
  3530  
  3531  // SetId sets the Id field's value.
  3532  func (s *DeleteServiceInput) SetId(v string) *DeleteServiceInput {
  3533  	s.Id = &v
  3534  	return s
  3535  }
  3536  
  3537  type DeleteServiceOutput struct {
  3538  	_ struct{} `type:"structure"`
  3539  }
  3540  
  3541  // String returns the string representation.
  3542  //
  3543  // API parameter values that are decorated as "sensitive" in the API will not
  3544  // be included in the string output. The member name will be present, but the
  3545  // value will be replaced with "sensitive".
  3546  func (s DeleteServiceOutput) String() string {
  3547  	return awsutil.Prettify(s)
  3548  }
  3549  
  3550  // GoString returns the string representation.
  3551  //
  3552  // API parameter values that are decorated as "sensitive" in the API will not
  3553  // be included in the string output. The member name will be present, but the
  3554  // value will be replaced with "sensitive".
  3555  func (s DeleteServiceOutput) GoString() string {
  3556  	return s.String()
  3557  }
  3558  
  3559  type DeregisterInstanceInput struct {
  3560  	_ struct{} `type:"structure"`
  3561  
  3562  	// The value that you specified for Id in the RegisterInstance (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
  3563  	// request.
  3564  	//
  3565  	// InstanceId is a required field
  3566  	InstanceId *string `type:"string" required:"true"`
  3567  
  3568  	// The ID of the service that the instance is associated with.
  3569  	//
  3570  	// ServiceId is a required field
  3571  	ServiceId *string `type:"string" required:"true"`
  3572  }
  3573  
  3574  // String returns the string representation.
  3575  //
  3576  // API parameter values that are decorated as "sensitive" in the API will not
  3577  // be included in the string output. The member name will be present, but the
  3578  // value will be replaced with "sensitive".
  3579  func (s DeregisterInstanceInput) String() string {
  3580  	return awsutil.Prettify(s)
  3581  }
  3582  
  3583  // GoString returns the string representation.
  3584  //
  3585  // API parameter values that are decorated as "sensitive" in the API will not
  3586  // be included in the string output. The member name will be present, but the
  3587  // value will be replaced with "sensitive".
  3588  func (s DeregisterInstanceInput) GoString() string {
  3589  	return s.String()
  3590  }
  3591  
  3592  // Validate inspects the fields of the type to determine if they are valid.
  3593  func (s *DeregisterInstanceInput) Validate() error {
  3594  	invalidParams := request.ErrInvalidParams{Context: "DeregisterInstanceInput"}
  3595  	if s.InstanceId == nil {
  3596  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
  3597  	}
  3598  	if s.ServiceId == nil {
  3599  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  3600  	}
  3601  
  3602  	if invalidParams.Len() > 0 {
  3603  		return invalidParams
  3604  	}
  3605  	return nil
  3606  }
  3607  
  3608  // SetInstanceId sets the InstanceId field's value.
  3609  func (s *DeregisterInstanceInput) SetInstanceId(v string) *DeregisterInstanceInput {
  3610  	s.InstanceId = &v
  3611  	return s
  3612  }
  3613  
  3614  // SetServiceId sets the ServiceId field's value.
  3615  func (s *DeregisterInstanceInput) SetServiceId(v string) *DeregisterInstanceInput {
  3616  	s.ServiceId = &v
  3617  	return s
  3618  }
  3619  
  3620  type DeregisterInstanceOutput struct {
  3621  	_ struct{} `type:"structure"`
  3622  
  3623  	// A value that you can use to determine whether the request completed successfully.
  3624  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  3625  	OperationId *string `type:"string"`
  3626  }
  3627  
  3628  // String returns the string representation.
  3629  //
  3630  // API parameter values that are decorated as "sensitive" in the API will not
  3631  // be included in the string output. The member name will be present, but the
  3632  // value will be replaced with "sensitive".
  3633  func (s DeregisterInstanceOutput) String() string {
  3634  	return awsutil.Prettify(s)
  3635  }
  3636  
  3637  // GoString returns the string representation.
  3638  //
  3639  // API parameter values that are decorated as "sensitive" in the API will not
  3640  // be included in the string output. The member name will be present, but the
  3641  // value will be replaced with "sensitive".
  3642  func (s DeregisterInstanceOutput) GoString() string {
  3643  	return s.String()
  3644  }
  3645  
  3646  // SetOperationId sets the OperationId field's value.
  3647  func (s *DeregisterInstanceOutput) SetOperationId(v string) *DeregisterInstanceOutput {
  3648  	s.OperationId = &v
  3649  	return s
  3650  }
  3651  
  3652  type DiscoverInstancesInput struct {
  3653  	_ struct{} `type:"structure"`
  3654  
  3655  	// The health status of the instances that you want to discover. This parameter
  3656  	// is ignored for services that don't have a health check configured, and all
  3657  	// instances are returned.
  3658  	//
  3659  	// HEALTHY
  3660  	//
  3661  	// Returns healthy instances.
  3662  	//
  3663  	// UNHEALTHY
  3664  	//
  3665  	// Returns unhealthy instances.
  3666  	//
  3667  	// ALL
  3668  	//
  3669  	// Returns all instances.
  3670  	//
  3671  	// HEALTHY_OR_ELSE_ALL
  3672  	//
  3673  	// Returns healthy instances, unless none are reporting a healthy state. In
  3674  	// that case, return all instances. This is also called failing open.
  3675  	HealthStatus *string `type:"string" enum:"HealthStatusFilter"`
  3676  
  3677  	// The maximum number of instances that you want Cloud Map to return in the
  3678  	// response to a DiscoverInstances request. If you don't specify a value for
  3679  	// MaxResults, Cloud Map returns up to 100 instances.
  3680  	MaxResults *int64 `min:"1" type:"integer"`
  3681  
  3682  	// The HttpName name of the namespace. It's found in the HttpProperties member
  3683  	// of the Properties member of the namespace.
  3684  	//
  3685  	// NamespaceName is a required field
  3686  	NamespaceName *string `type:"string" required:"true"`
  3687  
  3688  	// Opportunistic filters to scope the results based on custom attributes. If
  3689  	// there are instances that match both the filters specified in both the QueryParameters
  3690  	// parameter and this parameter, all of these instances are returned. Otherwise,
  3691  	// the filters are ignored, and only instances that match the filters that are
  3692  	// specified in the QueryParameters parameter are returned.
  3693  	OptionalParameters map[string]*string `type:"map"`
  3694  
  3695  	// Filters to scope the results based on custom attributes for the instance
  3696  	// (for example, {version=v1, az=1a}). Only instances that match all the specified
  3697  	// key-value pairs are returned.
  3698  	QueryParameters map[string]*string `type:"map"`
  3699  
  3700  	// The name of the service that you specified when you registered the instance.
  3701  	//
  3702  	// ServiceName is a required field
  3703  	ServiceName *string `type:"string" required:"true"`
  3704  }
  3705  
  3706  // String returns the string representation.
  3707  //
  3708  // API parameter values that are decorated as "sensitive" in the API will not
  3709  // be included in the string output. The member name will be present, but the
  3710  // value will be replaced with "sensitive".
  3711  func (s DiscoverInstancesInput) String() string {
  3712  	return awsutil.Prettify(s)
  3713  }
  3714  
  3715  // GoString returns the string representation.
  3716  //
  3717  // API parameter values that are decorated as "sensitive" in the API will not
  3718  // be included in the string output. The member name will be present, but the
  3719  // value will be replaced with "sensitive".
  3720  func (s DiscoverInstancesInput) GoString() string {
  3721  	return s.String()
  3722  }
  3723  
  3724  // Validate inspects the fields of the type to determine if they are valid.
  3725  func (s *DiscoverInstancesInput) Validate() error {
  3726  	invalidParams := request.ErrInvalidParams{Context: "DiscoverInstancesInput"}
  3727  	if s.MaxResults != nil && *s.MaxResults < 1 {
  3728  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  3729  	}
  3730  	if s.NamespaceName == nil {
  3731  		invalidParams.Add(request.NewErrParamRequired("NamespaceName"))
  3732  	}
  3733  	if s.ServiceName == nil {
  3734  		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
  3735  	}
  3736  
  3737  	if invalidParams.Len() > 0 {
  3738  		return invalidParams
  3739  	}
  3740  	return nil
  3741  }
  3742  
  3743  // SetHealthStatus sets the HealthStatus field's value.
  3744  func (s *DiscoverInstancesInput) SetHealthStatus(v string) *DiscoverInstancesInput {
  3745  	s.HealthStatus = &v
  3746  	return s
  3747  }
  3748  
  3749  // SetMaxResults sets the MaxResults field's value.
  3750  func (s *DiscoverInstancesInput) SetMaxResults(v int64) *DiscoverInstancesInput {
  3751  	s.MaxResults = &v
  3752  	return s
  3753  }
  3754  
  3755  // SetNamespaceName sets the NamespaceName field's value.
  3756  func (s *DiscoverInstancesInput) SetNamespaceName(v string) *DiscoverInstancesInput {
  3757  	s.NamespaceName = &v
  3758  	return s
  3759  }
  3760  
  3761  // SetOptionalParameters sets the OptionalParameters field's value.
  3762  func (s *DiscoverInstancesInput) SetOptionalParameters(v map[string]*string) *DiscoverInstancesInput {
  3763  	s.OptionalParameters = v
  3764  	return s
  3765  }
  3766  
  3767  // SetQueryParameters sets the QueryParameters field's value.
  3768  func (s *DiscoverInstancesInput) SetQueryParameters(v map[string]*string) *DiscoverInstancesInput {
  3769  	s.QueryParameters = v
  3770  	return s
  3771  }
  3772  
  3773  // SetServiceName sets the ServiceName field's value.
  3774  func (s *DiscoverInstancesInput) SetServiceName(v string) *DiscoverInstancesInput {
  3775  	s.ServiceName = &v
  3776  	return s
  3777  }
  3778  
  3779  type DiscoverInstancesOutput struct {
  3780  	_ struct{} `type:"structure"`
  3781  
  3782  	// A complex type that contains one HttpInstanceSummary for each registered
  3783  	// instance.
  3784  	Instances []*HttpInstanceSummary `type:"list"`
  3785  }
  3786  
  3787  // String returns the string representation.
  3788  //
  3789  // API parameter values that are decorated as "sensitive" in the API will not
  3790  // be included in the string output. The member name will be present, but the
  3791  // value will be replaced with "sensitive".
  3792  func (s DiscoverInstancesOutput) String() string {
  3793  	return awsutil.Prettify(s)
  3794  }
  3795  
  3796  // GoString returns the string representation.
  3797  //
  3798  // API parameter values that are decorated as "sensitive" in the API will not
  3799  // be included in the string output. The member name will be present, but the
  3800  // value will be replaced with "sensitive".
  3801  func (s DiscoverInstancesOutput) GoString() string {
  3802  	return s.String()
  3803  }
  3804  
  3805  // SetInstances sets the Instances field's value.
  3806  func (s *DiscoverInstancesOutput) SetInstances(v []*HttpInstanceSummary) *DiscoverInstancesOutput {
  3807  	s.Instances = v
  3808  	return s
  3809  }
  3810  
  3811  // A complex type that contains information about the Amazon Route 53 DNS records
  3812  // that you want Cloud Map to create when you register an instance.
  3813  type DnsConfig struct {
  3814  	_ struct{} `type:"structure"`
  3815  
  3816  	// An array that contains one DnsRecord object for each Route 53 DNS record
  3817  	// that you want Cloud Map to create when you register an instance.
  3818  	//
  3819  	// DnsRecords is a required field
  3820  	DnsRecords []*DnsRecord `type:"list" required:"true"`
  3821  
  3822  	// The ID of the namespace to use for DNS configuration.
  3823  	//
  3824  	// Deprecated: Top level attribute in request should be used to reference namespace-id
  3825  	NamespaceId *string `deprecated:"true" type:"string"`
  3826  
  3827  	// The routing policy that you want to apply to all Route 53 DNS records that
  3828  	// Cloud Map creates when you register an instance and specify this service.
  3829  	//
  3830  	// If you want to use this service to register instances that create alias records,
  3831  	// specify WEIGHTED for the routing policy.
  3832  	//
  3833  	// You can specify the following values:
  3834  	//
  3835  	// MULTIVALUE
  3836  	//
  3837  	// If you define a health check for the service and the health check is healthy,
  3838  	// Route 53 returns the applicable value for up to eight instances.
  3839  	//
  3840  	// For example, suppose that the service includes configurations for one A record
  3841  	// and a health check. You use the service to register 10 instances. Route 53
  3842  	// responds to DNS queries with IP addresses for up to eight healthy instances.
  3843  	// If fewer than eight instances are healthy, Route 53 responds to every DNS
  3844  	// query with the IP addresses for all of the healthy instances.
  3845  	//
  3846  	// If you don't define a health check for the service, Route 53 assumes that
  3847  	// all instances are healthy and returns the values for up to eight instances.
  3848  	//
  3849  	// For more information about the multivalue routing policy, see Multivalue
  3850  	// Answer Routing (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue)
  3851  	// in the Route 53 Developer Guide.
  3852  	//
  3853  	// WEIGHTED
  3854  	//
  3855  	// Route 53 returns the applicable value from one randomly selected instance
  3856  	// from among the instances that you registered using the same service. Currently,
  3857  	// all records have the same weight, so you can't route more or less traffic
  3858  	// to any instances.
  3859  	//
  3860  	// For example, suppose that the service includes configurations for one A record
  3861  	// and a health check. You use the service to register 10 instances. Route 53
  3862  	// responds to DNS queries with the IP address for one randomly selected instance
  3863  	// from among the healthy instances. If no instances are healthy, Route 53 responds
  3864  	// to DNS queries as if all of the instances were healthy.
  3865  	//
  3866  	// If you don't define a health check for the service, Route 53 assumes that
  3867  	// all instances are healthy and returns the applicable value for one randomly
  3868  	// selected instance.
  3869  	//
  3870  	// For more information about the weighted routing policy, see Weighted Routing
  3871  	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted)
  3872  	// in the Route 53 Developer Guide.
  3873  	RoutingPolicy *string `type:"string" enum:"RoutingPolicy"`
  3874  }
  3875  
  3876  // String returns the string representation.
  3877  //
  3878  // API parameter values that are decorated as "sensitive" in the API will not
  3879  // be included in the string output. The member name will be present, but the
  3880  // value will be replaced with "sensitive".
  3881  func (s DnsConfig) String() string {
  3882  	return awsutil.Prettify(s)
  3883  }
  3884  
  3885  // GoString returns the string representation.
  3886  //
  3887  // API parameter values that are decorated as "sensitive" in the API will not
  3888  // be included in the string output. The member name will be present, but the
  3889  // value will be replaced with "sensitive".
  3890  func (s DnsConfig) GoString() string {
  3891  	return s.String()
  3892  }
  3893  
  3894  // Validate inspects the fields of the type to determine if they are valid.
  3895  func (s *DnsConfig) Validate() error {
  3896  	invalidParams := request.ErrInvalidParams{Context: "DnsConfig"}
  3897  	if s.DnsRecords == nil {
  3898  		invalidParams.Add(request.NewErrParamRequired("DnsRecords"))
  3899  	}
  3900  	if s.DnsRecords != nil {
  3901  		for i, v := range s.DnsRecords {
  3902  			if v == nil {
  3903  				continue
  3904  			}
  3905  			if err := v.Validate(); err != nil {
  3906  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DnsRecords", i), err.(request.ErrInvalidParams))
  3907  			}
  3908  		}
  3909  	}
  3910  
  3911  	if invalidParams.Len() > 0 {
  3912  		return invalidParams
  3913  	}
  3914  	return nil
  3915  }
  3916  
  3917  // SetDnsRecords sets the DnsRecords field's value.
  3918  func (s *DnsConfig) SetDnsRecords(v []*DnsRecord) *DnsConfig {
  3919  	s.DnsRecords = v
  3920  	return s
  3921  }
  3922  
  3923  // SetNamespaceId sets the NamespaceId field's value.
  3924  func (s *DnsConfig) SetNamespaceId(v string) *DnsConfig {
  3925  	s.NamespaceId = &v
  3926  	return s
  3927  }
  3928  
  3929  // SetRoutingPolicy sets the RoutingPolicy field's value.
  3930  func (s *DnsConfig) SetRoutingPolicy(v string) *DnsConfig {
  3931  	s.RoutingPolicy = &v
  3932  	return s
  3933  }
  3934  
  3935  // A complex type that contains information about changes to the Route 53 DNS
  3936  // records that Cloud Map creates when you register an instance.
  3937  type DnsConfigChange struct {
  3938  	_ struct{} `type:"structure"`
  3939  
  3940  	// An array that contains one DnsRecord object for each Route 53 record that
  3941  	// you want Cloud Map to create when you register an instance.
  3942  	//
  3943  	// DnsRecords is a required field
  3944  	DnsRecords []*DnsRecord `type:"list" required:"true"`
  3945  }
  3946  
  3947  // String returns the string representation.
  3948  //
  3949  // API parameter values that are decorated as "sensitive" in the API will not
  3950  // be included in the string output. The member name will be present, but the
  3951  // value will be replaced with "sensitive".
  3952  func (s DnsConfigChange) String() string {
  3953  	return awsutil.Prettify(s)
  3954  }
  3955  
  3956  // GoString returns the string representation.
  3957  //
  3958  // API parameter values that are decorated as "sensitive" in the API will not
  3959  // be included in the string output. The member name will be present, but the
  3960  // value will be replaced with "sensitive".
  3961  func (s DnsConfigChange) GoString() string {
  3962  	return s.String()
  3963  }
  3964  
  3965  // Validate inspects the fields of the type to determine if they are valid.
  3966  func (s *DnsConfigChange) Validate() error {
  3967  	invalidParams := request.ErrInvalidParams{Context: "DnsConfigChange"}
  3968  	if s.DnsRecords == nil {
  3969  		invalidParams.Add(request.NewErrParamRequired("DnsRecords"))
  3970  	}
  3971  	if s.DnsRecords != nil {
  3972  		for i, v := range s.DnsRecords {
  3973  			if v == nil {
  3974  				continue
  3975  			}
  3976  			if err := v.Validate(); err != nil {
  3977  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DnsRecords", i), err.(request.ErrInvalidParams))
  3978  			}
  3979  		}
  3980  	}
  3981  
  3982  	if invalidParams.Len() > 0 {
  3983  		return invalidParams
  3984  	}
  3985  	return nil
  3986  }
  3987  
  3988  // SetDnsRecords sets the DnsRecords field's value.
  3989  func (s *DnsConfigChange) SetDnsRecords(v []*DnsRecord) *DnsConfigChange {
  3990  	s.DnsRecords = v
  3991  	return s
  3992  }
  3993  
  3994  // A complex type that contains the ID for the Route 53 hosted zone that Cloud
  3995  // Map creates when you create a namespace.
  3996  type DnsProperties struct {
  3997  	_ struct{} `type:"structure"`
  3998  
  3999  	// The ID for the Route 53 hosted zone that Cloud Map creates when you create
  4000  	// a namespace.
  4001  	HostedZoneId *string `type:"string"`
  4002  
  4003  	// Start of Authority (SOA) record for the hosted zone.
  4004  	SOA *SOA `type:"structure"`
  4005  }
  4006  
  4007  // String returns the string representation.
  4008  //
  4009  // API parameter values that are decorated as "sensitive" in the API will not
  4010  // be included in the string output. The member name will be present, but the
  4011  // value will be replaced with "sensitive".
  4012  func (s DnsProperties) String() string {
  4013  	return awsutil.Prettify(s)
  4014  }
  4015  
  4016  // GoString returns the string representation.
  4017  //
  4018  // API parameter values that are decorated as "sensitive" in the API will not
  4019  // be included in the string output. The member name will be present, but the
  4020  // value will be replaced with "sensitive".
  4021  func (s DnsProperties) GoString() string {
  4022  	return s.String()
  4023  }
  4024  
  4025  // SetHostedZoneId sets the HostedZoneId field's value.
  4026  func (s *DnsProperties) SetHostedZoneId(v string) *DnsProperties {
  4027  	s.HostedZoneId = &v
  4028  	return s
  4029  }
  4030  
  4031  // SetSOA sets the SOA field's value.
  4032  func (s *DnsProperties) SetSOA(v *SOA) *DnsProperties {
  4033  	s.SOA = v
  4034  	return s
  4035  }
  4036  
  4037  // A complex type that contains information about the Route 53 DNS records that
  4038  // you want Cloud Map to create when you register an instance.
  4039  type DnsRecord struct {
  4040  	_ struct{} `type:"structure"`
  4041  
  4042  	// The amount of time, in seconds, that you want DNS resolvers to cache the
  4043  	// settings for this record.
  4044  	//
  4045  	// Alias records don't include a TTL because Route 53 uses the TTL for the Amazon
  4046  	// Web Services resource that an alias record routes traffic to. If you include
  4047  	// the AWS_ALIAS_DNS_NAME attribute when you submit a RegisterInstance (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
  4048  	// request, the TTL value is ignored. Always specify a TTL for the service;
  4049  	// you can use a service to register instances that create either alias or non-alias
  4050  	// records.
  4051  	//
  4052  	// TTL is a required field
  4053  	TTL *int64 `type:"long" required:"true"`
  4054  
  4055  	// The type of the resource, which indicates the type of value that Route 53
  4056  	// returns in response to DNS queries. You can specify values for Type in the
  4057  	// following combinations:
  4058  	//
  4059  	//    * A
  4060  	//
  4061  	//    * AAAA
  4062  	//
  4063  	//    * A and AAAA
  4064  	//
  4065  	//    * SRV
  4066  	//
  4067  	//    * CNAME
  4068  	//
  4069  	// If you want Cloud Map to create a Route 53 alias record when you register
  4070  	// an instance, specify A or AAAA for Type.
  4071  	//
  4072  	// You specify other settings, such as the IP address for A and AAAA records,
  4073  	// when you register an instance. For more information, see RegisterInstance
  4074  	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html).
  4075  	//
  4076  	// The following values are supported:
  4077  	//
  4078  	// A
  4079  	//
  4080  	// Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.
  4081  	//
  4082  	// AAAA
  4083  	//
  4084  	// Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345.
  4085  	//
  4086  	// CNAME
  4087  	//
  4088  	// Route 53 returns the domain name of the resource, such as www.example.com.
  4089  	// Note the following:
  4090  	//
  4091  	//    * You specify the domain name that you want to route traffic to when you
  4092  	//    register an instance. For more information, see Attributes (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes)
  4093  	//    in the topic RegisterInstance (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html).
  4094  	//
  4095  	//    * You must specify WEIGHTED for the value of RoutingPolicy.
  4096  	//
  4097  	//    * You can't specify both CNAME for Type and settings for HealthCheckConfig.
  4098  	//    If you do, the request will fail with an InvalidInput error.
  4099  	//
  4100  	// SRV
  4101  	//
  4102  	// Route 53 returns the value for an SRV record. The value for an SRV record
  4103  	// uses the following values:
  4104  	//
  4105  	// priority weight port service-hostname
  4106  	//
  4107  	// Note the following about the values:
  4108  	//
  4109  	//    * The values of priority and weight are both set to 1 and can't be changed.
  4110  	//
  4111  	//    * The value of port comes from the value that you specify for the AWS_INSTANCE_PORT
  4112  	//    attribute when you submit a RegisterInstance (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
  4113  	//    request.
  4114  	//
  4115  	//    * The value of service-hostname is a concatenation of the following values:
  4116  	//    The value that you specify for InstanceId when you register an instance.
  4117  	//    The name of the service. The name of the namespace. For example, if the
  4118  	//    value of InstanceId is test, the name of the service is backend, and the
  4119  	//    name of the namespace is example.com, the value of service-hostname is
  4120  	//    the following: test.backend.example.com
  4121  	//
  4122  	// If you specify settings for an SRV record, note the following:
  4123  	//
  4124  	//    * If you specify values for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both
  4125  	//    in the RegisterInstance request, Cloud Map automatically creates A and/or
  4126  	//    AAAA records that have the same name as the value of service-hostname
  4127  	//    in the SRV record. You can ignore these records.
  4128  	//
  4129  	//    * If you're using a system that requires a specific SRV format, such as
  4130  	//    HAProxy, see the Name (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html#cloudmap-CreateService-request-Name)
  4131  	//    element in the documentation about CreateService for information about
  4132  	//    how to specify the correct name format.
  4133  	//
  4134  	// Type is a required field
  4135  	Type *string `type:"string" required:"true" enum:"RecordType"`
  4136  }
  4137  
  4138  // String returns the string representation.
  4139  //
  4140  // API parameter values that are decorated as "sensitive" in the API will not
  4141  // be included in the string output. The member name will be present, but the
  4142  // value will be replaced with "sensitive".
  4143  func (s DnsRecord) String() string {
  4144  	return awsutil.Prettify(s)
  4145  }
  4146  
  4147  // GoString returns the string representation.
  4148  //
  4149  // API parameter values that are decorated as "sensitive" in the API will not
  4150  // be included in the string output. The member name will be present, but the
  4151  // value will be replaced with "sensitive".
  4152  func (s DnsRecord) GoString() string {
  4153  	return s.String()
  4154  }
  4155  
  4156  // Validate inspects the fields of the type to determine if they are valid.
  4157  func (s *DnsRecord) Validate() error {
  4158  	invalidParams := request.ErrInvalidParams{Context: "DnsRecord"}
  4159  	if s.TTL == nil {
  4160  		invalidParams.Add(request.NewErrParamRequired("TTL"))
  4161  	}
  4162  	if s.Type == nil {
  4163  		invalidParams.Add(request.NewErrParamRequired("Type"))
  4164  	}
  4165  
  4166  	if invalidParams.Len() > 0 {
  4167  		return invalidParams
  4168  	}
  4169  	return nil
  4170  }
  4171  
  4172  // SetTTL sets the TTL field's value.
  4173  func (s *DnsRecord) SetTTL(v int64) *DnsRecord {
  4174  	s.TTL = &v
  4175  	return s
  4176  }
  4177  
  4178  // SetType sets the Type field's value.
  4179  func (s *DnsRecord) SetType(v string) *DnsRecord {
  4180  	s.Type = &v
  4181  	return s
  4182  }
  4183  
  4184  // The operation is already in progress.
  4185  type DuplicateRequest struct {
  4186  	_            struct{}                  `type:"structure"`
  4187  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4188  
  4189  	// The ID of the operation that's already in progress.
  4190  	DuplicateOperationId *string `type:"string"`
  4191  
  4192  	Message_ *string `locationName:"Message" type:"string"`
  4193  }
  4194  
  4195  // String returns the string representation.
  4196  //
  4197  // API parameter values that are decorated as "sensitive" in the API will not
  4198  // be included in the string output. The member name will be present, but the
  4199  // value will be replaced with "sensitive".
  4200  func (s DuplicateRequest) String() string {
  4201  	return awsutil.Prettify(s)
  4202  }
  4203  
  4204  // GoString returns the string representation.
  4205  //
  4206  // API parameter values that are decorated as "sensitive" in the API will not
  4207  // be included in the string output. The member name will be present, but the
  4208  // value will be replaced with "sensitive".
  4209  func (s DuplicateRequest) GoString() string {
  4210  	return s.String()
  4211  }
  4212  
  4213  func newErrorDuplicateRequest(v protocol.ResponseMetadata) error {
  4214  	return &DuplicateRequest{
  4215  		RespMetadata: v,
  4216  	}
  4217  }
  4218  
  4219  // Code returns the exception type name.
  4220  func (s *DuplicateRequest) Code() string {
  4221  	return "DuplicateRequest"
  4222  }
  4223  
  4224  // Message returns the exception's message.
  4225  func (s *DuplicateRequest) Message() string {
  4226  	if s.Message_ != nil {
  4227  		return *s.Message_
  4228  	}
  4229  	return ""
  4230  }
  4231  
  4232  // OrigErr always returns nil, satisfies awserr.Error interface.
  4233  func (s *DuplicateRequest) OrigErr() error {
  4234  	return nil
  4235  }
  4236  
  4237  func (s *DuplicateRequest) Error() string {
  4238  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4239  }
  4240  
  4241  // Status code returns the HTTP status code for the request's response error.
  4242  func (s *DuplicateRequest) StatusCode() int {
  4243  	return s.RespMetadata.StatusCode
  4244  }
  4245  
  4246  // RequestID returns the service's response RequestID for request.
  4247  func (s *DuplicateRequest) RequestID() string {
  4248  	return s.RespMetadata.RequestID
  4249  }
  4250  
  4251  type GetInstanceInput struct {
  4252  	_ struct{} `type:"structure"`
  4253  
  4254  	// The ID of the instance that you want to get information about.
  4255  	//
  4256  	// InstanceId is a required field
  4257  	InstanceId *string `type:"string" required:"true"`
  4258  
  4259  	// The ID of the service that the instance is associated with.
  4260  	//
  4261  	// ServiceId is a required field
  4262  	ServiceId *string `type:"string" required:"true"`
  4263  }
  4264  
  4265  // String returns the string representation.
  4266  //
  4267  // API parameter values that are decorated as "sensitive" in the API will not
  4268  // be included in the string output. The member name will be present, but the
  4269  // value will be replaced with "sensitive".
  4270  func (s GetInstanceInput) String() string {
  4271  	return awsutil.Prettify(s)
  4272  }
  4273  
  4274  // GoString returns the string representation.
  4275  //
  4276  // API parameter values that are decorated as "sensitive" in the API will not
  4277  // be included in the string output. The member name will be present, but the
  4278  // value will be replaced with "sensitive".
  4279  func (s GetInstanceInput) GoString() string {
  4280  	return s.String()
  4281  }
  4282  
  4283  // Validate inspects the fields of the type to determine if they are valid.
  4284  func (s *GetInstanceInput) Validate() error {
  4285  	invalidParams := request.ErrInvalidParams{Context: "GetInstanceInput"}
  4286  	if s.InstanceId == nil {
  4287  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
  4288  	}
  4289  	if s.ServiceId == nil {
  4290  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  4291  	}
  4292  
  4293  	if invalidParams.Len() > 0 {
  4294  		return invalidParams
  4295  	}
  4296  	return nil
  4297  }
  4298  
  4299  // SetInstanceId sets the InstanceId field's value.
  4300  func (s *GetInstanceInput) SetInstanceId(v string) *GetInstanceInput {
  4301  	s.InstanceId = &v
  4302  	return s
  4303  }
  4304  
  4305  // SetServiceId sets the ServiceId field's value.
  4306  func (s *GetInstanceInput) SetServiceId(v string) *GetInstanceInput {
  4307  	s.ServiceId = &v
  4308  	return s
  4309  }
  4310  
  4311  type GetInstanceOutput struct {
  4312  	_ struct{} `type:"structure"`
  4313  
  4314  	// A complex type that contains information about a specified instance.
  4315  	Instance *Instance `type:"structure"`
  4316  }
  4317  
  4318  // String returns the string representation.
  4319  //
  4320  // API parameter values that are decorated as "sensitive" in the API will not
  4321  // be included in the string output. The member name will be present, but the
  4322  // value will be replaced with "sensitive".
  4323  func (s GetInstanceOutput) String() string {
  4324  	return awsutil.Prettify(s)
  4325  }
  4326  
  4327  // GoString returns the string representation.
  4328  //
  4329  // API parameter values that are decorated as "sensitive" in the API will not
  4330  // be included in the string output. The member name will be present, but the
  4331  // value will be replaced with "sensitive".
  4332  func (s GetInstanceOutput) GoString() string {
  4333  	return s.String()
  4334  }
  4335  
  4336  // SetInstance sets the Instance field's value.
  4337  func (s *GetInstanceOutput) SetInstance(v *Instance) *GetInstanceOutput {
  4338  	s.Instance = v
  4339  	return s
  4340  }
  4341  
  4342  type GetInstancesHealthStatusInput struct {
  4343  	_ struct{} `type:"structure"`
  4344  
  4345  	// An array that contains the IDs of all the instances that you want to get
  4346  	// the health status for.
  4347  	//
  4348  	// If you omit Instances, Cloud Map returns the health status for all the instances
  4349  	// that are associated with the specified service.
  4350  	//
  4351  	// To get the IDs for the instances that you've registered by using a specified
  4352  	// service, submit a ListInstances (https://docs.aws.amazon.com/cloud-map/latest/api/API_ListInstances.html)
  4353  	// request.
  4354  	Instances []*string `min:"1" type:"list"`
  4355  
  4356  	// The maximum number of instances that you want Cloud Map to return in the
  4357  	// response to a GetInstancesHealthStatus request. If you don't specify a value
  4358  	// for MaxResults, Cloud Map returns up to 100 instances.
  4359  	MaxResults *int64 `min:"1" type:"integer"`
  4360  
  4361  	// For the first GetInstancesHealthStatus request, omit this value.
  4362  	//
  4363  	// If more than MaxResults instances match the specified criteria, you can submit
  4364  	// another GetInstancesHealthStatus request to get the next group of results.
  4365  	// Specify the value of NextToken from the previous response in the next request.
  4366  	NextToken *string `type:"string"`
  4367  
  4368  	// The ID of the service that the instance is associated with.
  4369  	//
  4370  	// ServiceId is a required field
  4371  	ServiceId *string `type:"string" required:"true"`
  4372  }
  4373  
  4374  // String returns the string representation.
  4375  //
  4376  // API parameter values that are decorated as "sensitive" in the API will not
  4377  // be included in the string output. The member name will be present, but the
  4378  // value will be replaced with "sensitive".
  4379  func (s GetInstancesHealthStatusInput) String() string {
  4380  	return awsutil.Prettify(s)
  4381  }
  4382  
  4383  // GoString returns the string representation.
  4384  //
  4385  // API parameter values that are decorated as "sensitive" in the API will not
  4386  // be included in the string output. The member name will be present, but the
  4387  // value will be replaced with "sensitive".
  4388  func (s GetInstancesHealthStatusInput) GoString() string {
  4389  	return s.String()
  4390  }
  4391  
  4392  // Validate inspects the fields of the type to determine if they are valid.
  4393  func (s *GetInstancesHealthStatusInput) Validate() error {
  4394  	invalidParams := request.ErrInvalidParams{Context: "GetInstancesHealthStatusInput"}
  4395  	if s.Instances != nil && len(s.Instances) < 1 {
  4396  		invalidParams.Add(request.NewErrParamMinLen("Instances", 1))
  4397  	}
  4398  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4399  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4400  	}
  4401  	if s.ServiceId == nil {
  4402  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  4403  	}
  4404  
  4405  	if invalidParams.Len() > 0 {
  4406  		return invalidParams
  4407  	}
  4408  	return nil
  4409  }
  4410  
  4411  // SetInstances sets the Instances field's value.
  4412  func (s *GetInstancesHealthStatusInput) SetInstances(v []*string) *GetInstancesHealthStatusInput {
  4413  	s.Instances = v
  4414  	return s
  4415  }
  4416  
  4417  // SetMaxResults sets the MaxResults field's value.
  4418  func (s *GetInstancesHealthStatusInput) SetMaxResults(v int64) *GetInstancesHealthStatusInput {
  4419  	s.MaxResults = &v
  4420  	return s
  4421  }
  4422  
  4423  // SetNextToken sets the NextToken field's value.
  4424  func (s *GetInstancesHealthStatusInput) SetNextToken(v string) *GetInstancesHealthStatusInput {
  4425  	s.NextToken = &v
  4426  	return s
  4427  }
  4428  
  4429  // SetServiceId sets the ServiceId field's value.
  4430  func (s *GetInstancesHealthStatusInput) SetServiceId(v string) *GetInstancesHealthStatusInput {
  4431  	s.ServiceId = &v
  4432  	return s
  4433  }
  4434  
  4435  type GetInstancesHealthStatusOutput struct {
  4436  	_ struct{} `type:"structure"`
  4437  
  4438  	// If more than MaxResults instances match the specified criteria, you can submit
  4439  	// another GetInstancesHealthStatus request to get the next group of results.
  4440  	// Specify the value of NextToken from the previous response in the next request.
  4441  	NextToken *string `type:"string"`
  4442  
  4443  	// A complex type that contains the IDs and the health status of the instances
  4444  	// that you specified in the GetInstancesHealthStatus request.
  4445  	Status map[string]*string `type:"map"`
  4446  }
  4447  
  4448  // String returns the string representation.
  4449  //
  4450  // API parameter values that are decorated as "sensitive" in the API will not
  4451  // be included in the string output. The member name will be present, but the
  4452  // value will be replaced with "sensitive".
  4453  func (s GetInstancesHealthStatusOutput) String() string {
  4454  	return awsutil.Prettify(s)
  4455  }
  4456  
  4457  // GoString returns the string representation.
  4458  //
  4459  // API parameter values that are decorated as "sensitive" in the API will not
  4460  // be included in the string output. The member name will be present, but the
  4461  // value will be replaced with "sensitive".
  4462  func (s GetInstancesHealthStatusOutput) GoString() string {
  4463  	return s.String()
  4464  }
  4465  
  4466  // SetNextToken sets the NextToken field's value.
  4467  func (s *GetInstancesHealthStatusOutput) SetNextToken(v string) *GetInstancesHealthStatusOutput {
  4468  	s.NextToken = &v
  4469  	return s
  4470  }
  4471  
  4472  // SetStatus sets the Status field's value.
  4473  func (s *GetInstancesHealthStatusOutput) SetStatus(v map[string]*string) *GetInstancesHealthStatusOutput {
  4474  	s.Status = v
  4475  	return s
  4476  }
  4477  
  4478  type GetNamespaceInput struct {
  4479  	_ struct{} `type:"structure"`
  4480  
  4481  	// The ID of the namespace that you want to get information about.
  4482  	//
  4483  	// Id is a required field
  4484  	Id *string `type:"string" required:"true"`
  4485  }
  4486  
  4487  // String returns the string representation.
  4488  //
  4489  // API parameter values that are decorated as "sensitive" in the API will not
  4490  // be included in the string output. The member name will be present, but the
  4491  // value will be replaced with "sensitive".
  4492  func (s GetNamespaceInput) String() string {
  4493  	return awsutil.Prettify(s)
  4494  }
  4495  
  4496  // GoString returns the string representation.
  4497  //
  4498  // API parameter values that are decorated as "sensitive" in the API will not
  4499  // be included in the string output. The member name will be present, but the
  4500  // value will be replaced with "sensitive".
  4501  func (s GetNamespaceInput) GoString() string {
  4502  	return s.String()
  4503  }
  4504  
  4505  // Validate inspects the fields of the type to determine if they are valid.
  4506  func (s *GetNamespaceInput) Validate() error {
  4507  	invalidParams := request.ErrInvalidParams{Context: "GetNamespaceInput"}
  4508  	if s.Id == nil {
  4509  		invalidParams.Add(request.NewErrParamRequired("Id"))
  4510  	}
  4511  
  4512  	if invalidParams.Len() > 0 {
  4513  		return invalidParams
  4514  	}
  4515  	return nil
  4516  }
  4517  
  4518  // SetId sets the Id field's value.
  4519  func (s *GetNamespaceInput) SetId(v string) *GetNamespaceInput {
  4520  	s.Id = &v
  4521  	return s
  4522  }
  4523  
  4524  type GetNamespaceOutput struct {
  4525  	_ struct{} `type:"structure"`
  4526  
  4527  	// A complex type that contains information about the specified namespace.
  4528  	Namespace *Namespace `type:"structure"`
  4529  }
  4530  
  4531  // String returns the string representation.
  4532  //
  4533  // API parameter values that are decorated as "sensitive" in the API will not
  4534  // be included in the string output. The member name will be present, but the
  4535  // value will be replaced with "sensitive".
  4536  func (s GetNamespaceOutput) String() string {
  4537  	return awsutil.Prettify(s)
  4538  }
  4539  
  4540  // GoString returns the string representation.
  4541  //
  4542  // API parameter values that are decorated as "sensitive" in the API will not
  4543  // be included in the string output. The member name will be present, but the
  4544  // value will be replaced with "sensitive".
  4545  func (s GetNamespaceOutput) GoString() string {
  4546  	return s.String()
  4547  }
  4548  
  4549  // SetNamespace sets the Namespace field's value.
  4550  func (s *GetNamespaceOutput) SetNamespace(v *Namespace) *GetNamespaceOutput {
  4551  	s.Namespace = v
  4552  	return s
  4553  }
  4554  
  4555  type GetOperationInput struct {
  4556  	_ struct{} `type:"structure"`
  4557  
  4558  	// The ID of the operation that you want to get more information about.
  4559  	//
  4560  	// OperationId is a required field
  4561  	OperationId *string `type:"string" required:"true"`
  4562  }
  4563  
  4564  // String returns the string representation.
  4565  //
  4566  // API parameter values that are decorated as "sensitive" in the API will not
  4567  // be included in the string output. The member name will be present, but the
  4568  // value will be replaced with "sensitive".
  4569  func (s GetOperationInput) String() string {
  4570  	return awsutil.Prettify(s)
  4571  }
  4572  
  4573  // GoString returns the string representation.
  4574  //
  4575  // API parameter values that are decorated as "sensitive" in the API will not
  4576  // be included in the string output. The member name will be present, but the
  4577  // value will be replaced with "sensitive".
  4578  func (s GetOperationInput) GoString() string {
  4579  	return s.String()
  4580  }
  4581  
  4582  // Validate inspects the fields of the type to determine if they are valid.
  4583  func (s *GetOperationInput) Validate() error {
  4584  	invalidParams := request.ErrInvalidParams{Context: "GetOperationInput"}
  4585  	if s.OperationId == nil {
  4586  		invalidParams.Add(request.NewErrParamRequired("OperationId"))
  4587  	}
  4588  
  4589  	if invalidParams.Len() > 0 {
  4590  		return invalidParams
  4591  	}
  4592  	return nil
  4593  }
  4594  
  4595  // SetOperationId sets the OperationId field's value.
  4596  func (s *GetOperationInput) SetOperationId(v string) *GetOperationInput {
  4597  	s.OperationId = &v
  4598  	return s
  4599  }
  4600  
  4601  type GetOperationOutput struct {
  4602  	_ struct{} `type:"structure"`
  4603  
  4604  	// A complex type that contains information about the operation.
  4605  	Operation *Operation `type:"structure"`
  4606  }
  4607  
  4608  // String returns the string representation.
  4609  //
  4610  // API parameter values that are decorated as "sensitive" in the API will not
  4611  // be included in the string output. The member name will be present, but the
  4612  // value will be replaced with "sensitive".
  4613  func (s GetOperationOutput) String() string {
  4614  	return awsutil.Prettify(s)
  4615  }
  4616  
  4617  // GoString returns the string representation.
  4618  //
  4619  // API parameter values that are decorated as "sensitive" in the API will not
  4620  // be included in the string output. The member name will be present, but the
  4621  // value will be replaced with "sensitive".
  4622  func (s GetOperationOutput) GoString() string {
  4623  	return s.String()
  4624  }
  4625  
  4626  // SetOperation sets the Operation field's value.
  4627  func (s *GetOperationOutput) SetOperation(v *Operation) *GetOperationOutput {
  4628  	s.Operation = v
  4629  	return s
  4630  }
  4631  
  4632  type GetServiceInput struct {
  4633  	_ struct{} `type:"structure"`
  4634  
  4635  	// The ID of the service that you want to get settings for.
  4636  	//
  4637  	// Id is a required field
  4638  	Id *string `type:"string" required:"true"`
  4639  }
  4640  
  4641  // String returns the string representation.
  4642  //
  4643  // API parameter values that are decorated as "sensitive" in the API will not
  4644  // be included in the string output. The member name will be present, but the
  4645  // value will be replaced with "sensitive".
  4646  func (s GetServiceInput) String() string {
  4647  	return awsutil.Prettify(s)
  4648  }
  4649  
  4650  // GoString returns the string representation.
  4651  //
  4652  // API parameter values that are decorated as "sensitive" in the API will not
  4653  // be included in the string output. The member name will be present, but the
  4654  // value will be replaced with "sensitive".
  4655  func (s GetServiceInput) GoString() string {
  4656  	return s.String()
  4657  }
  4658  
  4659  // Validate inspects the fields of the type to determine if they are valid.
  4660  func (s *GetServiceInput) Validate() error {
  4661  	invalidParams := request.ErrInvalidParams{Context: "GetServiceInput"}
  4662  	if s.Id == nil {
  4663  		invalidParams.Add(request.NewErrParamRequired("Id"))
  4664  	}
  4665  
  4666  	if invalidParams.Len() > 0 {
  4667  		return invalidParams
  4668  	}
  4669  	return nil
  4670  }
  4671  
  4672  // SetId sets the Id field's value.
  4673  func (s *GetServiceInput) SetId(v string) *GetServiceInput {
  4674  	s.Id = &v
  4675  	return s
  4676  }
  4677  
  4678  type GetServiceOutput struct {
  4679  	_ struct{} `type:"structure"`
  4680  
  4681  	// A complex type that contains information about the service.
  4682  	Service *Service `type:"structure"`
  4683  }
  4684  
  4685  // String returns the string representation.
  4686  //
  4687  // API parameter values that are decorated as "sensitive" in the API will not
  4688  // be included in the string output. The member name will be present, but the
  4689  // value will be replaced with "sensitive".
  4690  func (s GetServiceOutput) String() string {
  4691  	return awsutil.Prettify(s)
  4692  }
  4693  
  4694  // GoString returns the string representation.
  4695  //
  4696  // API parameter values that are decorated as "sensitive" in the API will not
  4697  // be included in the string output. The member name will be present, but the
  4698  // value will be replaced with "sensitive".
  4699  func (s GetServiceOutput) GoString() string {
  4700  	return s.String()
  4701  }
  4702  
  4703  // SetService sets the Service field's value.
  4704  func (s *GetServiceOutput) SetService(v *Service) *GetServiceOutput {
  4705  	s.Service = v
  4706  	return s
  4707  }
  4708  
  4709  // Public DNS and HTTP namespaces only. A complex type that contains settings
  4710  // for an optional health check. If you specify settings for a health check,
  4711  // Cloud Map associates the health check with the records that you specify in
  4712  // DnsConfig.
  4713  //
  4714  // If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  4715  // or HealthCheckConfig but not both.
  4716  //
  4717  // Health checks are basic Route 53 health checks that monitor an Amazon Web
  4718  // Services endpoint. For information about pricing for health checks, see Amazon
  4719  // Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
  4720  //
  4721  // Note the following about configuring health checks.
  4722  //
  4723  // A and AAAA records
  4724  //
  4725  // If DnsConfig includes configurations for both A and AAAA records, Cloud Map
  4726  // creates a health check that uses the IPv4 address to check the health of
  4727  // the resource. If the endpoint tthat's specified by the IPv4 address is unhealthy,
  4728  // Route 53 considers both the A and AAAA records to be unhealthy.
  4729  //
  4730  // CNAME records
  4731  //
  4732  // You can't specify settings for HealthCheckConfig when the DNSConfig includes
  4733  // CNAME for the value of Type. If you do, the CreateService request will fail
  4734  // with an InvalidInput error.
  4735  //
  4736  // Request interval
  4737  //
  4738  // A Route 53 health checker in each health-checking Amazon Web Services Region
  4739  // sends a health check request to an endpoint every 30 seconds. On average,
  4740  // your endpoint receives a health check request about every two seconds. However,
  4741  // health checkers don't coordinate with one another. Therefore, you might sometimes
  4742  // see several requests in one second that's followed by a few seconds with
  4743  // no health checks at all.
  4744  //
  4745  // Health checking regions
  4746  //
  4747  // Health checkers perform checks from all Route 53 health-checking Regions.
  4748  // For a list of the current Regions, see Regions (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions).
  4749  //
  4750  // Alias records
  4751  //
  4752  // When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute,
  4753  // Cloud Map creates a Route 53 alias record. Note the following:
  4754  //
  4755  //    * Route 53 automatically sets EvaluateTargetHealth to true for alias records.
  4756  //    When EvaluateTargetHealth is true, the alias record inherits the health
  4757  //    of the referenced Amazon Web Services resource. such as an ELB load balancer.
  4758  //    For more information, see EvaluateTargetHealth (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth).
  4759  //
  4760  //    * If you include HealthCheckConfig and then use the service to register
  4761  //    an instance that creates an alias record, Route 53 doesn't create the
  4762  //    health check.
  4763  //
  4764  // Charges for health checks
  4765  //
  4766  // Health checks are basic Route 53 health checks that monitor an Amazon Web
  4767  // Services endpoint. For information about pricing for health checks, see Amazon
  4768  // Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
  4769  type HealthCheckConfig struct {
  4770  	_ struct{} `type:"structure"`
  4771  
  4772  	// The number of consecutive health checks that an endpoint must pass or fail
  4773  	// for Route 53 to change the current status of the endpoint from unhealthy
  4774  	// to healthy or the other way around. For more information, see How Route 53
  4775  	// Determines Whether an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
  4776  	// in the Route 53 Developer Guide.
  4777  	FailureThreshold *int64 `min:"1" type:"integer"`
  4778  
  4779  	// The path that you want Route 53 to request when performing health checks.
  4780  	// The path can be any value that your endpoint returns an HTTP status code
  4781  	// of a 2xx or 3xx format for when the endpoint is healthy. An example file
  4782  	// is /docs/route53-health-check.html. Route 53 automatically adds the DNS name
  4783  	// for the service. If you don't specify a value for ResourcePath, the default
  4784  	// value is /.
  4785  	//
  4786  	// If you specify TCP for Type, you must not specify a value for ResourcePath.
  4787  	ResourcePath *string `type:"string"`
  4788  
  4789  	// The type of health check that you want to create, which indicates how Route
  4790  	// 53 determines whether an endpoint is healthy.
  4791  	//
  4792  	// You can't change the value of Type after you create a health check.
  4793  	//
  4794  	// You can create the following types of health checks:
  4795  	//
  4796  	//    * HTTP: Route 53 tries to establish a TCP connection. If successful, Route
  4797  	//    53 submits an HTTP request and waits for an HTTP status code of 200 or
  4798  	//    greater and less than 400.
  4799  	//
  4800  	//    * HTTPS: Route 53 tries to establish a TCP connection. If successful,
  4801  	//    Route 53 submits an HTTPS request and waits for an HTTP status code of
  4802  	//    200 or greater and less than 400. If you specify HTTPS for the value of
  4803  	//    Type, the endpoint must support TLS v1.0 or later.
  4804  	//
  4805  	//    * TCP: Route 53 tries to establish a TCP connection. If you specify TCP
  4806  	//    for Type, don't specify a value for ResourcePath.
  4807  	//
  4808  	// For more information, see How Route 53 Determines Whether an Endpoint Is
  4809  	// Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
  4810  	// in the Route 53 Developer Guide.
  4811  	//
  4812  	// Type is a required field
  4813  	Type *string `type:"string" required:"true" enum:"HealthCheckType"`
  4814  }
  4815  
  4816  // String returns the string representation.
  4817  //
  4818  // API parameter values that are decorated as "sensitive" in the API will not
  4819  // be included in the string output. The member name will be present, but the
  4820  // value will be replaced with "sensitive".
  4821  func (s HealthCheckConfig) String() string {
  4822  	return awsutil.Prettify(s)
  4823  }
  4824  
  4825  // GoString returns the string representation.
  4826  //
  4827  // API parameter values that are decorated as "sensitive" in the API will not
  4828  // be included in the string output. The member name will be present, but the
  4829  // value will be replaced with "sensitive".
  4830  func (s HealthCheckConfig) GoString() string {
  4831  	return s.String()
  4832  }
  4833  
  4834  // Validate inspects the fields of the type to determine if they are valid.
  4835  func (s *HealthCheckConfig) Validate() error {
  4836  	invalidParams := request.ErrInvalidParams{Context: "HealthCheckConfig"}
  4837  	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
  4838  		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
  4839  	}
  4840  	if s.Type == nil {
  4841  		invalidParams.Add(request.NewErrParamRequired("Type"))
  4842  	}
  4843  
  4844  	if invalidParams.Len() > 0 {
  4845  		return invalidParams
  4846  	}
  4847  	return nil
  4848  }
  4849  
  4850  // SetFailureThreshold sets the FailureThreshold field's value.
  4851  func (s *HealthCheckConfig) SetFailureThreshold(v int64) *HealthCheckConfig {
  4852  	s.FailureThreshold = &v
  4853  	return s
  4854  }
  4855  
  4856  // SetResourcePath sets the ResourcePath field's value.
  4857  func (s *HealthCheckConfig) SetResourcePath(v string) *HealthCheckConfig {
  4858  	s.ResourcePath = &v
  4859  	return s
  4860  }
  4861  
  4862  // SetType sets the Type field's value.
  4863  func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig {
  4864  	s.Type = &v
  4865  	return s
  4866  }
  4867  
  4868  // A complex type that contains information about an optional custom health
  4869  // check. A custom health check, which requires that you use a third-party health
  4870  // checker to evaluate the health of your resources, is useful in the following
  4871  // circumstances:
  4872  //
  4873  //    * You can't use a health check that's defined by HealthCheckConfig because
  4874  //    the resource isn't available over the internet. For example, you can use
  4875  //    a custom health check when the instance is in an Amazon VPC. (To check
  4876  //    the health of resources in a VPC, the health checker must also be in the
  4877  //    VPC.)
  4878  //
  4879  //    * You want to use a third-party health checker regardless of where your
  4880  //    resources are located.
  4881  //
  4882  // If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  4883  // or HealthCheckConfig but not both.
  4884  //
  4885  // To change the status of a custom health check, submit an UpdateInstanceCustomHealthStatus
  4886  // request. Cloud Map doesn't monitor the status of the resource, it just keeps
  4887  // a record of the status specified in the most recent UpdateInstanceCustomHealthStatus
  4888  // request.
  4889  //
  4890  // Here's how custom health checks work:
  4891  //
  4892  // You create a service.
  4893  //
  4894  // You register an instance.
  4895  //
  4896  // You configure a third-party health checker to monitor the resource that's
  4897  // associated with the new instance.
  4898  //
  4899  // Cloud Map doesn't check the health of the resource directly.
  4900  //
  4901  // The third-party health-checker determines that the resource is unhealthy
  4902  // and notifies your application.
  4903  //
  4904  // Your application submits an UpdateInstanceCustomHealthStatus request.
  4905  //
  4906  // Cloud Map waits for 30 seconds.
  4907  //
  4908  // If another UpdateInstanceCustomHealthStatus request doesn't arrive during
  4909  // that time to change the status back to healthy, Cloud Map stops routing traffic
  4910  // to the resource.
  4911  type HealthCheckCustomConfig struct {
  4912  	_ struct{} `type:"structure"`
  4913  
  4914  	//
  4915  	// This parameter is no longer supported and is always set to 1. Cloud Map waits
  4916  	// for approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus
  4917  	// request before changing the status of the service instance.
  4918  	//
  4919  	// The number of 30-second intervals that you want Cloud Map to wait after receiving
  4920  	// an UpdateInstanceCustomHealthStatus request before it changes the health
  4921  	// status of a service instance.
  4922  	//
  4923  	// Sending a second or subsequent UpdateInstanceCustomHealthStatus request with
  4924  	// the same value before 30 seconds has passed doesn't accelerate the change.
  4925  	// Cloud Map still waits 30 seconds after the first request to make the change.
  4926  	//
  4927  	// Deprecated: Configurable FailureThreshold of HealthCheckCustomConfig is deprecated.  It will always have value 1.
  4928  	FailureThreshold *int64 `min:"1" deprecated:"true" type:"integer"`
  4929  }
  4930  
  4931  // String returns the string representation.
  4932  //
  4933  // API parameter values that are decorated as "sensitive" in the API will not
  4934  // be included in the string output. The member name will be present, but the
  4935  // value will be replaced with "sensitive".
  4936  func (s HealthCheckCustomConfig) String() string {
  4937  	return awsutil.Prettify(s)
  4938  }
  4939  
  4940  // GoString returns the string representation.
  4941  //
  4942  // API parameter values that are decorated as "sensitive" in the API will not
  4943  // be included in the string output. The member name will be present, but the
  4944  // value will be replaced with "sensitive".
  4945  func (s HealthCheckCustomConfig) GoString() string {
  4946  	return s.String()
  4947  }
  4948  
  4949  // Validate inspects the fields of the type to determine if they are valid.
  4950  func (s *HealthCheckCustomConfig) Validate() error {
  4951  	invalidParams := request.ErrInvalidParams{Context: "HealthCheckCustomConfig"}
  4952  	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
  4953  		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
  4954  	}
  4955  
  4956  	if invalidParams.Len() > 0 {
  4957  		return invalidParams
  4958  	}
  4959  	return nil
  4960  }
  4961  
  4962  // SetFailureThreshold sets the FailureThreshold field's value.
  4963  func (s *HealthCheckCustomConfig) SetFailureThreshold(v int64) *HealthCheckCustomConfig {
  4964  	s.FailureThreshold = &v
  4965  	return s
  4966  }
  4967  
  4968  // In a response to a DiscoverInstances (https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html)
  4969  // request, HttpInstanceSummary contains information about one instance that
  4970  // matches the values that you specified in the request.
  4971  type HttpInstanceSummary struct {
  4972  	_ struct{} `type:"structure"`
  4973  
  4974  	// If you included any attributes when you registered the instance, the values
  4975  	// of those attributes.
  4976  	Attributes map[string]*string `type:"map"`
  4977  
  4978  	// If you configured health checking in the service, the current health status
  4979  	// of the service instance.
  4980  	HealthStatus *string `type:"string" enum:"HealthStatus"`
  4981  
  4982  	// The ID of an instance that matches the values that you specified in the request.
  4983  	InstanceId *string `type:"string"`
  4984  
  4985  	//
  4986  	// The HttpName name of the namespace. It's found in the HttpProperties member
  4987  	// of the Properties member of the namespace.
  4988  	NamespaceName *string `type:"string"`
  4989  
  4990  	// The name of the service that you specified when you registered the instance.
  4991  	ServiceName *string `type:"string"`
  4992  }
  4993  
  4994  // String returns the string representation.
  4995  //
  4996  // API parameter values that are decorated as "sensitive" in the API will not
  4997  // be included in the string output. The member name will be present, but the
  4998  // value will be replaced with "sensitive".
  4999  func (s HttpInstanceSummary) String() string {
  5000  	return awsutil.Prettify(s)
  5001  }
  5002  
  5003  // GoString returns the string representation.
  5004  //
  5005  // API parameter values that are decorated as "sensitive" in the API will not
  5006  // be included in the string output. The member name will be present, but the
  5007  // value will be replaced with "sensitive".
  5008  func (s HttpInstanceSummary) GoString() string {
  5009  	return s.String()
  5010  }
  5011  
  5012  // SetAttributes sets the Attributes field's value.
  5013  func (s *HttpInstanceSummary) SetAttributes(v map[string]*string) *HttpInstanceSummary {
  5014  	s.Attributes = v
  5015  	return s
  5016  }
  5017  
  5018  // SetHealthStatus sets the HealthStatus field's value.
  5019  func (s *HttpInstanceSummary) SetHealthStatus(v string) *HttpInstanceSummary {
  5020  	s.HealthStatus = &v
  5021  	return s
  5022  }
  5023  
  5024  // SetInstanceId sets the InstanceId field's value.
  5025  func (s *HttpInstanceSummary) SetInstanceId(v string) *HttpInstanceSummary {
  5026  	s.InstanceId = &v
  5027  	return s
  5028  }
  5029  
  5030  // SetNamespaceName sets the NamespaceName field's value.
  5031  func (s *HttpInstanceSummary) SetNamespaceName(v string) *HttpInstanceSummary {
  5032  	s.NamespaceName = &v
  5033  	return s
  5034  }
  5035  
  5036  // SetServiceName sets the ServiceName field's value.
  5037  func (s *HttpInstanceSummary) SetServiceName(v string) *HttpInstanceSummary {
  5038  	s.ServiceName = &v
  5039  	return s
  5040  }
  5041  
  5042  // Updated properties for the HTTP namespace.
  5043  type HttpNamespaceChange struct {
  5044  	_ struct{} `type:"structure"`
  5045  
  5046  	// An updated description for the HTTP namespace.
  5047  	//
  5048  	// Description is a required field
  5049  	Description *string `type:"string" required:"true"`
  5050  }
  5051  
  5052  // String returns the string representation.
  5053  //
  5054  // API parameter values that are decorated as "sensitive" in the API will not
  5055  // be included in the string output. The member name will be present, but the
  5056  // value will be replaced with "sensitive".
  5057  func (s HttpNamespaceChange) String() string {
  5058  	return awsutil.Prettify(s)
  5059  }
  5060  
  5061  // GoString returns the string representation.
  5062  //
  5063  // API parameter values that are decorated as "sensitive" in the API will not
  5064  // be included in the string output. The member name will be present, but the
  5065  // value will be replaced with "sensitive".
  5066  func (s HttpNamespaceChange) GoString() string {
  5067  	return s.String()
  5068  }
  5069  
  5070  // Validate inspects the fields of the type to determine if they are valid.
  5071  func (s *HttpNamespaceChange) Validate() error {
  5072  	invalidParams := request.ErrInvalidParams{Context: "HttpNamespaceChange"}
  5073  	if s.Description == nil {
  5074  		invalidParams.Add(request.NewErrParamRequired("Description"))
  5075  	}
  5076  
  5077  	if invalidParams.Len() > 0 {
  5078  		return invalidParams
  5079  	}
  5080  	return nil
  5081  }
  5082  
  5083  // SetDescription sets the Description field's value.
  5084  func (s *HttpNamespaceChange) SetDescription(v string) *HttpNamespaceChange {
  5085  	s.Description = &v
  5086  	return s
  5087  }
  5088  
  5089  // A complex type that contains the name of an HTTP namespace.
  5090  type HttpProperties struct {
  5091  	_ struct{} `type:"structure"`
  5092  
  5093  	// The name of an HTTP namespace.
  5094  	HttpName *string `type:"string"`
  5095  }
  5096  
  5097  // String returns the string representation.
  5098  //
  5099  // API parameter values that are decorated as "sensitive" in the API will not
  5100  // be included in the string output. The member name will be present, but the
  5101  // value will be replaced with "sensitive".
  5102  func (s HttpProperties) String() string {
  5103  	return awsutil.Prettify(s)
  5104  }
  5105  
  5106  // GoString returns the string representation.
  5107  //
  5108  // API parameter values that are decorated as "sensitive" in the API will not
  5109  // be included in the string output. The member name will be present, but the
  5110  // value will be replaced with "sensitive".
  5111  func (s HttpProperties) GoString() string {
  5112  	return s.String()
  5113  }
  5114  
  5115  // SetHttpName sets the HttpName field's value.
  5116  func (s *HttpProperties) SetHttpName(v string) *HttpProperties {
  5117  	s.HttpName = &v
  5118  	return s
  5119  }
  5120  
  5121  // A complex type that contains information about an instance that Cloud Map
  5122  // creates when you submit a RegisterInstance request.
  5123  type Instance struct {
  5124  	_ struct{} `type:"structure"`
  5125  
  5126  	// A string map that contains the following information for the service that
  5127  	// you specify in ServiceId:
  5128  	//
  5129  	//    * The attributes that apply to the records that are defined in the service.
  5130  	//
  5131  	//    * For each attribute, the applicable value.
  5132  	//
  5133  	// Supported attribute keys include the following:
  5134  	//
  5135  	// AWS_ALIAS_DNS_NAME
  5136  	//
  5137  	// If you want Cloud Map to create a Route 53 alias record that routes traffic
  5138  	// to an Elastic Load Balancing load balancer, specify the DNS name that's associated
  5139  	// with the load balancer. For information about how to get the DNS name, see
  5140  	// AliasTarget->DNSName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName)
  5141  	// in the Route 53 API Reference.
  5142  	//
  5143  	// Note the following:
  5144  	//
  5145  	//    * The configuration for the service that's specified by ServiceId must
  5146  	//    include settings for an A record, an AAAA record, or both.
  5147  	//
  5148  	//    * In the service that's specified by ServiceId, the value of RoutingPolicy
  5149  	//    must be WEIGHTED.
  5150  	//
  5151  	//    * If the service that's specified by ServiceId includes HealthCheckConfig
  5152  	//    settings, Cloud Map creates the health check, but it won't associate the
  5153  	//    health check with the alias record.
  5154  	//
  5155  	//    * Auto naming currently doesn't support creating alias records that route
  5156  	//    traffic to Amazon Web Services resources other than ELB load balancers.
  5157  	//
  5158  	//    * If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values
  5159  	//    for any of the AWS_INSTANCE attributes.
  5160  	//
  5161  	// AWS_EC2_INSTANCE_ID
  5162  	//
  5163  	// HTTP namespaces only. The Amazon EC2 instance ID for the instance. The AWS_INSTANCE_IPV4
  5164  	// attribute contains the primary private IPv4 address.
  5165  	//
  5166  	// AWS_INIT_HEALTH_STATUS
  5167  	//
  5168  	// If the service configuration includes HealthCheckCustomConfig, you can optionally
  5169  	// use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health
  5170  	// check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS,
  5171  	// the initial status is HEALTHY.
  5172  	//
  5173  	// AWS_INSTANCE_CNAME
  5174  	//
  5175  	// If the service configuration includes a CNAME record, the domain name that
  5176  	// you want Route 53 to return in response to DNS queries (for example, example.com).
  5177  	//
  5178  	// This value is required if the service specified by ServiceId includes settings
  5179  	// for an CNAME record.
  5180  	//
  5181  	// AWS_INSTANCE_IPV4
  5182  	//
  5183  	// If the service configuration includes an A record, the IPv4 address that
  5184  	// you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).
  5185  	//
  5186  	// This value is required if the service specified by ServiceId includes settings
  5187  	// for an A record. If the service includes settings for an SRV record, you
  5188  	// must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.
  5189  	//
  5190  	// AWS_INSTANCE_IPV6
  5191  	//
  5192  	// If the service configuration includes an AAAA record, the IPv6 address that
  5193  	// you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).
  5194  	//
  5195  	// This value is required if the service specified by ServiceId includes settings
  5196  	// for an AAAA record. If the service includes settings for an SRV record, you
  5197  	// must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.
  5198  	//
  5199  	// AWS_INSTANCE_PORT
  5200  	//
  5201  	// If the service includes an SRV record, the value that you want Route 53 to
  5202  	// return for the port.
  5203  	//
  5204  	// If the service includes HealthCheckConfig, the port on the endpoint that
  5205  	// you want Route 53 to send requests to.
  5206  	//
  5207  	// This value is required if you specified settings for an SRV record or a Route
  5208  	// 53 health check when you created the service.
  5209  	Attributes map[string]*string `type:"map"`
  5210  
  5211  	// A unique string that identifies the request and that allows failed RegisterInstance
  5212  	// requests to be retried without the risk of executing the operation twice.
  5213  	// You must use a unique CreatorRequestId string every time you submit a RegisterInstance
  5214  	// request if you're registering additional instances for the same namespace
  5215  	// and service. CreatorRequestId can be any unique string (for example, a date/time
  5216  	// stamp).
  5217  	CreatorRequestId *string `type:"string"`
  5218  
  5219  	// An identifier that you want to associate with the instance. Note the following:
  5220  	//
  5221  	//    * If the service that's specified by ServiceId includes settings for an
  5222  	//    SRV record, the value of InstanceId is automatically included as part
  5223  	//    of the value for the SRV record. For more information, see DnsRecord >
  5224  	//    Type (https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type).
  5225  	//
  5226  	//    * You can use this value to update an existing instance.
  5227  	//
  5228  	//    * To register a new instance, you must specify a value that's unique among
  5229  	//    instances that you register by using the same service.
  5230  	//
  5231  	//    * If you specify an existing InstanceId and ServiceId, Cloud Map updates
  5232  	//    the existing DNS records. If there's also an existing health check, Cloud
  5233  	//    Map deletes the old health check and creates a new one. The health check
  5234  	//    isn't deleted immediately, so it will still appear for a while if you
  5235  	//    submit a ListHealthChecks request, for example.
  5236  	//
  5237  	// Id is a required field
  5238  	Id *string `type:"string" required:"true"`
  5239  }
  5240  
  5241  // String returns the string representation.
  5242  //
  5243  // API parameter values that are decorated as "sensitive" in the API will not
  5244  // be included in the string output. The member name will be present, but the
  5245  // value will be replaced with "sensitive".
  5246  func (s Instance) String() string {
  5247  	return awsutil.Prettify(s)
  5248  }
  5249  
  5250  // GoString returns the string representation.
  5251  //
  5252  // API parameter values that are decorated as "sensitive" in the API will not
  5253  // be included in the string output. The member name will be present, but the
  5254  // value will be replaced with "sensitive".
  5255  func (s Instance) GoString() string {
  5256  	return s.String()
  5257  }
  5258  
  5259  // SetAttributes sets the Attributes field's value.
  5260  func (s *Instance) SetAttributes(v map[string]*string) *Instance {
  5261  	s.Attributes = v
  5262  	return s
  5263  }
  5264  
  5265  // SetCreatorRequestId sets the CreatorRequestId field's value.
  5266  func (s *Instance) SetCreatorRequestId(v string) *Instance {
  5267  	s.CreatorRequestId = &v
  5268  	return s
  5269  }
  5270  
  5271  // SetId sets the Id field's value.
  5272  func (s *Instance) SetId(v string) *Instance {
  5273  	s.Id = &v
  5274  	return s
  5275  }
  5276  
  5277  // No instance exists with the specified ID, or the instance was recently registered,
  5278  // and information about the instance hasn't propagated yet.
  5279  type InstanceNotFound struct {
  5280  	_            struct{}                  `type:"structure"`
  5281  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5282  
  5283  	Message_ *string `locationName:"Message" type:"string"`
  5284  }
  5285  
  5286  // String returns the string representation.
  5287  //
  5288  // API parameter values that are decorated as "sensitive" in the API will not
  5289  // be included in the string output. The member name will be present, but the
  5290  // value will be replaced with "sensitive".
  5291  func (s InstanceNotFound) String() string {
  5292  	return awsutil.Prettify(s)
  5293  }
  5294  
  5295  // GoString returns the string representation.
  5296  //
  5297  // API parameter values that are decorated as "sensitive" in the API will not
  5298  // be included in the string output. The member name will be present, but the
  5299  // value will be replaced with "sensitive".
  5300  func (s InstanceNotFound) GoString() string {
  5301  	return s.String()
  5302  }
  5303  
  5304  func newErrorInstanceNotFound(v protocol.ResponseMetadata) error {
  5305  	return &InstanceNotFound{
  5306  		RespMetadata: v,
  5307  	}
  5308  }
  5309  
  5310  // Code returns the exception type name.
  5311  func (s *InstanceNotFound) Code() string {
  5312  	return "InstanceNotFound"
  5313  }
  5314  
  5315  // Message returns the exception's message.
  5316  func (s *InstanceNotFound) Message() string {
  5317  	if s.Message_ != nil {
  5318  		return *s.Message_
  5319  	}
  5320  	return ""
  5321  }
  5322  
  5323  // OrigErr always returns nil, satisfies awserr.Error interface.
  5324  func (s *InstanceNotFound) OrigErr() error {
  5325  	return nil
  5326  }
  5327  
  5328  func (s *InstanceNotFound) Error() string {
  5329  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5330  }
  5331  
  5332  // Status code returns the HTTP status code for the request's response error.
  5333  func (s *InstanceNotFound) StatusCode() int {
  5334  	return s.RespMetadata.StatusCode
  5335  }
  5336  
  5337  // RequestID returns the service's response RequestID for request.
  5338  func (s *InstanceNotFound) RequestID() string {
  5339  	return s.RespMetadata.RequestID
  5340  }
  5341  
  5342  // A complex type that contains information about the instances that you registered
  5343  // by using a specified service.
  5344  type InstanceSummary struct {
  5345  	_ struct{} `type:"structure"`
  5346  
  5347  	// A string map that contains the following information:
  5348  	//
  5349  	//    * The attributes that are associated with the instance.
  5350  	//
  5351  	//    * For each attribute, the applicable value.
  5352  	//
  5353  	// Supported attribute keys include the following:
  5354  	//
  5355  	// AWS_ALIAS_DNS_NAME
  5356  	//
  5357  	// For an alias record that routes traffic to an Elastic Load Balancing load
  5358  	// balancer, the DNS name that's associated with the load balancer.
  5359  	//
  5360  	// AWS_EC2_INSTANCE_ID (HTTP namespaces only)
  5361  	//
  5362  	// The Amazon EC2 instance ID for the instance. When the AWS_EC2_INSTANCE_ID
  5363  	// attribute is specified, then the AWS_INSTANCE_IPV4 attribute contains the
  5364  	// primary private IPv4 address.
  5365  	//
  5366  	// AWS_INIT_HEALTH_STATUS
  5367  	//
  5368  	// If the service configuration includes HealthCheckCustomConfig, you can optionally
  5369  	// use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health
  5370  	// check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS,
  5371  	// the initial status is HEALTHY.
  5372  	//
  5373  	// AWS_INSTANCE_CNAME
  5374  	//
  5375  	// For a CNAME record, the domain name that Route 53 returns in response to
  5376  	// DNS queries (for example, example.com).
  5377  	//
  5378  	// AWS_INSTANCE_IPV4
  5379  	//
  5380  	// For an A record, the IPv4 address that Route 53 returns in response to DNS
  5381  	// queries (for example, 192.0.2.44).
  5382  	//
  5383  	// AWS_INSTANCE_IPV6
  5384  	//
  5385  	// For an AAAA record, the IPv6 address that Route 53 returns in response to
  5386  	// DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).
  5387  	//
  5388  	// AWS_INSTANCE_PORT
  5389  	//
  5390  	// For an SRV record, the value that Route 53 returns for the port. In addition,
  5391  	// if the service includes HealthCheckConfig, the port on the endpoint that
  5392  	// Route 53 sends requests to.
  5393  	Attributes map[string]*string `type:"map"`
  5394  
  5395  	// The ID for an instance that you created by using a specified service.
  5396  	Id *string `type:"string"`
  5397  }
  5398  
  5399  // String returns the string representation.
  5400  //
  5401  // API parameter values that are decorated as "sensitive" in the API will not
  5402  // be included in the string output. The member name will be present, but the
  5403  // value will be replaced with "sensitive".
  5404  func (s InstanceSummary) String() string {
  5405  	return awsutil.Prettify(s)
  5406  }
  5407  
  5408  // GoString returns the string representation.
  5409  //
  5410  // API parameter values that are decorated as "sensitive" in the API will not
  5411  // be included in the string output. The member name will be present, but the
  5412  // value will be replaced with "sensitive".
  5413  func (s InstanceSummary) GoString() string {
  5414  	return s.String()
  5415  }
  5416  
  5417  // SetAttributes sets the Attributes field's value.
  5418  func (s *InstanceSummary) SetAttributes(v map[string]*string) *InstanceSummary {
  5419  	s.Attributes = v
  5420  	return s
  5421  }
  5422  
  5423  // SetId sets the Id field's value.
  5424  func (s *InstanceSummary) SetId(v string) *InstanceSummary {
  5425  	s.Id = &v
  5426  	return s
  5427  }
  5428  
  5429  // One or more specified values aren't valid. For example, a required value
  5430  // might be missing, a numeric value might be outside the allowed range, or
  5431  // a string value might exceed length constraints.
  5432  type InvalidInput struct {
  5433  	_            struct{}                  `type:"structure"`
  5434  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5435  
  5436  	Message_ *string `locationName:"Message" type:"string"`
  5437  }
  5438  
  5439  // String returns the string representation.
  5440  //
  5441  // API parameter values that are decorated as "sensitive" in the API will not
  5442  // be included in the string output. The member name will be present, but the
  5443  // value will be replaced with "sensitive".
  5444  func (s InvalidInput) String() string {
  5445  	return awsutil.Prettify(s)
  5446  }
  5447  
  5448  // GoString returns the string representation.
  5449  //
  5450  // API parameter values that are decorated as "sensitive" in the API will not
  5451  // be included in the string output. The member name will be present, but the
  5452  // value will be replaced with "sensitive".
  5453  func (s InvalidInput) GoString() string {
  5454  	return s.String()
  5455  }
  5456  
  5457  func newErrorInvalidInput(v protocol.ResponseMetadata) error {
  5458  	return &InvalidInput{
  5459  		RespMetadata: v,
  5460  	}
  5461  }
  5462  
  5463  // Code returns the exception type name.
  5464  func (s *InvalidInput) Code() string {
  5465  	return "InvalidInput"
  5466  }
  5467  
  5468  // Message returns the exception's message.
  5469  func (s *InvalidInput) Message() string {
  5470  	if s.Message_ != nil {
  5471  		return *s.Message_
  5472  	}
  5473  	return ""
  5474  }
  5475  
  5476  // OrigErr always returns nil, satisfies awserr.Error interface.
  5477  func (s *InvalidInput) OrigErr() error {
  5478  	return nil
  5479  }
  5480  
  5481  func (s *InvalidInput) Error() string {
  5482  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5483  }
  5484  
  5485  // Status code returns the HTTP status code for the request's response error.
  5486  func (s *InvalidInput) StatusCode() int {
  5487  	return s.RespMetadata.StatusCode
  5488  }
  5489  
  5490  // RequestID returns the service's response RequestID for request.
  5491  func (s *InvalidInput) RequestID() string {
  5492  	return s.RespMetadata.RequestID
  5493  }
  5494  
  5495  type ListInstancesInput struct {
  5496  	_ struct{} `type:"structure"`
  5497  
  5498  	// The maximum number of instances that you want Cloud Map to return in the
  5499  	// response to a ListInstances request. If you don't specify a value for MaxResults,
  5500  	// Cloud Map returns up to 100 instances.
  5501  	MaxResults *int64 `min:"1" type:"integer"`
  5502  
  5503  	// For the first ListInstances request, omit this value.
  5504  	//
  5505  	// If more than MaxResults instances match the specified criteria, you can submit
  5506  	// another ListInstances request to get the next group of results. Specify the
  5507  	// value of NextToken from the previous response in the next request.
  5508  	NextToken *string `type:"string"`
  5509  
  5510  	// The ID of the service that you want to list instances for.
  5511  	//
  5512  	// ServiceId is a required field
  5513  	ServiceId *string `type:"string" required:"true"`
  5514  }
  5515  
  5516  // String returns the string representation.
  5517  //
  5518  // API parameter values that are decorated as "sensitive" in the API will not
  5519  // be included in the string output. The member name will be present, but the
  5520  // value will be replaced with "sensitive".
  5521  func (s ListInstancesInput) String() string {
  5522  	return awsutil.Prettify(s)
  5523  }
  5524  
  5525  // GoString returns the string representation.
  5526  //
  5527  // API parameter values that are decorated as "sensitive" in the API will not
  5528  // be included in the string output. The member name will be present, but the
  5529  // value will be replaced with "sensitive".
  5530  func (s ListInstancesInput) GoString() string {
  5531  	return s.String()
  5532  }
  5533  
  5534  // Validate inspects the fields of the type to determine if they are valid.
  5535  func (s *ListInstancesInput) Validate() error {
  5536  	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
  5537  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5538  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5539  	}
  5540  	if s.ServiceId == nil {
  5541  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  5542  	}
  5543  
  5544  	if invalidParams.Len() > 0 {
  5545  		return invalidParams
  5546  	}
  5547  	return nil
  5548  }
  5549  
  5550  // SetMaxResults sets the MaxResults field's value.
  5551  func (s *ListInstancesInput) SetMaxResults(v int64) *ListInstancesInput {
  5552  	s.MaxResults = &v
  5553  	return s
  5554  }
  5555  
  5556  // SetNextToken sets the NextToken field's value.
  5557  func (s *ListInstancesInput) SetNextToken(v string) *ListInstancesInput {
  5558  	s.NextToken = &v
  5559  	return s
  5560  }
  5561  
  5562  // SetServiceId sets the ServiceId field's value.
  5563  func (s *ListInstancesInput) SetServiceId(v string) *ListInstancesInput {
  5564  	s.ServiceId = &v
  5565  	return s
  5566  }
  5567  
  5568  type ListInstancesOutput struct {
  5569  	_ struct{} `type:"structure"`
  5570  
  5571  	// Summary information about the instances that are associated with the specified
  5572  	// service.
  5573  	Instances []*InstanceSummary `type:"list"`
  5574  
  5575  	// If more than MaxResults instances match the specified criteria, you can submit
  5576  	// another ListInstances request to get the next group of results. Specify the
  5577  	// value of NextToken from the previous response in the next request.
  5578  	NextToken *string `type:"string"`
  5579  }
  5580  
  5581  // String returns the string representation.
  5582  //
  5583  // API parameter values that are decorated as "sensitive" in the API will not
  5584  // be included in the string output. The member name will be present, but the
  5585  // value will be replaced with "sensitive".
  5586  func (s ListInstancesOutput) String() string {
  5587  	return awsutil.Prettify(s)
  5588  }
  5589  
  5590  // GoString returns the string representation.
  5591  //
  5592  // API parameter values that are decorated as "sensitive" in the API will not
  5593  // be included in the string output. The member name will be present, but the
  5594  // value will be replaced with "sensitive".
  5595  func (s ListInstancesOutput) GoString() string {
  5596  	return s.String()
  5597  }
  5598  
  5599  // SetInstances sets the Instances field's value.
  5600  func (s *ListInstancesOutput) SetInstances(v []*InstanceSummary) *ListInstancesOutput {
  5601  	s.Instances = v
  5602  	return s
  5603  }
  5604  
  5605  // SetNextToken sets the NextToken field's value.
  5606  func (s *ListInstancesOutput) SetNextToken(v string) *ListInstancesOutput {
  5607  	s.NextToken = &v
  5608  	return s
  5609  }
  5610  
  5611  type ListNamespacesInput struct {
  5612  	_ struct{} `type:"structure"`
  5613  
  5614  	// A complex type that contains specifications for the namespaces that you want
  5615  	// to list.
  5616  	//
  5617  	// If you specify more than one filter, a namespace must match all filters to
  5618  	// be returned by ListNamespaces.
  5619  	Filters []*NamespaceFilter `type:"list"`
  5620  
  5621  	// The maximum number of namespaces that you want Cloud Map to return in the
  5622  	// response to a ListNamespaces request. If you don't specify a value for MaxResults,
  5623  	// Cloud Map returns up to 100 namespaces.
  5624  	MaxResults *int64 `min:"1" type:"integer"`
  5625  
  5626  	// For the first ListNamespaces request, omit this value.
  5627  	//
  5628  	// If the response contains NextToken, submit another ListNamespaces request
  5629  	// to get the next group of results. Specify the value of NextToken from the
  5630  	// previous response in the next request.
  5631  	//
  5632  	// Cloud Map gets MaxResults namespaces and then filters them based on the specified
  5633  	// criteria. It's possible that no namespaces in the first MaxResults namespaces
  5634  	// matched the specified criteria but that subsequent groups of MaxResults namespaces
  5635  	// do contain namespaces that match the criteria.
  5636  	NextToken *string `type:"string"`
  5637  }
  5638  
  5639  // String returns the string representation.
  5640  //
  5641  // API parameter values that are decorated as "sensitive" in the API will not
  5642  // be included in the string output. The member name will be present, but the
  5643  // value will be replaced with "sensitive".
  5644  func (s ListNamespacesInput) String() string {
  5645  	return awsutil.Prettify(s)
  5646  }
  5647  
  5648  // GoString returns the string representation.
  5649  //
  5650  // API parameter values that are decorated as "sensitive" in the API will not
  5651  // be included in the string output. The member name will be present, but the
  5652  // value will be replaced with "sensitive".
  5653  func (s ListNamespacesInput) GoString() string {
  5654  	return s.String()
  5655  }
  5656  
  5657  // Validate inspects the fields of the type to determine if they are valid.
  5658  func (s *ListNamespacesInput) Validate() error {
  5659  	invalidParams := request.ErrInvalidParams{Context: "ListNamespacesInput"}
  5660  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5661  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5662  	}
  5663  	if s.Filters != nil {
  5664  		for i, v := range s.Filters {
  5665  			if v == nil {
  5666  				continue
  5667  			}
  5668  			if err := v.Validate(); err != nil {
  5669  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
  5670  			}
  5671  		}
  5672  	}
  5673  
  5674  	if invalidParams.Len() > 0 {
  5675  		return invalidParams
  5676  	}
  5677  	return nil
  5678  }
  5679  
  5680  // SetFilters sets the Filters field's value.
  5681  func (s *ListNamespacesInput) SetFilters(v []*NamespaceFilter) *ListNamespacesInput {
  5682  	s.Filters = v
  5683  	return s
  5684  }
  5685  
  5686  // SetMaxResults sets the MaxResults field's value.
  5687  func (s *ListNamespacesInput) SetMaxResults(v int64) *ListNamespacesInput {
  5688  	s.MaxResults = &v
  5689  	return s
  5690  }
  5691  
  5692  // SetNextToken sets the NextToken field's value.
  5693  func (s *ListNamespacesInput) SetNextToken(v string) *ListNamespacesInput {
  5694  	s.NextToken = &v
  5695  	return s
  5696  }
  5697  
  5698  type ListNamespacesOutput struct {
  5699  	_ struct{} `type:"structure"`
  5700  
  5701  	// An array that contains one NamespaceSummary object for each namespace that
  5702  	// matches the specified filter criteria.
  5703  	Namespaces []*NamespaceSummary `type:"list"`
  5704  
  5705  	// If the response contains NextToken, submit another ListNamespaces request
  5706  	// to get the next group of results. Specify the value of NextToken from the
  5707  	// previous response in the next request.
  5708  	//
  5709  	// Cloud Map gets MaxResults namespaces and then filters them based on the specified
  5710  	// criteria. It's possible that no namespaces in the first MaxResults namespaces
  5711  	// matched the specified criteria but that subsequent groups of MaxResults namespaces
  5712  	// do contain namespaces that match the criteria.
  5713  	NextToken *string `type:"string"`
  5714  }
  5715  
  5716  // String returns the string representation.
  5717  //
  5718  // API parameter values that are decorated as "sensitive" in the API will not
  5719  // be included in the string output. The member name will be present, but the
  5720  // value will be replaced with "sensitive".
  5721  func (s ListNamespacesOutput) String() string {
  5722  	return awsutil.Prettify(s)
  5723  }
  5724  
  5725  // GoString returns the string representation.
  5726  //
  5727  // API parameter values that are decorated as "sensitive" in the API will not
  5728  // be included in the string output. The member name will be present, but the
  5729  // value will be replaced with "sensitive".
  5730  func (s ListNamespacesOutput) GoString() string {
  5731  	return s.String()
  5732  }
  5733  
  5734  // SetNamespaces sets the Namespaces field's value.
  5735  func (s *ListNamespacesOutput) SetNamespaces(v []*NamespaceSummary) *ListNamespacesOutput {
  5736  	s.Namespaces = v
  5737  	return s
  5738  }
  5739  
  5740  // SetNextToken sets the NextToken field's value.
  5741  func (s *ListNamespacesOutput) SetNextToken(v string) *ListNamespacesOutput {
  5742  	s.NextToken = &v
  5743  	return s
  5744  }
  5745  
  5746  type ListOperationsInput struct {
  5747  	_ struct{} `type:"structure"`
  5748  
  5749  	// A complex type that contains specifications for the operations that you want
  5750  	// to list, for example, operations that you started between a specified start
  5751  	// date and end date.
  5752  	//
  5753  	// If you specify more than one filter, an operation must match all filters
  5754  	// to be returned by ListOperations.
  5755  	Filters []*OperationFilter `type:"list"`
  5756  
  5757  	// The maximum number of items that you want Cloud Map to return in the response
  5758  	// to a ListOperations request. If you don't specify a value for MaxResults,
  5759  	// Cloud Map returns up to 100 operations.
  5760  	MaxResults *int64 `min:"1" type:"integer"`
  5761  
  5762  	// For the first ListOperations request, omit this value.
  5763  	//
  5764  	// If the response contains NextToken, submit another ListOperations request
  5765  	// to get the next group of results. Specify the value of NextToken from the
  5766  	// previous response in the next request.
  5767  	//
  5768  	// Cloud Map gets MaxResults operations and then filters them based on the specified
  5769  	// criteria. It's possible that no operations in the first MaxResults operations
  5770  	// matched the specified criteria but that subsequent groups of MaxResults operations
  5771  	// do contain operations that match the criteria.
  5772  	NextToken *string `type:"string"`
  5773  }
  5774  
  5775  // String returns the string representation.
  5776  //
  5777  // API parameter values that are decorated as "sensitive" in the API will not
  5778  // be included in the string output. The member name will be present, but the
  5779  // value will be replaced with "sensitive".
  5780  func (s ListOperationsInput) String() string {
  5781  	return awsutil.Prettify(s)
  5782  }
  5783  
  5784  // GoString returns the string representation.
  5785  //
  5786  // API parameter values that are decorated as "sensitive" in the API will not
  5787  // be included in the string output. The member name will be present, but the
  5788  // value will be replaced with "sensitive".
  5789  func (s ListOperationsInput) GoString() string {
  5790  	return s.String()
  5791  }
  5792  
  5793  // Validate inspects the fields of the type to determine if they are valid.
  5794  func (s *ListOperationsInput) Validate() error {
  5795  	invalidParams := request.ErrInvalidParams{Context: "ListOperationsInput"}
  5796  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5797  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5798  	}
  5799  	if s.Filters != nil {
  5800  		for i, v := range s.Filters {
  5801  			if v == nil {
  5802  				continue
  5803  			}
  5804  			if err := v.Validate(); err != nil {
  5805  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
  5806  			}
  5807  		}
  5808  	}
  5809  
  5810  	if invalidParams.Len() > 0 {
  5811  		return invalidParams
  5812  	}
  5813  	return nil
  5814  }
  5815  
  5816  // SetFilters sets the Filters field's value.
  5817  func (s *ListOperationsInput) SetFilters(v []*OperationFilter) *ListOperationsInput {
  5818  	s.Filters = v
  5819  	return s
  5820  }
  5821  
  5822  // SetMaxResults sets the MaxResults field's value.
  5823  func (s *ListOperationsInput) SetMaxResults(v int64) *ListOperationsInput {
  5824  	s.MaxResults = &v
  5825  	return s
  5826  }
  5827  
  5828  // SetNextToken sets the NextToken field's value.
  5829  func (s *ListOperationsInput) SetNextToken(v string) *ListOperationsInput {
  5830  	s.NextToken = &v
  5831  	return s
  5832  }
  5833  
  5834  type ListOperationsOutput struct {
  5835  	_ struct{} `type:"structure"`
  5836  
  5837  	// If the response contains NextToken, submit another ListOperations request
  5838  	// to get the next group of results. Specify the value of NextToken from the
  5839  	// previous response in the next request.
  5840  	//
  5841  	// Cloud Map gets MaxResults operations and then filters them based on the specified
  5842  	// criteria. It's possible that no operations in the first MaxResults operations
  5843  	// matched the specified criteria but that subsequent groups of MaxResults operations
  5844  	// do contain operations that match the criteria.
  5845  	NextToken *string `type:"string"`
  5846  
  5847  	// Summary information about the operations that match the specified criteria.
  5848  	Operations []*OperationSummary `type:"list"`
  5849  }
  5850  
  5851  // String returns the string representation.
  5852  //
  5853  // API parameter values that are decorated as "sensitive" in the API will not
  5854  // be included in the string output. The member name will be present, but the
  5855  // value will be replaced with "sensitive".
  5856  func (s ListOperationsOutput) String() string {
  5857  	return awsutil.Prettify(s)
  5858  }
  5859  
  5860  // GoString returns the string representation.
  5861  //
  5862  // API parameter values that are decorated as "sensitive" in the API will not
  5863  // be included in the string output. The member name will be present, but the
  5864  // value will be replaced with "sensitive".
  5865  func (s ListOperationsOutput) GoString() string {
  5866  	return s.String()
  5867  }
  5868  
  5869  // SetNextToken sets the NextToken field's value.
  5870  func (s *ListOperationsOutput) SetNextToken(v string) *ListOperationsOutput {
  5871  	s.NextToken = &v
  5872  	return s
  5873  }
  5874  
  5875  // SetOperations sets the Operations field's value.
  5876  func (s *ListOperationsOutput) SetOperations(v []*OperationSummary) *ListOperationsOutput {
  5877  	s.Operations = v
  5878  	return s
  5879  }
  5880  
  5881  type ListServicesInput struct {
  5882  	_ struct{} `type:"structure"`
  5883  
  5884  	// A complex type that contains specifications for the namespaces that you want
  5885  	// to list services for.
  5886  	//
  5887  	// If you specify more than one filter, an operation must match all filters
  5888  	// to be returned by ListServices.
  5889  	Filters []*ServiceFilter `type:"list"`
  5890  
  5891  	// The maximum number of services that you want Cloud Map to return in the response
  5892  	// to a ListServices request. If you don't specify a value for MaxResults, Cloud
  5893  	// Map returns up to 100 services.
  5894  	MaxResults *int64 `min:"1" type:"integer"`
  5895  
  5896  	// For the first ListServices request, omit this value.
  5897  	//
  5898  	// If the response contains NextToken, submit another ListServices request to
  5899  	// get the next group of results. Specify the value of NextToken from the previous
  5900  	// response in the next request.
  5901  	//
  5902  	// Cloud Map gets MaxResults services and then filters them based on the specified
  5903  	// criteria. It's possible that no services in the first MaxResults services
  5904  	// matched the specified criteria but that subsequent groups of MaxResults services
  5905  	// do contain services that match the criteria.
  5906  	NextToken *string `type:"string"`
  5907  }
  5908  
  5909  // String returns the string representation.
  5910  //
  5911  // API parameter values that are decorated as "sensitive" in the API will not
  5912  // be included in the string output. The member name will be present, but the
  5913  // value will be replaced with "sensitive".
  5914  func (s ListServicesInput) String() string {
  5915  	return awsutil.Prettify(s)
  5916  }
  5917  
  5918  // GoString returns the string representation.
  5919  //
  5920  // API parameter values that are decorated as "sensitive" in the API will not
  5921  // be included in the string output. The member name will be present, but the
  5922  // value will be replaced with "sensitive".
  5923  func (s ListServicesInput) GoString() string {
  5924  	return s.String()
  5925  }
  5926  
  5927  // Validate inspects the fields of the type to determine if they are valid.
  5928  func (s *ListServicesInput) Validate() error {
  5929  	invalidParams := request.ErrInvalidParams{Context: "ListServicesInput"}
  5930  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5931  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5932  	}
  5933  	if s.Filters != nil {
  5934  		for i, v := range s.Filters {
  5935  			if v == nil {
  5936  				continue
  5937  			}
  5938  			if err := v.Validate(); err != nil {
  5939  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
  5940  			}
  5941  		}
  5942  	}
  5943  
  5944  	if invalidParams.Len() > 0 {
  5945  		return invalidParams
  5946  	}
  5947  	return nil
  5948  }
  5949  
  5950  // SetFilters sets the Filters field's value.
  5951  func (s *ListServicesInput) SetFilters(v []*ServiceFilter) *ListServicesInput {
  5952  	s.Filters = v
  5953  	return s
  5954  }
  5955  
  5956  // SetMaxResults sets the MaxResults field's value.
  5957  func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
  5958  	s.MaxResults = &v
  5959  	return s
  5960  }
  5961  
  5962  // SetNextToken sets the NextToken field's value.
  5963  func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
  5964  	s.NextToken = &v
  5965  	return s
  5966  }
  5967  
  5968  type ListServicesOutput struct {
  5969  	_ struct{} `type:"structure"`
  5970  
  5971  	// If the response contains NextToken, submit another ListServices request to
  5972  	// get the next group of results. Specify the value of NextToken from the previous
  5973  	// response in the next request.
  5974  	//
  5975  	// Cloud Map gets MaxResults services and then filters them based on the specified
  5976  	// criteria. It's possible that no services in the first MaxResults services
  5977  	// matched the specified criteria but that subsequent groups of MaxResults services
  5978  	// do contain services that match the criteria.
  5979  	NextToken *string `type:"string"`
  5980  
  5981  	// An array that contains one ServiceSummary object for each service that matches
  5982  	// the specified filter criteria.
  5983  	Services []*ServiceSummary `type:"list"`
  5984  }
  5985  
  5986  // String returns the string representation.
  5987  //
  5988  // API parameter values that are decorated as "sensitive" in the API will not
  5989  // be included in the string output. The member name will be present, but the
  5990  // value will be replaced with "sensitive".
  5991  func (s ListServicesOutput) String() string {
  5992  	return awsutil.Prettify(s)
  5993  }
  5994  
  5995  // GoString returns the string representation.
  5996  //
  5997  // API parameter values that are decorated as "sensitive" in the API will not
  5998  // be included in the string output. The member name will be present, but the
  5999  // value will be replaced with "sensitive".
  6000  func (s ListServicesOutput) GoString() string {
  6001  	return s.String()
  6002  }
  6003  
  6004  // SetNextToken sets the NextToken field's value.
  6005  func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
  6006  	s.NextToken = &v
  6007  	return s
  6008  }
  6009  
  6010  // SetServices sets the Services field's value.
  6011  func (s *ListServicesOutput) SetServices(v []*ServiceSummary) *ListServicesOutput {
  6012  	s.Services = v
  6013  	return s
  6014  }
  6015  
  6016  type ListTagsForResourceInput struct {
  6017  	_ struct{} `type:"structure"`
  6018  
  6019  	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
  6020  	// tags for.
  6021  	//
  6022  	// ResourceARN is a required field
  6023  	ResourceARN *string `min:"1" type:"string" required:"true"`
  6024  }
  6025  
  6026  // String returns the string representation.
  6027  //
  6028  // API parameter values that are decorated as "sensitive" in the API will not
  6029  // be included in the string output. The member name will be present, but the
  6030  // value will be replaced with "sensitive".
  6031  func (s ListTagsForResourceInput) String() string {
  6032  	return awsutil.Prettify(s)
  6033  }
  6034  
  6035  // GoString returns the string representation.
  6036  //
  6037  // API parameter values that are decorated as "sensitive" in the API will not
  6038  // be included in the string output. The member name will be present, but the
  6039  // value will be replaced with "sensitive".
  6040  func (s ListTagsForResourceInput) GoString() string {
  6041  	return s.String()
  6042  }
  6043  
  6044  // Validate inspects the fields of the type to determine if they are valid.
  6045  func (s *ListTagsForResourceInput) Validate() error {
  6046  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  6047  	if s.ResourceARN == nil {
  6048  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  6049  	}
  6050  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  6051  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  6052  	}
  6053  
  6054  	if invalidParams.Len() > 0 {
  6055  		return invalidParams
  6056  	}
  6057  	return nil
  6058  }
  6059  
  6060  // SetResourceARN sets the ResourceARN field's value.
  6061  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
  6062  	s.ResourceARN = &v
  6063  	return s
  6064  }
  6065  
  6066  type ListTagsForResourceOutput struct {
  6067  	_ struct{} `type:"structure"`
  6068  
  6069  	// The tags that are assigned to the resource.
  6070  	Tags []*Tag `type:"list"`
  6071  }
  6072  
  6073  // String returns the string representation.
  6074  //
  6075  // API parameter values that are decorated as "sensitive" in the API will not
  6076  // be included in the string output. The member name will be present, but the
  6077  // value will be replaced with "sensitive".
  6078  func (s ListTagsForResourceOutput) String() string {
  6079  	return awsutil.Prettify(s)
  6080  }
  6081  
  6082  // GoString returns the string representation.
  6083  //
  6084  // API parameter values that are decorated as "sensitive" in the API will not
  6085  // be included in the string output. The member name will be present, but the
  6086  // value will be replaced with "sensitive".
  6087  func (s ListTagsForResourceOutput) GoString() string {
  6088  	return s.String()
  6089  }
  6090  
  6091  // SetTags sets the Tags field's value.
  6092  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  6093  	s.Tags = v
  6094  	return s
  6095  }
  6096  
  6097  // A complex type that contains information about a specified namespace.
  6098  type Namespace struct {
  6099  	_ struct{} `type:"structure"`
  6100  
  6101  	// The Amazon Resource Name (ARN) that Cloud Map assigns to the namespace when
  6102  	// you create it.
  6103  	Arn *string `type:"string"`
  6104  
  6105  	// The date that the namespace was created, in Unix date/time format and Coordinated
  6106  	// Universal Time (UTC). The value of CreateDate is accurate to milliseconds.
  6107  	// For example, the value 1516925490.087 represents Friday, January 26, 2018
  6108  	// 12:11:30.087 AM.
  6109  	CreateDate *time.Time `type:"timestamp"`
  6110  
  6111  	// A unique string that identifies the request and that allows failed requests
  6112  	// to be retried without the risk of running an operation twice.
  6113  	CreatorRequestId *string `type:"string"`
  6114  
  6115  	// The description that you specify for the namespace when you create it.
  6116  	Description *string `type:"string"`
  6117  
  6118  	// The ID of a namespace.
  6119  	Id *string `type:"string"`
  6120  
  6121  	// The name of the namespace, such as example.com.
  6122  	Name *string `type:"string"`
  6123  
  6124  	// A complex type that contains information that's specific to the type of the
  6125  	// namespace.
  6126  	Properties *NamespaceProperties `type:"structure"`
  6127  
  6128  	// The number of services that are associated with the namespace.
  6129  	ServiceCount *int64 `type:"integer"`
  6130  
  6131  	// The type of the namespace. The methods for discovering instances depends
  6132  	// on the value that you specify:
  6133  	//
  6134  	// HTTP
  6135  	//
  6136  	// Instances can be discovered only programmatically, using the Cloud Map DiscoverInstances
  6137  	// API.
  6138  	//
  6139  	// DNS_PUBLIC
  6140  	//
  6141  	// Instances can be discovered using public DNS queries and using the DiscoverInstances
  6142  	// API.
  6143  	//
  6144  	// DNS_PRIVATE
  6145  	//
  6146  	// Instances can be discovered using DNS queries in VPCs and using the DiscoverInstances
  6147  	// API.
  6148  	Type *string `type:"string" enum:"NamespaceType"`
  6149  }
  6150  
  6151  // String returns the string representation.
  6152  //
  6153  // API parameter values that are decorated as "sensitive" in the API will not
  6154  // be included in the string output. The member name will be present, but the
  6155  // value will be replaced with "sensitive".
  6156  func (s Namespace) String() string {
  6157  	return awsutil.Prettify(s)
  6158  }
  6159  
  6160  // GoString returns the string representation.
  6161  //
  6162  // API parameter values that are decorated as "sensitive" in the API will not
  6163  // be included in the string output. The member name will be present, but the
  6164  // value will be replaced with "sensitive".
  6165  func (s Namespace) GoString() string {
  6166  	return s.String()
  6167  }
  6168  
  6169  // SetArn sets the Arn field's value.
  6170  func (s *Namespace) SetArn(v string) *Namespace {
  6171  	s.Arn = &v
  6172  	return s
  6173  }
  6174  
  6175  // SetCreateDate sets the CreateDate field's value.
  6176  func (s *Namespace) SetCreateDate(v time.Time) *Namespace {
  6177  	s.CreateDate = &v
  6178  	return s
  6179  }
  6180  
  6181  // SetCreatorRequestId sets the CreatorRequestId field's value.
  6182  func (s *Namespace) SetCreatorRequestId(v string) *Namespace {
  6183  	s.CreatorRequestId = &v
  6184  	return s
  6185  }
  6186  
  6187  // SetDescription sets the Description field's value.
  6188  func (s *Namespace) SetDescription(v string) *Namespace {
  6189  	s.Description = &v
  6190  	return s
  6191  }
  6192  
  6193  // SetId sets the Id field's value.
  6194  func (s *Namespace) SetId(v string) *Namespace {
  6195  	s.Id = &v
  6196  	return s
  6197  }
  6198  
  6199  // SetName sets the Name field's value.
  6200  func (s *Namespace) SetName(v string) *Namespace {
  6201  	s.Name = &v
  6202  	return s
  6203  }
  6204  
  6205  // SetProperties sets the Properties field's value.
  6206  func (s *Namespace) SetProperties(v *NamespaceProperties) *Namespace {
  6207  	s.Properties = v
  6208  	return s
  6209  }
  6210  
  6211  // SetServiceCount sets the ServiceCount field's value.
  6212  func (s *Namespace) SetServiceCount(v int64) *Namespace {
  6213  	s.ServiceCount = &v
  6214  	return s
  6215  }
  6216  
  6217  // SetType sets the Type field's value.
  6218  func (s *Namespace) SetType(v string) *Namespace {
  6219  	s.Type = &v
  6220  	return s
  6221  }
  6222  
  6223  // The namespace that you're trying to create already exists.
  6224  type NamespaceAlreadyExists struct {
  6225  	_            struct{}                  `type:"structure"`
  6226  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6227  
  6228  	// The CreatorRequestId that was used to create the namespace.
  6229  	CreatorRequestId *string `type:"string"`
  6230  
  6231  	Message_ *string `locationName:"Message" type:"string"`
  6232  
  6233  	// The ID of the existing namespace.
  6234  	NamespaceId *string `type:"string"`
  6235  }
  6236  
  6237  // String returns the string representation.
  6238  //
  6239  // API parameter values that are decorated as "sensitive" in the API will not
  6240  // be included in the string output. The member name will be present, but the
  6241  // value will be replaced with "sensitive".
  6242  func (s NamespaceAlreadyExists) String() string {
  6243  	return awsutil.Prettify(s)
  6244  }
  6245  
  6246  // GoString returns the string representation.
  6247  //
  6248  // API parameter values that are decorated as "sensitive" in the API will not
  6249  // be included in the string output. The member name will be present, but the
  6250  // value will be replaced with "sensitive".
  6251  func (s NamespaceAlreadyExists) GoString() string {
  6252  	return s.String()
  6253  }
  6254  
  6255  func newErrorNamespaceAlreadyExists(v protocol.ResponseMetadata) error {
  6256  	return &NamespaceAlreadyExists{
  6257  		RespMetadata: v,
  6258  	}
  6259  }
  6260  
  6261  // Code returns the exception type name.
  6262  func (s *NamespaceAlreadyExists) Code() string {
  6263  	return "NamespaceAlreadyExists"
  6264  }
  6265  
  6266  // Message returns the exception's message.
  6267  func (s *NamespaceAlreadyExists) Message() string {
  6268  	if s.Message_ != nil {
  6269  		return *s.Message_
  6270  	}
  6271  	return ""
  6272  }
  6273  
  6274  // OrigErr always returns nil, satisfies awserr.Error interface.
  6275  func (s *NamespaceAlreadyExists) OrigErr() error {
  6276  	return nil
  6277  }
  6278  
  6279  func (s *NamespaceAlreadyExists) Error() string {
  6280  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6281  }
  6282  
  6283  // Status code returns the HTTP status code for the request's response error.
  6284  func (s *NamespaceAlreadyExists) StatusCode() int {
  6285  	return s.RespMetadata.StatusCode
  6286  }
  6287  
  6288  // RequestID returns the service's response RequestID for request.
  6289  func (s *NamespaceAlreadyExists) RequestID() string {
  6290  	return s.RespMetadata.RequestID
  6291  }
  6292  
  6293  // A complex type that identifies the namespaces that you want to list. You
  6294  // can choose to list public or private namespaces.
  6295  type NamespaceFilter struct {
  6296  	_ struct{} `type:"structure"`
  6297  
  6298  	// The operator that you want to use to determine whether ListNamespaces returns
  6299  	// a namespace. Valid values for condition include:
  6300  	//
  6301  	// EQ
  6302  	//
  6303  	// When you specify EQ for the condition, you can choose to list only public
  6304  	// namespaces or private namespaces, but not both. EQ is the default condition
  6305  	// and can be omitted.
  6306  	//
  6307  	// IN
  6308  	//
  6309  	// When you specify IN for the condition, you can choose to list public namespaces,
  6310  	// private namespaces, or both.
  6311  	//
  6312  	// BETWEEN
  6313  	//
  6314  	// Not applicable
  6315  	Condition *string `type:"string" enum:"FilterCondition"`
  6316  
  6317  	// Specify TYPE.
  6318  	//
  6319  	// Name is a required field
  6320  	Name *string `type:"string" required:"true" enum:"NamespaceFilterName"`
  6321  
  6322  	// If you specify EQ for Condition, specify either DNS_PUBLIC or DNS_PRIVATE.
  6323  	//
  6324  	// If you specify IN for Condition, you can specify DNS_PUBLIC, DNS_PRIVATE,
  6325  	// or both.
  6326  	//
  6327  	// Values is a required field
  6328  	Values []*string `type:"list" required:"true"`
  6329  }
  6330  
  6331  // String returns the string representation.
  6332  //
  6333  // API parameter values that are decorated as "sensitive" in the API will not
  6334  // be included in the string output. The member name will be present, but the
  6335  // value will be replaced with "sensitive".
  6336  func (s NamespaceFilter) String() string {
  6337  	return awsutil.Prettify(s)
  6338  }
  6339  
  6340  // GoString returns the string representation.
  6341  //
  6342  // API parameter values that are decorated as "sensitive" in the API will not
  6343  // be included in the string output. The member name will be present, but the
  6344  // value will be replaced with "sensitive".
  6345  func (s NamespaceFilter) GoString() string {
  6346  	return s.String()
  6347  }
  6348  
  6349  // Validate inspects the fields of the type to determine if they are valid.
  6350  func (s *NamespaceFilter) Validate() error {
  6351  	invalidParams := request.ErrInvalidParams{Context: "NamespaceFilter"}
  6352  	if s.Name == nil {
  6353  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6354  	}
  6355  	if s.Values == nil {
  6356  		invalidParams.Add(request.NewErrParamRequired("Values"))
  6357  	}
  6358  
  6359  	if invalidParams.Len() > 0 {
  6360  		return invalidParams
  6361  	}
  6362  	return nil
  6363  }
  6364  
  6365  // SetCondition sets the Condition field's value.
  6366  func (s *NamespaceFilter) SetCondition(v string) *NamespaceFilter {
  6367  	s.Condition = &v
  6368  	return s
  6369  }
  6370  
  6371  // SetName sets the Name field's value.
  6372  func (s *NamespaceFilter) SetName(v string) *NamespaceFilter {
  6373  	s.Name = &v
  6374  	return s
  6375  }
  6376  
  6377  // SetValues sets the Values field's value.
  6378  func (s *NamespaceFilter) SetValues(v []*string) *NamespaceFilter {
  6379  	s.Values = v
  6380  	return s
  6381  }
  6382  
  6383  // No namespace exists with the specified ID.
  6384  type NamespaceNotFound struct {
  6385  	_            struct{}                  `type:"structure"`
  6386  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6387  
  6388  	Message_ *string `locationName:"Message" type:"string"`
  6389  }
  6390  
  6391  // String returns the string representation.
  6392  //
  6393  // API parameter values that are decorated as "sensitive" in the API will not
  6394  // be included in the string output. The member name will be present, but the
  6395  // value will be replaced with "sensitive".
  6396  func (s NamespaceNotFound) String() string {
  6397  	return awsutil.Prettify(s)
  6398  }
  6399  
  6400  // GoString returns the string representation.
  6401  //
  6402  // API parameter values that are decorated as "sensitive" in the API will not
  6403  // be included in the string output. The member name will be present, but the
  6404  // value will be replaced with "sensitive".
  6405  func (s NamespaceNotFound) GoString() string {
  6406  	return s.String()
  6407  }
  6408  
  6409  func newErrorNamespaceNotFound(v protocol.ResponseMetadata) error {
  6410  	return &NamespaceNotFound{
  6411  		RespMetadata: v,
  6412  	}
  6413  }
  6414  
  6415  // Code returns the exception type name.
  6416  func (s *NamespaceNotFound) Code() string {
  6417  	return "NamespaceNotFound"
  6418  }
  6419  
  6420  // Message returns the exception's message.
  6421  func (s *NamespaceNotFound) Message() string {
  6422  	if s.Message_ != nil {
  6423  		return *s.Message_
  6424  	}
  6425  	return ""
  6426  }
  6427  
  6428  // OrigErr always returns nil, satisfies awserr.Error interface.
  6429  func (s *NamespaceNotFound) OrigErr() error {
  6430  	return nil
  6431  }
  6432  
  6433  func (s *NamespaceNotFound) Error() string {
  6434  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6435  }
  6436  
  6437  // Status code returns the HTTP status code for the request's response error.
  6438  func (s *NamespaceNotFound) StatusCode() int {
  6439  	return s.RespMetadata.StatusCode
  6440  }
  6441  
  6442  // RequestID returns the service's response RequestID for request.
  6443  func (s *NamespaceNotFound) RequestID() string {
  6444  	return s.RespMetadata.RequestID
  6445  }
  6446  
  6447  // A complex type that contains information that's specific to the namespace
  6448  // type.
  6449  type NamespaceProperties struct {
  6450  	_ struct{} `type:"structure"`
  6451  
  6452  	// A complex type that contains the ID for the Route 53 hosted zone that Cloud
  6453  	// Map creates when you create a namespace.
  6454  	DnsProperties *DnsProperties `type:"structure"`
  6455  
  6456  	// A complex type that contains the name of an HTTP namespace.
  6457  	HttpProperties *HttpProperties `type:"structure"`
  6458  }
  6459  
  6460  // String returns the string representation.
  6461  //
  6462  // API parameter values that are decorated as "sensitive" in the API will not
  6463  // be included in the string output. The member name will be present, but the
  6464  // value will be replaced with "sensitive".
  6465  func (s NamespaceProperties) String() string {
  6466  	return awsutil.Prettify(s)
  6467  }
  6468  
  6469  // GoString returns the string representation.
  6470  //
  6471  // API parameter values that are decorated as "sensitive" in the API will not
  6472  // be included in the string output. The member name will be present, but the
  6473  // value will be replaced with "sensitive".
  6474  func (s NamespaceProperties) GoString() string {
  6475  	return s.String()
  6476  }
  6477  
  6478  // SetDnsProperties sets the DnsProperties field's value.
  6479  func (s *NamespaceProperties) SetDnsProperties(v *DnsProperties) *NamespaceProperties {
  6480  	s.DnsProperties = v
  6481  	return s
  6482  }
  6483  
  6484  // SetHttpProperties sets the HttpProperties field's value.
  6485  func (s *NamespaceProperties) SetHttpProperties(v *HttpProperties) *NamespaceProperties {
  6486  	s.HttpProperties = v
  6487  	return s
  6488  }
  6489  
  6490  // A complex type that contains information about a namespace.
  6491  type NamespaceSummary struct {
  6492  	_ struct{} `type:"structure"`
  6493  
  6494  	// The Amazon Resource Name (ARN) that Cloud Map assigns to the namespace when
  6495  	// you create it.
  6496  	Arn *string `type:"string"`
  6497  
  6498  	// The date and time that the namespace was created.
  6499  	CreateDate *time.Time `type:"timestamp"`
  6500  
  6501  	// A description for the namespace.
  6502  	Description *string `type:"string"`
  6503  
  6504  	// The ID of the namespace.
  6505  	Id *string `type:"string"`
  6506  
  6507  	// The name of the namespace. When you create a namespace, Cloud Map automatically
  6508  	// creates a Route 53 hosted zone that has the same name as the namespace.
  6509  	Name *string `type:"string"`
  6510  
  6511  	// The properties of the namespace.
  6512  	Properties *NamespaceProperties `type:"structure"`
  6513  
  6514  	// The number of services that were created using the namespace.
  6515  	ServiceCount *int64 `type:"integer"`
  6516  
  6517  	// The type of the namespace, either public or private.
  6518  	Type *string `type:"string" enum:"NamespaceType"`
  6519  }
  6520  
  6521  // String returns the string representation.
  6522  //
  6523  // API parameter values that are decorated as "sensitive" in the API will not
  6524  // be included in the string output. The member name will be present, but the
  6525  // value will be replaced with "sensitive".
  6526  func (s NamespaceSummary) String() string {
  6527  	return awsutil.Prettify(s)
  6528  }
  6529  
  6530  // GoString returns the string representation.
  6531  //
  6532  // API parameter values that are decorated as "sensitive" in the API will not
  6533  // be included in the string output. The member name will be present, but the
  6534  // value will be replaced with "sensitive".
  6535  func (s NamespaceSummary) GoString() string {
  6536  	return s.String()
  6537  }
  6538  
  6539  // SetArn sets the Arn field's value.
  6540  func (s *NamespaceSummary) SetArn(v string) *NamespaceSummary {
  6541  	s.Arn = &v
  6542  	return s
  6543  }
  6544  
  6545  // SetCreateDate sets the CreateDate field's value.
  6546  func (s *NamespaceSummary) SetCreateDate(v time.Time) *NamespaceSummary {
  6547  	s.CreateDate = &v
  6548  	return s
  6549  }
  6550  
  6551  // SetDescription sets the Description field's value.
  6552  func (s *NamespaceSummary) SetDescription(v string) *NamespaceSummary {
  6553  	s.Description = &v
  6554  	return s
  6555  }
  6556  
  6557  // SetId sets the Id field's value.
  6558  func (s *NamespaceSummary) SetId(v string) *NamespaceSummary {
  6559  	s.Id = &v
  6560  	return s
  6561  }
  6562  
  6563  // SetName sets the Name field's value.
  6564  func (s *NamespaceSummary) SetName(v string) *NamespaceSummary {
  6565  	s.Name = &v
  6566  	return s
  6567  }
  6568  
  6569  // SetProperties sets the Properties field's value.
  6570  func (s *NamespaceSummary) SetProperties(v *NamespaceProperties) *NamespaceSummary {
  6571  	s.Properties = v
  6572  	return s
  6573  }
  6574  
  6575  // SetServiceCount sets the ServiceCount field's value.
  6576  func (s *NamespaceSummary) SetServiceCount(v int64) *NamespaceSummary {
  6577  	s.ServiceCount = &v
  6578  	return s
  6579  }
  6580  
  6581  // SetType sets the Type field's value.
  6582  func (s *NamespaceSummary) SetType(v string) *NamespaceSummary {
  6583  	s.Type = &v
  6584  	return s
  6585  }
  6586  
  6587  // A complex type that contains information about a specified operation.
  6588  type Operation struct {
  6589  	_ struct{} `type:"structure"`
  6590  
  6591  	// The date and time that the request was submitted, in Unix date/time format
  6592  	// and Coordinated Universal Time (UTC). The value of CreateDate is accurate
  6593  	// to milliseconds. For example, the value 1516925490.087 represents Friday,
  6594  	// January 26, 2018 12:11:30.087 AM.
  6595  	CreateDate *time.Time `type:"timestamp"`
  6596  
  6597  	// The code associated with ErrorMessage. Values for ErrorCode include the following:
  6598  	//
  6599  	//    * ACCESS_DENIED
  6600  	//
  6601  	//    * CANNOT_CREATE_HOSTED_ZONE
  6602  	//
  6603  	//    * EXPIRED_TOKEN
  6604  	//
  6605  	//    * HOSTED_ZONE_NOT_FOUND
  6606  	//
  6607  	//    * INTERNAL_FAILURE
  6608  	//
  6609  	//    * INVALID_CHANGE_BATCH
  6610  	//
  6611  	//    * THROTTLED_REQUEST
  6612  	ErrorCode *string `type:"string"`
  6613  
  6614  	// If the value of Status is FAIL, the reason that the operation failed.
  6615  	ErrorMessage *string `type:"string"`
  6616  
  6617  	// The ID of the operation that you want to get information about.
  6618  	Id *string `type:"string"`
  6619  
  6620  	// The status of the operation. Values include the following:
  6621  	//
  6622  	// SUBMITTED
  6623  	//
  6624  	// This is the initial state that occurs immediately after you submit a request.
  6625  	//
  6626  	// PENDING
  6627  	//
  6628  	// Cloud Map is performing the operation.
  6629  	//
  6630  	// SUCCESS
  6631  	//
  6632  	// The operation succeeded.
  6633  	//
  6634  	// FAIL
  6635  	//
  6636  	// The operation failed. For the failure reason, see ErrorMessage.
  6637  	Status *string `type:"string" enum:"OperationStatus"`
  6638  
  6639  	// The name of the target entity that's associated with the operation:
  6640  	//
  6641  	// NAMESPACE
  6642  	//
  6643  	// The namespace ID is returned in the ResourceId property.
  6644  	//
  6645  	// SERVICE
  6646  	//
  6647  	// The service ID is returned in the ResourceId property.
  6648  	//
  6649  	// INSTANCE
  6650  	//
  6651  	// The instance ID is returned in the ResourceId property.
  6652  	Targets map[string]*string `type:"map"`
  6653  
  6654  	// The name of the operation that's associated with the specified ID.
  6655  	Type *string `type:"string" enum:"OperationType"`
  6656  
  6657  	// The date and time that the value of Status changed to the current value,
  6658  	// in Unix date/time format and Coordinated Universal Time (UTC). The value
  6659  	// of UpdateDate is accurate to milliseconds. For example, the value 1516925490.087
  6660  	// represents Friday, January 26, 2018 12:11:30.087 AM.
  6661  	UpdateDate *time.Time `type:"timestamp"`
  6662  }
  6663  
  6664  // String returns the string representation.
  6665  //
  6666  // API parameter values that are decorated as "sensitive" in the API will not
  6667  // be included in the string output. The member name will be present, but the
  6668  // value will be replaced with "sensitive".
  6669  func (s Operation) String() string {
  6670  	return awsutil.Prettify(s)
  6671  }
  6672  
  6673  // GoString returns the string representation.
  6674  //
  6675  // API parameter values that are decorated as "sensitive" in the API will not
  6676  // be included in the string output. The member name will be present, but the
  6677  // value will be replaced with "sensitive".
  6678  func (s Operation) GoString() string {
  6679  	return s.String()
  6680  }
  6681  
  6682  // SetCreateDate sets the CreateDate field's value.
  6683  func (s *Operation) SetCreateDate(v time.Time) *Operation {
  6684  	s.CreateDate = &v
  6685  	return s
  6686  }
  6687  
  6688  // SetErrorCode sets the ErrorCode field's value.
  6689  func (s *Operation) SetErrorCode(v string) *Operation {
  6690  	s.ErrorCode = &v
  6691  	return s
  6692  }
  6693  
  6694  // SetErrorMessage sets the ErrorMessage field's value.
  6695  func (s *Operation) SetErrorMessage(v string) *Operation {
  6696  	s.ErrorMessage = &v
  6697  	return s
  6698  }
  6699  
  6700  // SetId sets the Id field's value.
  6701  func (s *Operation) SetId(v string) *Operation {
  6702  	s.Id = &v
  6703  	return s
  6704  }
  6705  
  6706  // SetStatus sets the Status field's value.
  6707  func (s *Operation) SetStatus(v string) *Operation {
  6708  	s.Status = &v
  6709  	return s
  6710  }
  6711  
  6712  // SetTargets sets the Targets field's value.
  6713  func (s *Operation) SetTargets(v map[string]*string) *Operation {
  6714  	s.Targets = v
  6715  	return s
  6716  }
  6717  
  6718  // SetType sets the Type field's value.
  6719  func (s *Operation) SetType(v string) *Operation {
  6720  	s.Type = &v
  6721  	return s
  6722  }
  6723  
  6724  // SetUpdateDate sets the UpdateDate field's value.
  6725  func (s *Operation) SetUpdateDate(v time.Time) *Operation {
  6726  	s.UpdateDate = &v
  6727  	return s
  6728  }
  6729  
  6730  // A complex type that lets you select the operations that you want to list.
  6731  type OperationFilter struct {
  6732  	_ struct{} `type:"structure"`
  6733  
  6734  	// The operator that you want to use to determine whether an operation matches
  6735  	// the specified value. Valid values for condition include:
  6736  	//
  6737  	//    * EQ: When you specify EQ for the condition, you can specify only one
  6738  	//    value. EQ is supported for NAMESPACE_ID, SERVICE_ID, STATUS, and TYPE.
  6739  	//    EQ is the default condition and can be omitted.
  6740  	//
  6741  	//    * IN: When you specify IN for the condition, you can specify a list of
  6742  	//    one or more values. IN is supported for STATUS and TYPE. An operation
  6743  	//    must match one of the specified values to be returned in the response.
  6744  	//
  6745  	//    * BETWEEN: Specify a start date and an end date in Unix date/time format
  6746  	//    and Coordinated Universal Time (UTC). The start date must be the first
  6747  	//    value. BETWEEN is supported for UPDATE_DATE.
  6748  	Condition *string `type:"string" enum:"FilterCondition"`
  6749  
  6750  	// Specify the operations that you want to get:
  6751  	//
  6752  	//    * NAMESPACE_ID: Gets operations related to specified namespaces.
  6753  	//
  6754  	//    * SERVICE_ID: Gets operations related to specified services.
  6755  	//
  6756  	//    * STATUS: Gets operations based on the status of the operations: SUBMITTED,
  6757  	//    PENDING, SUCCEED, or FAIL.
  6758  	//
  6759  	//    * TYPE: Gets specified types of operation.
  6760  	//
  6761  	//    * UPDATE_DATE: Gets operations that changed status during a specified
  6762  	//    date/time range.
  6763  	//
  6764  	// Name is a required field
  6765  	Name *string `type:"string" required:"true" enum:"OperationFilterName"`
  6766  
  6767  	// Specify values that are applicable to the value that you specify for Name:
  6768  	//
  6769  	//    * NAMESPACE_ID: Specify one namespace ID.
  6770  	//
  6771  	//    * SERVICE_ID: Specify one service ID.
  6772  	//
  6773  	//    * STATUS: Specify one or more statuses: SUBMITTED, PENDING, SUCCEED, or
  6774  	//    FAIL.
  6775  	//
  6776  	//    * TYPE: Specify one or more of the following types: CREATE_NAMESPACE,
  6777  	//    DELETE_NAMESPACE, UPDATE_SERVICE, REGISTER_INSTANCE, or DEREGISTER_INSTANCE.
  6778  	//
  6779  	//    * UPDATE_DATE: Specify a start date and an end date in Unix date/time
  6780  	//    format and Coordinated Universal Time (UTC). The start date must be the
  6781  	//    first value.
  6782  	//
  6783  	// Values is a required field
  6784  	Values []*string `type:"list" required:"true"`
  6785  }
  6786  
  6787  // String returns the string representation.
  6788  //
  6789  // API parameter values that are decorated as "sensitive" in the API will not
  6790  // be included in the string output. The member name will be present, but the
  6791  // value will be replaced with "sensitive".
  6792  func (s OperationFilter) String() string {
  6793  	return awsutil.Prettify(s)
  6794  }
  6795  
  6796  // GoString returns the string representation.
  6797  //
  6798  // API parameter values that are decorated as "sensitive" in the API will not
  6799  // be included in the string output. The member name will be present, but the
  6800  // value will be replaced with "sensitive".
  6801  func (s OperationFilter) GoString() string {
  6802  	return s.String()
  6803  }
  6804  
  6805  // Validate inspects the fields of the type to determine if they are valid.
  6806  func (s *OperationFilter) Validate() error {
  6807  	invalidParams := request.ErrInvalidParams{Context: "OperationFilter"}
  6808  	if s.Name == nil {
  6809  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6810  	}
  6811  	if s.Values == nil {
  6812  		invalidParams.Add(request.NewErrParamRequired("Values"))
  6813  	}
  6814  
  6815  	if invalidParams.Len() > 0 {
  6816  		return invalidParams
  6817  	}
  6818  	return nil
  6819  }
  6820  
  6821  // SetCondition sets the Condition field's value.
  6822  func (s *OperationFilter) SetCondition(v string) *OperationFilter {
  6823  	s.Condition = &v
  6824  	return s
  6825  }
  6826  
  6827  // SetName sets the Name field's value.
  6828  func (s *OperationFilter) SetName(v string) *OperationFilter {
  6829  	s.Name = &v
  6830  	return s
  6831  }
  6832  
  6833  // SetValues sets the Values field's value.
  6834  func (s *OperationFilter) SetValues(v []*string) *OperationFilter {
  6835  	s.Values = v
  6836  	return s
  6837  }
  6838  
  6839  // No operation exists with the specified ID.
  6840  type OperationNotFound struct {
  6841  	_            struct{}                  `type:"structure"`
  6842  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6843  
  6844  	Message_ *string `locationName:"Message" type:"string"`
  6845  }
  6846  
  6847  // String returns the string representation.
  6848  //
  6849  // API parameter values that are decorated as "sensitive" in the API will not
  6850  // be included in the string output. The member name will be present, but the
  6851  // value will be replaced with "sensitive".
  6852  func (s OperationNotFound) String() string {
  6853  	return awsutil.Prettify(s)
  6854  }
  6855  
  6856  // GoString returns the string representation.
  6857  //
  6858  // API parameter values that are decorated as "sensitive" in the API will not
  6859  // be included in the string output. The member name will be present, but the
  6860  // value will be replaced with "sensitive".
  6861  func (s OperationNotFound) GoString() string {
  6862  	return s.String()
  6863  }
  6864  
  6865  func newErrorOperationNotFound(v protocol.ResponseMetadata) error {
  6866  	return &OperationNotFound{
  6867  		RespMetadata: v,
  6868  	}
  6869  }
  6870  
  6871  // Code returns the exception type name.
  6872  func (s *OperationNotFound) Code() string {
  6873  	return "OperationNotFound"
  6874  }
  6875  
  6876  // Message returns the exception's message.
  6877  func (s *OperationNotFound) Message() string {
  6878  	if s.Message_ != nil {
  6879  		return *s.Message_
  6880  	}
  6881  	return ""
  6882  }
  6883  
  6884  // OrigErr always returns nil, satisfies awserr.Error interface.
  6885  func (s *OperationNotFound) OrigErr() error {
  6886  	return nil
  6887  }
  6888  
  6889  func (s *OperationNotFound) Error() string {
  6890  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6891  }
  6892  
  6893  // Status code returns the HTTP status code for the request's response error.
  6894  func (s *OperationNotFound) StatusCode() int {
  6895  	return s.RespMetadata.StatusCode
  6896  }
  6897  
  6898  // RequestID returns the service's response RequestID for request.
  6899  func (s *OperationNotFound) RequestID() string {
  6900  	return s.RespMetadata.RequestID
  6901  }
  6902  
  6903  // A complex type that contains information about an operation that matches
  6904  // the criteria that you specified in a ListOperations (https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html)
  6905  // request.
  6906  type OperationSummary struct {
  6907  	_ struct{} `type:"structure"`
  6908  
  6909  	// The ID for an operation.
  6910  	Id *string `type:"string"`
  6911  
  6912  	// The status of the operation. Values include the following:
  6913  	//
  6914  	//    * SUBMITTED: This is the initial state immediately after you submit a
  6915  	//    request.
  6916  	//
  6917  	//    * PENDING: Cloud Map is performing the operation.
  6918  	//
  6919  	//    * SUCCESS: The operation succeeded.
  6920  	//
  6921  	//    * FAIL: The operation failed. For the failure reason, see ErrorMessage.
  6922  	Status *string `type:"string" enum:"OperationStatus"`
  6923  }
  6924  
  6925  // String returns the string representation.
  6926  //
  6927  // API parameter values that are decorated as "sensitive" in the API will not
  6928  // be included in the string output. The member name will be present, but the
  6929  // value will be replaced with "sensitive".
  6930  func (s OperationSummary) String() string {
  6931  	return awsutil.Prettify(s)
  6932  }
  6933  
  6934  // GoString returns the string representation.
  6935  //
  6936  // API parameter values that are decorated as "sensitive" in the API will not
  6937  // be included in the string output. The member name will be present, but the
  6938  // value will be replaced with "sensitive".
  6939  func (s OperationSummary) GoString() string {
  6940  	return s.String()
  6941  }
  6942  
  6943  // SetId sets the Id field's value.
  6944  func (s *OperationSummary) SetId(v string) *OperationSummary {
  6945  	s.Id = &v
  6946  	return s
  6947  }
  6948  
  6949  // SetStatus sets the Status field's value.
  6950  func (s *OperationSummary) SetStatus(v string) *OperationSummary {
  6951  	s.Status = &v
  6952  	return s
  6953  }
  6954  
  6955  // Updated properties for the private DNS namespace.
  6956  type PrivateDnsNamespaceChange struct {
  6957  	_ struct{} `type:"structure"`
  6958  
  6959  	// An updated description for the private DNS namespace.
  6960  	Description *string `type:"string"`
  6961  
  6962  	// Properties to be updated in the private DNS namespace.
  6963  	Properties *PrivateDnsNamespacePropertiesChange `type:"structure"`
  6964  }
  6965  
  6966  // String returns the string representation.
  6967  //
  6968  // API parameter values that are decorated as "sensitive" in the API will not
  6969  // be included in the string output. The member name will be present, but the
  6970  // value will be replaced with "sensitive".
  6971  func (s PrivateDnsNamespaceChange) String() string {
  6972  	return awsutil.Prettify(s)
  6973  }
  6974  
  6975  // GoString returns the string representation.
  6976  //
  6977  // API parameter values that are decorated as "sensitive" in the API will not
  6978  // be included in the string output. The member name will be present, but the
  6979  // value will be replaced with "sensitive".
  6980  func (s PrivateDnsNamespaceChange) GoString() string {
  6981  	return s.String()
  6982  }
  6983  
  6984  // Validate inspects the fields of the type to determine if they are valid.
  6985  func (s *PrivateDnsNamespaceChange) Validate() error {
  6986  	invalidParams := request.ErrInvalidParams{Context: "PrivateDnsNamespaceChange"}
  6987  	if s.Properties != nil {
  6988  		if err := s.Properties.Validate(); err != nil {
  6989  			invalidParams.AddNested("Properties", err.(request.ErrInvalidParams))
  6990  		}
  6991  	}
  6992  
  6993  	if invalidParams.Len() > 0 {
  6994  		return invalidParams
  6995  	}
  6996  	return nil
  6997  }
  6998  
  6999  // SetDescription sets the Description field's value.
  7000  func (s *PrivateDnsNamespaceChange) SetDescription(v string) *PrivateDnsNamespaceChange {
  7001  	s.Description = &v
  7002  	return s
  7003  }
  7004  
  7005  // SetProperties sets the Properties field's value.
  7006  func (s *PrivateDnsNamespaceChange) SetProperties(v *PrivateDnsNamespacePropertiesChange) *PrivateDnsNamespaceChange {
  7007  	s.Properties = v
  7008  	return s
  7009  }
  7010  
  7011  // DNS properties for the private DNS namespace.
  7012  type PrivateDnsNamespaceProperties struct {
  7013  	_ struct{} `type:"structure"`
  7014  
  7015  	// DNS properties for the private DNS namespace.
  7016  	//
  7017  	// DnsProperties is a required field
  7018  	DnsProperties *PrivateDnsPropertiesMutable `type:"structure" required:"true"`
  7019  }
  7020  
  7021  // String returns the string representation.
  7022  //
  7023  // API parameter values that are decorated as "sensitive" in the API will not
  7024  // be included in the string output. The member name will be present, but the
  7025  // value will be replaced with "sensitive".
  7026  func (s PrivateDnsNamespaceProperties) String() string {
  7027  	return awsutil.Prettify(s)
  7028  }
  7029  
  7030  // GoString returns the string representation.
  7031  //
  7032  // API parameter values that are decorated as "sensitive" in the API will not
  7033  // be included in the string output. The member name will be present, but the
  7034  // value will be replaced with "sensitive".
  7035  func (s PrivateDnsNamespaceProperties) GoString() string {
  7036  	return s.String()
  7037  }
  7038  
  7039  // Validate inspects the fields of the type to determine if they are valid.
  7040  func (s *PrivateDnsNamespaceProperties) Validate() error {
  7041  	invalidParams := request.ErrInvalidParams{Context: "PrivateDnsNamespaceProperties"}
  7042  	if s.DnsProperties == nil {
  7043  		invalidParams.Add(request.NewErrParamRequired("DnsProperties"))
  7044  	}
  7045  	if s.DnsProperties != nil {
  7046  		if err := s.DnsProperties.Validate(); err != nil {
  7047  			invalidParams.AddNested("DnsProperties", err.(request.ErrInvalidParams))
  7048  		}
  7049  	}
  7050  
  7051  	if invalidParams.Len() > 0 {
  7052  		return invalidParams
  7053  	}
  7054  	return nil
  7055  }
  7056  
  7057  // SetDnsProperties sets the DnsProperties field's value.
  7058  func (s *PrivateDnsNamespaceProperties) SetDnsProperties(v *PrivateDnsPropertiesMutable) *PrivateDnsNamespaceProperties {
  7059  	s.DnsProperties = v
  7060  	return s
  7061  }
  7062  
  7063  // Updated properties for the private DNS namespace.
  7064  type PrivateDnsNamespacePropertiesChange struct {
  7065  	_ struct{} `type:"structure"`
  7066  
  7067  	// Updated DNS properties for the private DNS namespace.
  7068  	//
  7069  	// DnsProperties is a required field
  7070  	DnsProperties *PrivateDnsPropertiesMutableChange `type:"structure" required:"true"`
  7071  }
  7072  
  7073  // String returns the string representation.
  7074  //
  7075  // API parameter values that are decorated as "sensitive" in the API will not
  7076  // be included in the string output. The member name will be present, but the
  7077  // value will be replaced with "sensitive".
  7078  func (s PrivateDnsNamespacePropertiesChange) String() string {
  7079  	return awsutil.Prettify(s)
  7080  }
  7081  
  7082  // GoString returns the string representation.
  7083  //
  7084  // API parameter values that are decorated as "sensitive" in the API will not
  7085  // be included in the string output. The member name will be present, but the
  7086  // value will be replaced with "sensitive".
  7087  func (s PrivateDnsNamespacePropertiesChange) GoString() string {
  7088  	return s.String()
  7089  }
  7090  
  7091  // Validate inspects the fields of the type to determine if they are valid.
  7092  func (s *PrivateDnsNamespacePropertiesChange) Validate() error {
  7093  	invalidParams := request.ErrInvalidParams{Context: "PrivateDnsNamespacePropertiesChange"}
  7094  	if s.DnsProperties == nil {
  7095  		invalidParams.Add(request.NewErrParamRequired("DnsProperties"))
  7096  	}
  7097  	if s.DnsProperties != nil {
  7098  		if err := s.DnsProperties.Validate(); err != nil {
  7099  			invalidParams.AddNested("DnsProperties", err.(request.ErrInvalidParams))
  7100  		}
  7101  	}
  7102  
  7103  	if invalidParams.Len() > 0 {
  7104  		return invalidParams
  7105  	}
  7106  	return nil
  7107  }
  7108  
  7109  // SetDnsProperties sets the DnsProperties field's value.
  7110  func (s *PrivateDnsNamespacePropertiesChange) SetDnsProperties(v *PrivateDnsPropertiesMutableChange) *PrivateDnsNamespacePropertiesChange {
  7111  	s.DnsProperties = v
  7112  	return s
  7113  }
  7114  
  7115  // DNS properties for the private DNS namespace.
  7116  type PrivateDnsPropertiesMutable struct {
  7117  	_ struct{} `type:"structure"`
  7118  
  7119  	// Fields for the Start of Authority (SOA) record for the hosted zone for the
  7120  	// private DNS namespace.
  7121  	//
  7122  	// SOA is a required field
  7123  	SOA *SOA `type:"structure" required:"true"`
  7124  }
  7125  
  7126  // String returns the string representation.
  7127  //
  7128  // API parameter values that are decorated as "sensitive" in the API will not
  7129  // be included in the string output. The member name will be present, but the
  7130  // value will be replaced with "sensitive".
  7131  func (s PrivateDnsPropertiesMutable) String() string {
  7132  	return awsutil.Prettify(s)
  7133  }
  7134  
  7135  // GoString returns the string representation.
  7136  //
  7137  // API parameter values that are decorated as "sensitive" in the API will not
  7138  // be included in the string output. The member name will be present, but the
  7139  // value will be replaced with "sensitive".
  7140  func (s PrivateDnsPropertiesMutable) GoString() string {
  7141  	return s.String()
  7142  }
  7143  
  7144  // Validate inspects the fields of the type to determine if they are valid.
  7145  func (s *PrivateDnsPropertiesMutable) Validate() error {
  7146  	invalidParams := request.ErrInvalidParams{Context: "PrivateDnsPropertiesMutable"}
  7147  	if s.SOA == nil {
  7148  		invalidParams.Add(request.NewErrParamRequired("SOA"))
  7149  	}
  7150  	if s.SOA != nil {
  7151  		if err := s.SOA.Validate(); err != nil {
  7152  			invalidParams.AddNested("SOA", err.(request.ErrInvalidParams))
  7153  		}
  7154  	}
  7155  
  7156  	if invalidParams.Len() > 0 {
  7157  		return invalidParams
  7158  	}
  7159  	return nil
  7160  }
  7161  
  7162  // SetSOA sets the SOA field's value.
  7163  func (s *PrivateDnsPropertiesMutable) SetSOA(v *SOA) *PrivateDnsPropertiesMutable {
  7164  	s.SOA = v
  7165  	return s
  7166  }
  7167  
  7168  // Updated DNS properties for the private DNS namespace.
  7169  type PrivateDnsPropertiesMutableChange struct {
  7170  	_ struct{} `type:"structure"`
  7171  
  7172  	// Updated fields for the Start of Authority (SOA) record for the hosted zone
  7173  	// for the private DNS namespace.
  7174  	//
  7175  	// SOA is a required field
  7176  	SOA *SOAChange `type:"structure" required:"true"`
  7177  }
  7178  
  7179  // String returns the string representation.
  7180  //
  7181  // API parameter values that are decorated as "sensitive" in the API will not
  7182  // be included in the string output. The member name will be present, but the
  7183  // value will be replaced with "sensitive".
  7184  func (s PrivateDnsPropertiesMutableChange) String() string {
  7185  	return awsutil.Prettify(s)
  7186  }
  7187  
  7188  // GoString returns the string representation.
  7189  //
  7190  // API parameter values that are decorated as "sensitive" in the API will not
  7191  // be included in the string output. The member name will be present, but the
  7192  // value will be replaced with "sensitive".
  7193  func (s PrivateDnsPropertiesMutableChange) GoString() string {
  7194  	return s.String()
  7195  }
  7196  
  7197  // Validate inspects the fields of the type to determine if they are valid.
  7198  func (s *PrivateDnsPropertiesMutableChange) Validate() error {
  7199  	invalidParams := request.ErrInvalidParams{Context: "PrivateDnsPropertiesMutableChange"}
  7200  	if s.SOA == nil {
  7201  		invalidParams.Add(request.NewErrParamRequired("SOA"))
  7202  	}
  7203  	if s.SOA != nil {
  7204  		if err := s.SOA.Validate(); err != nil {
  7205  			invalidParams.AddNested("SOA", err.(request.ErrInvalidParams))
  7206  		}
  7207  	}
  7208  
  7209  	if invalidParams.Len() > 0 {
  7210  		return invalidParams
  7211  	}
  7212  	return nil
  7213  }
  7214  
  7215  // SetSOA sets the SOA field's value.
  7216  func (s *PrivateDnsPropertiesMutableChange) SetSOA(v *SOAChange) *PrivateDnsPropertiesMutableChange {
  7217  	s.SOA = v
  7218  	return s
  7219  }
  7220  
  7221  // Updated properties for the public DNS namespace.
  7222  type PublicDnsNamespaceChange struct {
  7223  	_ struct{} `type:"structure"`
  7224  
  7225  	// An updated description for the public DNS namespace.
  7226  	Description *string `type:"string"`
  7227  
  7228  	// Properties to be updated in the public DNS namespace.
  7229  	Properties *PublicDnsNamespacePropertiesChange `type:"structure"`
  7230  }
  7231  
  7232  // String returns the string representation.
  7233  //
  7234  // API parameter values that are decorated as "sensitive" in the API will not
  7235  // be included in the string output. The member name will be present, but the
  7236  // value will be replaced with "sensitive".
  7237  func (s PublicDnsNamespaceChange) String() string {
  7238  	return awsutil.Prettify(s)
  7239  }
  7240  
  7241  // GoString returns the string representation.
  7242  //
  7243  // API parameter values that are decorated as "sensitive" in the API will not
  7244  // be included in the string output. The member name will be present, but the
  7245  // value will be replaced with "sensitive".
  7246  func (s PublicDnsNamespaceChange) GoString() string {
  7247  	return s.String()
  7248  }
  7249  
  7250  // Validate inspects the fields of the type to determine if they are valid.
  7251  func (s *PublicDnsNamespaceChange) Validate() error {
  7252  	invalidParams := request.ErrInvalidParams{Context: "PublicDnsNamespaceChange"}
  7253  	if s.Properties != nil {
  7254  		if err := s.Properties.Validate(); err != nil {
  7255  			invalidParams.AddNested("Properties", err.(request.ErrInvalidParams))
  7256  		}
  7257  	}
  7258  
  7259  	if invalidParams.Len() > 0 {
  7260  		return invalidParams
  7261  	}
  7262  	return nil
  7263  }
  7264  
  7265  // SetDescription sets the Description field's value.
  7266  func (s *PublicDnsNamespaceChange) SetDescription(v string) *PublicDnsNamespaceChange {
  7267  	s.Description = &v
  7268  	return s
  7269  }
  7270  
  7271  // SetProperties sets the Properties field's value.
  7272  func (s *PublicDnsNamespaceChange) SetProperties(v *PublicDnsNamespacePropertiesChange) *PublicDnsNamespaceChange {
  7273  	s.Properties = v
  7274  	return s
  7275  }
  7276  
  7277  // DNS properties for the public DNS namespace.
  7278  type PublicDnsNamespaceProperties struct {
  7279  	_ struct{} `type:"structure"`
  7280  
  7281  	// DNS properties for the public DNS namespace.
  7282  	//
  7283  	// DnsProperties is a required field
  7284  	DnsProperties *PublicDnsPropertiesMutable `type:"structure" required:"true"`
  7285  }
  7286  
  7287  // String returns the string representation.
  7288  //
  7289  // API parameter values that are decorated as "sensitive" in the API will not
  7290  // be included in the string output. The member name will be present, but the
  7291  // value will be replaced with "sensitive".
  7292  func (s PublicDnsNamespaceProperties) String() string {
  7293  	return awsutil.Prettify(s)
  7294  }
  7295  
  7296  // GoString returns the string representation.
  7297  //
  7298  // API parameter values that are decorated as "sensitive" in the API will not
  7299  // be included in the string output. The member name will be present, but the
  7300  // value will be replaced with "sensitive".
  7301  func (s PublicDnsNamespaceProperties) GoString() string {
  7302  	return s.String()
  7303  }
  7304  
  7305  // Validate inspects the fields of the type to determine if they are valid.
  7306  func (s *PublicDnsNamespaceProperties) Validate() error {
  7307  	invalidParams := request.ErrInvalidParams{Context: "PublicDnsNamespaceProperties"}
  7308  	if s.DnsProperties == nil {
  7309  		invalidParams.Add(request.NewErrParamRequired("DnsProperties"))
  7310  	}
  7311  	if s.DnsProperties != nil {
  7312  		if err := s.DnsProperties.Validate(); err != nil {
  7313  			invalidParams.AddNested("DnsProperties", err.(request.ErrInvalidParams))
  7314  		}
  7315  	}
  7316  
  7317  	if invalidParams.Len() > 0 {
  7318  		return invalidParams
  7319  	}
  7320  	return nil
  7321  }
  7322  
  7323  // SetDnsProperties sets the DnsProperties field's value.
  7324  func (s *PublicDnsNamespaceProperties) SetDnsProperties(v *PublicDnsPropertiesMutable) *PublicDnsNamespaceProperties {
  7325  	s.DnsProperties = v
  7326  	return s
  7327  }
  7328  
  7329  // Updated properties for the public DNS namespace.
  7330  type PublicDnsNamespacePropertiesChange struct {
  7331  	_ struct{} `type:"structure"`
  7332  
  7333  	// Updated DNS properties for the hosted zone for the public DNS namespace.
  7334  	//
  7335  	// DnsProperties is a required field
  7336  	DnsProperties *PublicDnsPropertiesMutableChange `type:"structure" required:"true"`
  7337  }
  7338  
  7339  // String returns the string representation.
  7340  //
  7341  // API parameter values that are decorated as "sensitive" in the API will not
  7342  // be included in the string output. The member name will be present, but the
  7343  // value will be replaced with "sensitive".
  7344  func (s PublicDnsNamespacePropertiesChange) String() string {
  7345  	return awsutil.Prettify(s)
  7346  }
  7347  
  7348  // GoString returns the string representation.
  7349  //
  7350  // API parameter values that are decorated as "sensitive" in the API will not
  7351  // be included in the string output. The member name will be present, but the
  7352  // value will be replaced with "sensitive".
  7353  func (s PublicDnsNamespacePropertiesChange) GoString() string {
  7354  	return s.String()
  7355  }
  7356  
  7357  // Validate inspects the fields of the type to determine if they are valid.
  7358  func (s *PublicDnsNamespacePropertiesChange) Validate() error {
  7359  	invalidParams := request.ErrInvalidParams{Context: "PublicDnsNamespacePropertiesChange"}
  7360  	if s.DnsProperties == nil {
  7361  		invalidParams.Add(request.NewErrParamRequired("DnsProperties"))
  7362  	}
  7363  	if s.DnsProperties != nil {
  7364  		if err := s.DnsProperties.Validate(); err != nil {
  7365  			invalidParams.AddNested("DnsProperties", err.(request.ErrInvalidParams))
  7366  		}
  7367  	}
  7368  
  7369  	if invalidParams.Len() > 0 {
  7370  		return invalidParams
  7371  	}
  7372  	return nil
  7373  }
  7374  
  7375  // SetDnsProperties sets the DnsProperties field's value.
  7376  func (s *PublicDnsNamespacePropertiesChange) SetDnsProperties(v *PublicDnsPropertiesMutableChange) *PublicDnsNamespacePropertiesChange {
  7377  	s.DnsProperties = v
  7378  	return s
  7379  }
  7380  
  7381  // DNS properties for the public DNS namespace.
  7382  type PublicDnsPropertiesMutable struct {
  7383  	_ struct{} `type:"structure"`
  7384  
  7385  	// Start of Authority (SOA) record for the hosted zone for the public DNS namespace.
  7386  	//
  7387  	// SOA is a required field
  7388  	SOA *SOA `type:"structure" required:"true"`
  7389  }
  7390  
  7391  // String returns the string representation.
  7392  //
  7393  // API parameter values that are decorated as "sensitive" in the API will not
  7394  // be included in the string output. The member name will be present, but the
  7395  // value will be replaced with "sensitive".
  7396  func (s PublicDnsPropertiesMutable) String() string {
  7397  	return awsutil.Prettify(s)
  7398  }
  7399  
  7400  // GoString returns the string representation.
  7401  //
  7402  // API parameter values that are decorated as "sensitive" in the API will not
  7403  // be included in the string output. The member name will be present, but the
  7404  // value will be replaced with "sensitive".
  7405  func (s PublicDnsPropertiesMutable) GoString() string {
  7406  	return s.String()
  7407  }
  7408  
  7409  // Validate inspects the fields of the type to determine if they are valid.
  7410  func (s *PublicDnsPropertiesMutable) Validate() error {
  7411  	invalidParams := request.ErrInvalidParams{Context: "PublicDnsPropertiesMutable"}
  7412  	if s.SOA == nil {
  7413  		invalidParams.Add(request.NewErrParamRequired("SOA"))
  7414  	}
  7415  	if s.SOA != nil {
  7416  		if err := s.SOA.Validate(); err != nil {
  7417  			invalidParams.AddNested("SOA", err.(request.ErrInvalidParams))
  7418  		}
  7419  	}
  7420  
  7421  	if invalidParams.Len() > 0 {
  7422  		return invalidParams
  7423  	}
  7424  	return nil
  7425  }
  7426  
  7427  // SetSOA sets the SOA field's value.
  7428  func (s *PublicDnsPropertiesMutable) SetSOA(v *SOA) *PublicDnsPropertiesMutable {
  7429  	s.SOA = v
  7430  	return s
  7431  }
  7432  
  7433  // Updated DNS properties for the public DNS namespace.
  7434  type PublicDnsPropertiesMutableChange struct {
  7435  	_ struct{} `type:"structure"`
  7436  
  7437  	// Updated fields for the Start of Authority (SOA) record for the hosted zone
  7438  	// for the public DNS namespace.
  7439  	//
  7440  	// SOA is a required field
  7441  	SOA *SOAChange `type:"structure" required:"true"`
  7442  }
  7443  
  7444  // String returns the string representation.
  7445  //
  7446  // API parameter values that are decorated as "sensitive" in the API will not
  7447  // be included in the string output. The member name will be present, but the
  7448  // value will be replaced with "sensitive".
  7449  func (s PublicDnsPropertiesMutableChange) String() string {
  7450  	return awsutil.Prettify(s)
  7451  }
  7452  
  7453  // GoString returns the string representation.
  7454  //
  7455  // API parameter values that are decorated as "sensitive" in the API will not
  7456  // be included in the string output. The member name will be present, but the
  7457  // value will be replaced with "sensitive".
  7458  func (s PublicDnsPropertiesMutableChange) GoString() string {
  7459  	return s.String()
  7460  }
  7461  
  7462  // Validate inspects the fields of the type to determine if they are valid.
  7463  func (s *PublicDnsPropertiesMutableChange) Validate() error {
  7464  	invalidParams := request.ErrInvalidParams{Context: "PublicDnsPropertiesMutableChange"}
  7465  	if s.SOA == nil {
  7466  		invalidParams.Add(request.NewErrParamRequired("SOA"))
  7467  	}
  7468  	if s.SOA != nil {
  7469  		if err := s.SOA.Validate(); err != nil {
  7470  			invalidParams.AddNested("SOA", err.(request.ErrInvalidParams))
  7471  		}
  7472  	}
  7473  
  7474  	if invalidParams.Len() > 0 {
  7475  		return invalidParams
  7476  	}
  7477  	return nil
  7478  }
  7479  
  7480  // SetSOA sets the SOA field's value.
  7481  func (s *PublicDnsPropertiesMutableChange) SetSOA(v *SOAChange) *PublicDnsPropertiesMutableChange {
  7482  	s.SOA = v
  7483  	return s
  7484  }
  7485  
  7486  type RegisterInstanceInput struct {
  7487  	_ struct{} `type:"structure"`
  7488  
  7489  	// A string map that contains the following information for the service that
  7490  	// you specify in ServiceId:
  7491  	//
  7492  	//    * The attributes that apply to the records that are defined in the service.
  7493  	//
  7494  	//    * For each attribute, the applicable value.
  7495  	//
  7496  	// Supported attribute keys include the following:
  7497  	//
  7498  	// AWS_ALIAS_DNS_NAME
  7499  	//
  7500  	// If you want Cloud Map to create an Amazon Route 53 alias record that routes
  7501  	// traffic to an Elastic Load Balancing load balancer, specify the DNS name
  7502  	// that's associated with the load balancer. For information about how to get
  7503  	// the DNS name, see "DNSName" in the topic AliasTarget (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html)
  7504  	// in the Route 53 API Reference.
  7505  	//
  7506  	// Note the following:
  7507  	//
  7508  	//    * The configuration for the service that's specified by ServiceId must
  7509  	//    include settings for an A record, an AAAA record, or both.
  7510  	//
  7511  	//    * In the service that's specified by ServiceId, the value of RoutingPolicy
  7512  	//    must be WEIGHTED.
  7513  	//
  7514  	//    * If the service that's specified by ServiceId includes HealthCheckConfig
  7515  	//    settings, Cloud Map will create the Route 53 health check, but it doesn't
  7516  	//    associate the health check with the alias record.
  7517  	//
  7518  	//    * Auto naming currently doesn't support creating alias records that route
  7519  	//    traffic to Amazon Web Services resources other than Elastic Load Balancing
  7520  	//    load balancers.
  7521  	//
  7522  	//    * If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values
  7523  	//    for any of the AWS_INSTANCE attributes.
  7524  	//
  7525  	// AWS_EC2_INSTANCE_ID
  7526  	//
  7527  	// HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the
  7528  	// AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute
  7529  	// that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID
  7530  	// attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled
  7531  	// out with the primary private IPv4 address.
  7532  	//
  7533  	// AWS_INIT_HEALTH_STATUS
  7534  	//
  7535  	// If the service configuration includes HealthCheckCustomConfig, you can optionally
  7536  	// use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health
  7537  	// check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS,
  7538  	// the initial status is HEALTHY.
  7539  	//
  7540  	// AWS_INSTANCE_CNAME
  7541  	//
  7542  	// If the service configuration includes a CNAME record, the domain name that
  7543  	// you want Route 53 to return in response to DNS queries (for example, example.com).
  7544  	//
  7545  	// This value is required if the service specified by ServiceId includes settings
  7546  	// for an CNAME record.
  7547  	//
  7548  	// AWS_INSTANCE_IPV4
  7549  	//
  7550  	// If the service configuration includes an A record, the IPv4 address that
  7551  	// you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).
  7552  	//
  7553  	// This value is required if the service specified by ServiceId includes settings
  7554  	// for an A record. If the service includes settings for an SRV record, you
  7555  	// must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.
  7556  	//
  7557  	// AWS_INSTANCE_IPV6
  7558  	//
  7559  	// If the service configuration includes an AAAA record, the IPv6 address that
  7560  	// you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).
  7561  	//
  7562  	// This value is required if the service specified by ServiceId includes settings
  7563  	// for an AAAA record. If the service includes settings for an SRV record, you
  7564  	// must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.
  7565  	//
  7566  	// AWS_INSTANCE_PORT
  7567  	//
  7568  	// If the service includes an SRV record, the value that you want Route 53 to
  7569  	// return for the port.
  7570  	//
  7571  	// If the service includes HealthCheckConfig, the port on the endpoint that
  7572  	// you want Route 53 to send requests to.
  7573  	//
  7574  	// This value is required if you specified settings for an SRV record or a Route
  7575  	// 53 health check when you created the service.
  7576  	//
  7577  	// Custom attributes
  7578  	//
  7579  	// You can add up to 30 custom attributes. For each key-value pair, the maximum
  7580  	// length of the attribute name is 255 characters, and the maximum length of
  7581  	// the attribute value is 1,024 characters. The total size of all provided attributes
  7582  	// (sum of all keys and values) must not exceed 5,000 characters.
  7583  	//
  7584  	// Attributes is a required field
  7585  	Attributes map[string]*string `type:"map" required:"true"`
  7586  
  7587  	// A unique string that identifies the request and that allows failed RegisterInstance
  7588  	// requests to be retried without the risk of executing the operation twice.
  7589  	// You must use a unique CreatorRequestId string every time you submit a RegisterInstance
  7590  	// request if you're registering additional instances for the same namespace
  7591  	// and service. CreatorRequestId can be any unique string (for example, a date/time
  7592  	// stamp).
  7593  	CreatorRequestId *string `type:"string" idempotencyToken:"true"`
  7594  
  7595  	// An identifier that you want to associate with the instance. Note the following:
  7596  	//
  7597  	//    * If the service that's specified by ServiceId includes settings for an
  7598  	//    SRV record, the value of InstanceId is automatically included as part
  7599  	//    of the value for the SRV record. For more information, see DnsRecord >
  7600  	//    Type (https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type).
  7601  	//
  7602  	//    * You can use this value to update an existing instance.
  7603  	//
  7604  	//    * To register a new instance, you must specify a value that's unique among
  7605  	//    instances that you register by using the same service.
  7606  	//
  7607  	//    * If you specify an existing InstanceId and ServiceId, Cloud Map updates
  7608  	//    the existing DNS records, if any. If there's also an existing health check,
  7609  	//    Cloud Map deletes the old health check and creates a new one. The health
  7610  	//    check isn't deleted immediately, so it will still appear for a while if
  7611  	//    you submit a ListHealthChecks request, for example.
  7612  	//
  7613  	// InstanceId is a required field
  7614  	InstanceId *string `type:"string" required:"true"`
  7615  
  7616  	// The ID of the service that you want to use for settings for the instance.
  7617  	//
  7618  	// ServiceId is a required field
  7619  	ServiceId *string `type:"string" required:"true"`
  7620  }
  7621  
  7622  // String returns the string representation.
  7623  //
  7624  // API parameter values that are decorated as "sensitive" in the API will not
  7625  // be included in the string output. The member name will be present, but the
  7626  // value will be replaced with "sensitive".
  7627  func (s RegisterInstanceInput) String() string {
  7628  	return awsutil.Prettify(s)
  7629  }
  7630  
  7631  // GoString returns the string representation.
  7632  //
  7633  // API parameter values that are decorated as "sensitive" in the API will not
  7634  // be included in the string output. The member name will be present, but the
  7635  // value will be replaced with "sensitive".
  7636  func (s RegisterInstanceInput) GoString() string {
  7637  	return s.String()
  7638  }
  7639  
  7640  // Validate inspects the fields of the type to determine if they are valid.
  7641  func (s *RegisterInstanceInput) Validate() error {
  7642  	invalidParams := request.ErrInvalidParams{Context: "RegisterInstanceInput"}
  7643  	if s.Attributes == nil {
  7644  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
  7645  	}
  7646  	if s.InstanceId == nil {
  7647  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
  7648  	}
  7649  	if s.ServiceId == nil {
  7650  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  7651  	}
  7652  
  7653  	if invalidParams.Len() > 0 {
  7654  		return invalidParams
  7655  	}
  7656  	return nil
  7657  }
  7658  
  7659  // SetAttributes sets the Attributes field's value.
  7660  func (s *RegisterInstanceInput) SetAttributes(v map[string]*string) *RegisterInstanceInput {
  7661  	s.Attributes = v
  7662  	return s
  7663  }
  7664  
  7665  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7666  func (s *RegisterInstanceInput) SetCreatorRequestId(v string) *RegisterInstanceInput {
  7667  	s.CreatorRequestId = &v
  7668  	return s
  7669  }
  7670  
  7671  // SetInstanceId sets the InstanceId field's value.
  7672  func (s *RegisterInstanceInput) SetInstanceId(v string) *RegisterInstanceInput {
  7673  	s.InstanceId = &v
  7674  	return s
  7675  }
  7676  
  7677  // SetServiceId sets the ServiceId field's value.
  7678  func (s *RegisterInstanceInput) SetServiceId(v string) *RegisterInstanceInput {
  7679  	s.ServiceId = &v
  7680  	return s
  7681  }
  7682  
  7683  type RegisterInstanceOutput struct {
  7684  	_ struct{} `type:"structure"`
  7685  
  7686  	// A value that you can use to determine whether the request completed successfully.
  7687  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  7688  	OperationId *string `type:"string"`
  7689  }
  7690  
  7691  // String returns the string representation.
  7692  //
  7693  // API parameter values that are decorated as "sensitive" in the API will not
  7694  // be included in the string output. The member name will be present, but the
  7695  // value will be replaced with "sensitive".
  7696  func (s RegisterInstanceOutput) String() string {
  7697  	return awsutil.Prettify(s)
  7698  }
  7699  
  7700  // GoString returns the string representation.
  7701  //
  7702  // API parameter values that are decorated as "sensitive" in the API will not
  7703  // be included in the string output. The member name will be present, but the
  7704  // value will be replaced with "sensitive".
  7705  func (s RegisterInstanceOutput) GoString() string {
  7706  	return s.String()
  7707  }
  7708  
  7709  // SetOperationId sets the OperationId field's value.
  7710  func (s *RegisterInstanceOutput) SetOperationId(v string) *RegisterInstanceOutput {
  7711  	s.OperationId = &v
  7712  	return s
  7713  }
  7714  
  7715  // The operation can't be completed because you've reached the quota for the
  7716  // number of requests. For more information, see Cloud Map API request throttling
  7717  // quota (https://docs.aws.amazon.com/cloud-map/latest/dg/throttling.html) in
  7718  // the Cloud Map Developer Guide.
  7719  type RequestLimitExceeded struct {
  7720  	_            struct{}                  `type:"structure"`
  7721  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7722  
  7723  	Message_ *string `locationName:"Message" type:"string"`
  7724  }
  7725  
  7726  // String returns the string representation.
  7727  //
  7728  // API parameter values that are decorated as "sensitive" in the API will not
  7729  // be included in the string output. The member name will be present, but the
  7730  // value will be replaced with "sensitive".
  7731  func (s RequestLimitExceeded) String() string {
  7732  	return awsutil.Prettify(s)
  7733  }
  7734  
  7735  // GoString returns the string representation.
  7736  //
  7737  // API parameter values that are decorated as "sensitive" in the API will not
  7738  // be included in the string output. The member name will be present, but the
  7739  // value will be replaced with "sensitive".
  7740  func (s RequestLimitExceeded) GoString() string {
  7741  	return s.String()
  7742  }
  7743  
  7744  func newErrorRequestLimitExceeded(v protocol.ResponseMetadata) error {
  7745  	return &RequestLimitExceeded{
  7746  		RespMetadata: v,
  7747  	}
  7748  }
  7749  
  7750  // Code returns the exception type name.
  7751  func (s *RequestLimitExceeded) Code() string {
  7752  	return "RequestLimitExceeded"
  7753  }
  7754  
  7755  // Message returns the exception's message.
  7756  func (s *RequestLimitExceeded) Message() string {
  7757  	if s.Message_ != nil {
  7758  		return *s.Message_
  7759  	}
  7760  	return ""
  7761  }
  7762  
  7763  // OrigErr always returns nil, satisfies awserr.Error interface.
  7764  func (s *RequestLimitExceeded) OrigErr() error {
  7765  	return nil
  7766  }
  7767  
  7768  func (s *RequestLimitExceeded) Error() string {
  7769  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7770  }
  7771  
  7772  // Status code returns the HTTP status code for the request's response error.
  7773  func (s *RequestLimitExceeded) StatusCode() int {
  7774  	return s.RespMetadata.StatusCode
  7775  }
  7776  
  7777  // RequestID returns the service's response RequestID for request.
  7778  func (s *RequestLimitExceeded) RequestID() string {
  7779  	return s.RespMetadata.RequestID
  7780  }
  7781  
  7782  // The specified resource can't be deleted because it contains other resources.
  7783  // For example, you can't delete a service that contains any instances.
  7784  type ResourceInUse struct {
  7785  	_            struct{}                  `type:"structure"`
  7786  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7787  
  7788  	Message_ *string `locationName:"Message" type:"string"`
  7789  }
  7790  
  7791  // String returns the string representation.
  7792  //
  7793  // API parameter values that are decorated as "sensitive" in the API will not
  7794  // be included in the string output. The member name will be present, but the
  7795  // value will be replaced with "sensitive".
  7796  func (s ResourceInUse) String() string {
  7797  	return awsutil.Prettify(s)
  7798  }
  7799  
  7800  // GoString returns the string representation.
  7801  //
  7802  // API parameter values that are decorated as "sensitive" in the API will not
  7803  // be included in the string output. The member name will be present, but the
  7804  // value will be replaced with "sensitive".
  7805  func (s ResourceInUse) GoString() string {
  7806  	return s.String()
  7807  }
  7808  
  7809  func newErrorResourceInUse(v protocol.ResponseMetadata) error {
  7810  	return &ResourceInUse{
  7811  		RespMetadata: v,
  7812  	}
  7813  }
  7814  
  7815  // Code returns the exception type name.
  7816  func (s *ResourceInUse) Code() string {
  7817  	return "ResourceInUse"
  7818  }
  7819  
  7820  // Message returns the exception's message.
  7821  func (s *ResourceInUse) Message() string {
  7822  	if s.Message_ != nil {
  7823  		return *s.Message_
  7824  	}
  7825  	return ""
  7826  }
  7827  
  7828  // OrigErr always returns nil, satisfies awserr.Error interface.
  7829  func (s *ResourceInUse) OrigErr() error {
  7830  	return nil
  7831  }
  7832  
  7833  func (s *ResourceInUse) Error() string {
  7834  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7835  }
  7836  
  7837  // Status code returns the HTTP status code for the request's response error.
  7838  func (s *ResourceInUse) StatusCode() int {
  7839  	return s.RespMetadata.StatusCode
  7840  }
  7841  
  7842  // RequestID returns the service's response RequestID for request.
  7843  func (s *ResourceInUse) RequestID() string {
  7844  	return s.RespMetadata.RequestID
  7845  }
  7846  
  7847  // The resource can't be created because you've reached the quota on the number
  7848  // of resources.
  7849  type ResourceLimitExceeded struct {
  7850  	_            struct{}                  `type:"structure"`
  7851  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7852  
  7853  	Message_ *string `locationName:"Message" type:"string"`
  7854  }
  7855  
  7856  // String returns the string representation.
  7857  //
  7858  // API parameter values that are decorated as "sensitive" in the API will not
  7859  // be included in the string output. The member name will be present, but the
  7860  // value will be replaced with "sensitive".
  7861  func (s ResourceLimitExceeded) String() string {
  7862  	return awsutil.Prettify(s)
  7863  }
  7864  
  7865  // GoString returns the string representation.
  7866  //
  7867  // API parameter values that are decorated as "sensitive" in the API will not
  7868  // be included in the string output. The member name will be present, but the
  7869  // value will be replaced with "sensitive".
  7870  func (s ResourceLimitExceeded) GoString() string {
  7871  	return s.String()
  7872  }
  7873  
  7874  func newErrorResourceLimitExceeded(v protocol.ResponseMetadata) error {
  7875  	return &ResourceLimitExceeded{
  7876  		RespMetadata: v,
  7877  	}
  7878  }
  7879  
  7880  // Code returns the exception type name.
  7881  func (s *ResourceLimitExceeded) Code() string {
  7882  	return "ResourceLimitExceeded"
  7883  }
  7884  
  7885  // Message returns the exception's message.
  7886  func (s *ResourceLimitExceeded) Message() string {
  7887  	if s.Message_ != nil {
  7888  		return *s.Message_
  7889  	}
  7890  	return ""
  7891  }
  7892  
  7893  // OrigErr always returns nil, satisfies awserr.Error interface.
  7894  func (s *ResourceLimitExceeded) OrigErr() error {
  7895  	return nil
  7896  }
  7897  
  7898  func (s *ResourceLimitExceeded) Error() string {
  7899  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7900  }
  7901  
  7902  // Status code returns the HTTP status code for the request's response error.
  7903  func (s *ResourceLimitExceeded) StatusCode() int {
  7904  	return s.RespMetadata.StatusCode
  7905  }
  7906  
  7907  // RequestID returns the service's response RequestID for request.
  7908  func (s *ResourceLimitExceeded) RequestID() string {
  7909  	return s.RespMetadata.RequestID
  7910  }
  7911  
  7912  // The operation can't be completed because the resource was not found.
  7913  type ResourceNotFoundException struct {
  7914  	_            struct{}                  `type:"structure"`
  7915  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7916  
  7917  	Message_ *string `locationName:"Message" type:"string"`
  7918  }
  7919  
  7920  // String returns the string representation.
  7921  //
  7922  // API parameter values that are decorated as "sensitive" in the API will not
  7923  // be included in the string output. The member name will be present, but the
  7924  // value will be replaced with "sensitive".
  7925  func (s ResourceNotFoundException) String() string {
  7926  	return awsutil.Prettify(s)
  7927  }
  7928  
  7929  // GoString returns the string representation.
  7930  //
  7931  // API parameter values that are decorated as "sensitive" in the API will not
  7932  // be included in the string output. The member name will be present, but the
  7933  // value will be replaced with "sensitive".
  7934  func (s ResourceNotFoundException) GoString() string {
  7935  	return s.String()
  7936  }
  7937  
  7938  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  7939  	return &ResourceNotFoundException{
  7940  		RespMetadata: v,
  7941  	}
  7942  }
  7943  
  7944  // Code returns the exception type name.
  7945  func (s *ResourceNotFoundException) Code() string {
  7946  	return "ResourceNotFoundException"
  7947  }
  7948  
  7949  // Message returns the exception's message.
  7950  func (s *ResourceNotFoundException) Message() string {
  7951  	if s.Message_ != nil {
  7952  		return *s.Message_
  7953  	}
  7954  	return ""
  7955  }
  7956  
  7957  // OrigErr always returns nil, satisfies awserr.Error interface.
  7958  func (s *ResourceNotFoundException) OrigErr() error {
  7959  	return nil
  7960  }
  7961  
  7962  func (s *ResourceNotFoundException) Error() string {
  7963  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7964  }
  7965  
  7966  // Status code returns the HTTP status code for the request's response error.
  7967  func (s *ResourceNotFoundException) StatusCode() int {
  7968  	return s.RespMetadata.StatusCode
  7969  }
  7970  
  7971  // RequestID returns the service's response RequestID for request.
  7972  func (s *ResourceNotFoundException) RequestID() string {
  7973  	return s.RespMetadata.RequestID
  7974  }
  7975  
  7976  // Start of Authority (SOA) properties for a public or private DNS namespace.
  7977  type SOA struct {
  7978  	_ struct{} `type:"structure"`
  7979  
  7980  	// The time to live (TTL) for purposes of negative caching.
  7981  	//
  7982  	// TTL is a required field
  7983  	TTL *int64 `type:"long" required:"true"`
  7984  }
  7985  
  7986  // String returns the string representation.
  7987  //
  7988  // API parameter values that are decorated as "sensitive" in the API will not
  7989  // be included in the string output. The member name will be present, but the
  7990  // value will be replaced with "sensitive".
  7991  func (s SOA) String() string {
  7992  	return awsutil.Prettify(s)
  7993  }
  7994  
  7995  // GoString returns the string representation.
  7996  //
  7997  // API parameter values that are decorated as "sensitive" in the API will not
  7998  // be included in the string output. The member name will be present, but the
  7999  // value will be replaced with "sensitive".
  8000  func (s SOA) GoString() string {
  8001  	return s.String()
  8002  }
  8003  
  8004  // Validate inspects the fields of the type to determine if they are valid.
  8005  func (s *SOA) Validate() error {
  8006  	invalidParams := request.ErrInvalidParams{Context: "SOA"}
  8007  	if s.TTL == nil {
  8008  		invalidParams.Add(request.NewErrParamRequired("TTL"))
  8009  	}
  8010  
  8011  	if invalidParams.Len() > 0 {
  8012  		return invalidParams
  8013  	}
  8014  	return nil
  8015  }
  8016  
  8017  // SetTTL sets the TTL field's value.
  8018  func (s *SOA) SetTTL(v int64) *SOA {
  8019  	s.TTL = &v
  8020  	return s
  8021  }
  8022  
  8023  // Updated Start of Authority (SOA) properties for a public or private DNS namespace.
  8024  type SOAChange struct {
  8025  	_ struct{} `type:"structure"`
  8026  
  8027  	// The updated time to live (TTL) for purposes of negative caching.
  8028  	//
  8029  	// TTL is a required field
  8030  	TTL *int64 `type:"long" required:"true"`
  8031  }
  8032  
  8033  // String returns the string representation.
  8034  //
  8035  // API parameter values that are decorated as "sensitive" in the API will not
  8036  // be included in the string output. The member name will be present, but the
  8037  // value will be replaced with "sensitive".
  8038  func (s SOAChange) String() string {
  8039  	return awsutil.Prettify(s)
  8040  }
  8041  
  8042  // GoString returns the string representation.
  8043  //
  8044  // API parameter values that are decorated as "sensitive" in the API will not
  8045  // be included in the string output. The member name will be present, but the
  8046  // value will be replaced with "sensitive".
  8047  func (s SOAChange) GoString() string {
  8048  	return s.String()
  8049  }
  8050  
  8051  // Validate inspects the fields of the type to determine if they are valid.
  8052  func (s *SOAChange) Validate() error {
  8053  	invalidParams := request.ErrInvalidParams{Context: "SOAChange"}
  8054  	if s.TTL == nil {
  8055  		invalidParams.Add(request.NewErrParamRequired("TTL"))
  8056  	}
  8057  
  8058  	if invalidParams.Len() > 0 {
  8059  		return invalidParams
  8060  	}
  8061  	return nil
  8062  }
  8063  
  8064  // SetTTL sets the TTL field's value.
  8065  func (s *SOAChange) SetTTL(v int64) *SOAChange {
  8066  	s.TTL = &v
  8067  	return s
  8068  }
  8069  
  8070  // A complex type that contains information about the specified service.
  8071  type Service struct {
  8072  	_ struct{} `type:"structure"`
  8073  
  8074  	// The Amazon Resource Name (ARN) that Cloud Map assigns to the service when
  8075  	// you create it.
  8076  	Arn *string `type:"string"`
  8077  
  8078  	// The date and time that the service was created, in Unix format and Coordinated
  8079  	// Universal Time (UTC). The value of CreateDate is accurate to milliseconds.
  8080  	// For example, the value 1516925490.087 represents Friday, January 26, 2018
  8081  	// 12:11:30.087 AM.
  8082  	CreateDate *time.Time `type:"timestamp"`
  8083  
  8084  	// A unique string that identifies the request and that allows failed requests
  8085  	// to be retried without the risk of running the operation twice. CreatorRequestId
  8086  	// can be any unique string (for example, a date/timestamp).
  8087  	CreatorRequestId *string `type:"string"`
  8088  
  8089  	// The description of the service.
  8090  	Description *string `type:"string"`
  8091  
  8092  	// A complex type that contains information about the Route 53 DNS records that
  8093  	// you want Cloud Map to create when you register an instance.
  8094  	DnsConfig *DnsConfig `type:"structure"`
  8095  
  8096  	// Public DNS and HTTP namespaces only. A complex type that contains settings
  8097  	// for an optional health check. If you specify settings for a health check,
  8098  	// Cloud Map associates the health check with the records that you specify in
  8099  	// DnsConfig.
  8100  	//
  8101  	// For information about the charges for health checks, see Amazon Route 53
  8102  	// Pricing (http://aws.amazon.com/route53/pricing/).
  8103  	HealthCheckConfig *HealthCheckConfig `type:"structure"`
  8104  
  8105  	// A complex type that contains information about an optional custom health
  8106  	// check.
  8107  	//
  8108  	// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  8109  	// or HealthCheckConfig but not both.
  8110  	HealthCheckCustomConfig *HealthCheckCustomConfig `type:"structure"`
  8111  
  8112  	// The ID that Cloud Map assigned to the service when you created it.
  8113  	Id *string `type:"string"`
  8114  
  8115  	// The number of instances that are currently associated with the service. Instances
  8116  	// that were previously associated with the service but that are deleted aren't
  8117  	// included in the count. The count might not reflect pending registrations
  8118  	// and deregistrations.
  8119  	InstanceCount *int64 `type:"integer"`
  8120  
  8121  	// The name of the service.
  8122  	Name *string `type:"string"`
  8123  
  8124  	// The ID of the namespace that was used to create the service.
  8125  	NamespaceId *string `type:"string"`
  8126  
  8127  	// Describes the systems that can be used to discover the service instances.
  8128  	//
  8129  	// DNS_HTTP
  8130  	//
  8131  	// The service instances can be discovered using either DNS queries or the DiscoverInstances
  8132  	// API operation.
  8133  	//
  8134  	// HTTP
  8135  	//
  8136  	// The service instances can only be discovered using the DiscoverInstances
  8137  	// API operation.
  8138  	//
  8139  	// DNS
  8140  	//
  8141  	// Reserved.
  8142  	Type *string `type:"string" enum:"ServiceType"`
  8143  }
  8144  
  8145  // String returns the string representation.
  8146  //
  8147  // API parameter values that are decorated as "sensitive" in the API will not
  8148  // be included in the string output. The member name will be present, but the
  8149  // value will be replaced with "sensitive".
  8150  func (s Service) String() string {
  8151  	return awsutil.Prettify(s)
  8152  }
  8153  
  8154  // GoString returns the string representation.
  8155  //
  8156  // API parameter values that are decorated as "sensitive" in the API will not
  8157  // be included in the string output. The member name will be present, but the
  8158  // value will be replaced with "sensitive".
  8159  func (s Service) GoString() string {
  8160  	return s.String()
  8161  }
  8162  
  8163  // SetArn sets the Arn field's value.
  8164  func (s *Service) SetArn(v string) *Service {
  8165  	s.Arn = &v
  8166  	return s
  8167  }
  8168  
  8169  // SetCreateDate sets the CreateDate field's value.
  8170  func (s *Service) SetCreateDate(v time.Time) *Service {
  8171  	s.CreateDate = &v
  8172  	return s
  8173  }
  8174  
  8175  // SetCreatorRequestId sets the CreatorRequestId field's value.
  8176  func (s *Service) SetCreatorRequestId(v string) *Service {
  8177  	s.CreatorRequestId = &v
  8178  	return s
  8179  }
  8180  
  8181  // SetDescription sets the Description field's value.
  8182  func (s *Service) SetDescription(v string) *Service {
  8183  	s.Description = &v
  8184  	return s
  8185  }
  8186  
  8187  // SetDnsConfig sets the DnsConfig field's value.
  8188  func (s *Service) SetDnsConfig(v *DnsConfig) *Service {
  8189  	s.DnsConfig = v
  8190  	return s
  8191  }
  8192  
  8193  // SetHealthCheckConfig sets the HealthCheckConfig field's value.
  8194  func (s *Service) SetHealthCheckConfig(v *HealthCheckConfig) *Service {
  8195  	s.HealthCheckConfig = v
  8196  	return s
  8197  }
  8198  
  8199  // SetHealthCheckCustomConfig sets the HealthCheckCustomConfig field's value.
  8200  func (s *Service) SetHealthCheckCustomConfig(v *HealthCheckCustomConfig) *Service {
  8201  	s.HealthCheckCustomConfig = v
  8202  	return s
  8203  }
  8204  
  8205  // SetId sets the Id field's value.
  8206  func (s *Service) SetId(v string) *Service {
  8207  	s.Id = &v
  8208  	return s
  8209  }
  8210  
  8211  // SetInstanceCount sets the InstanceCount field's value.
  8212  func (s *Service) SetInstanceCount(v int64) *Service {
  8213  	s.InstanceCount = &v
  8214  	return s
  8215  }
  8216  
  8217  // SetName sets the Name field's value.
  8218  func (s *Service) SetName(v string) *Service {
  8219  	s.Name = &v
  8220  	return s
  8221  }
  8222  
  8223  // SetNamespaceId sets the NamespaceId field's value.
  8224  func (s *Service) SetNamespaceId(v string) *Service {
  8225  	s.NamespaceId = &v
  8226  	return s
  8227  }
  8228  
  8229  // SetType sets the Type field's value.
  8230  func (s *Service) SetType(v string) *Service {
  8231  	s.Type = &v
  8232  	return s
  8233  }
  8234  
  8235  // The service can't be created because a service with the same name already
  8236  // exists.
  8237  type ServiceAlreadyExists struct {
  8238  	_            struct{}                  `type:"structure"`
  8239  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8240  
  8241  	// The CreatorRequestId that was used to create the service.
  8242  	CreatorRequestId *string `type:"string"`
  8243  
  8244  	Message_ *string `locationName:"Message" type:"string"`
  8245  
  8246  	// The ID of the existing service.
  8247  	ServiceId *string `type:"string"`
  8248  }
  8249  
  8250  // String returns the string representation.
  8251  //
  8252  // API parameter values that are decorated as "sensitive" in the API will not
  8253  // be included in the string output. The member name will be present, but the
  8254  // value will be replaced with "sensitive".
  8255  func (s ServiceAlreadyExists) String() string {
  8256  	return awsutil.Prettify(s)
  8257  }
  8258  
  8259  // GoString returns the string representation.
  8260  //
  8261  // API parameter values that are decorated as "sensitive" in the API will not
  8262  // be included in the string output. The member name will be present, but the
  8263  // value will be replaced with "sensitive".
  8264  func (s ServiceAlreadyExists) GoString() string {
  8265  	return s.String()
  8266  }
  8267  
  8268  func newErrorServiceAlreadyExists(v protocol.ResponseMetadata) error {
  8269  	return &ServiceAlreadyExists{
  8270  		RespMetadata: v,
  8271  	}
  8272  }
  8273  
  8274  // Code returns the exception type name.
  8275  func (s *ServiceAlreadyExists) Code() string {
  8276  	return "ServiceAlreadyExists"
  8277  }
  8278  
  8279  // Message returns the exception's message.
  8280  func (s *ServiceAlreadyExists) Message() string {
  8281  	if s.Message_ != nil {
  8282  		return *s.Message_
  8283  	}
  8284  	return ""
  8285  }
  8286  
  8287  // OrigErr always returns nil, satisfies awserr.Error interface.
  8288  func (s *ServiceAlreadyExists) OrigErr() error {
  8289  	return nil
  8290  }
  8291  
  8292  func (s *ServiceAlreadyExists) Error() string {
  8293  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8294  }
  8295  
  8296  // Status code returns the HTTP status code for the request's response error.
  8297  func (s *ServiceAlreadyExists) StatusCode() int {
  8298  	return s.RespMetadata.StatusCode
  8299  }
  8300  
  8301  // RequestID returns the service's response RequestID for request.
  8302  func (s *ServiceAlreadyExists) RequestID() string {
  8303  	return s.RespMetadata.RequestID
  8304  }
  8305  
  8306  // A complex type that contains changes to an existing service.
  8307  type ServiceChange struct {
  8308  	_ struct{} `type:"structure"`
  8309  
  8310  	// A description for the service.
  8311  	Description *string `type:"string"`
  8312  
  8313  	// Information about the Route 53 DNS records that you want Cloud Map to create
  8314  	// when you register an instance.
  8315  	DnsConfig *DnsConfigChange `type:"structure"`
  8316  
  8317  	// Public DNS and HTTP namespaces only. Settings for an optional health check.
  8318  	// If you specify settings for a health check, Cloud Map associates the health
  8319  	// check with the records that you specify in DnsConfig.
  8320  	HealthCheckConfig *HealthCheckConfig `type:"structure"`
  8321  }
  8322  
  8323  // String returns the string representation.
  8324  //
  8325  // API parameter values that are decorated as "sensitive" in the API will not
  8326  // be included in the string output. The member name will be present, but the
  8327  // value will be replaced with "sensitive".
  8328  func (s ServiceChange) String() string {
  8329  	return awsutil.Prettify(s)
  8330  }
  8331  
  8332  // GoString returns the string representation.
  8333  //
  8334  // API parameter values that are decorated as "sensitive" in the API will not
  8335  // be included in the string output. The member name will be present, but the
  8336  // value will be replaced with "sensitive".
  8337  func (s ServiceChange) GoString() string {
  8338  	return s.String()
  8339  }
  8340  
  8341  // Validate inspects the fields of the type to determine if they are valid.
  8342  func (s *ServiceChange) Validate() error {
  8343  	invalidParams := request.ErrInvalidParams{Context: "ServiceChange"}
  8344  	if s.DnsConfig != nil {
  8345  		if err := s.DnsConfig.Validate(); err != nil {
  8346  			invalidParams.AddNested("DnsConfig", err.(request.ErrInvalidParams))
  8347  		}
  8348  	}
  8349  	if s.HealthCheckConfig != nil {
  8350  		if err := s.HealthCheckConfig.Validate(); err != nil {
  8351  			invalidParams.AddNested("HealthCheckConfig", err.(request.ErrInvalidParams))
  8352  		}
  8353  	}
  8354  
  8355  	if invalidParams.Len() > 0 {
  8356  		return invalidParams
  8357  	}
  8358  	return nil
  8359  }
  8360  
  8361  // SetDescription sets the Description field's value.
  8362  func (s *ServiceChange) SetDescription(v string) *ServiceChange {
  8363  	s.Description = &v
  8364  	return s
  8365  }
  8366  
  8367  // SetDnsConfig sets the DnsConfig field's value.
  8368  func (s *ServiceChange) SetDnsConfig(v *DnsConfigChange) *ServiceChange {
  8369  	s.DnsConfig = v
  8370  	return s
  8371  }
  8372  
  8373  // SetHealthCheckConfig sets the HealthCheckConfig field's value.
  8374  func (s *ServiceChange) SetHealthCheckConfig(v *HealthCheckConfig) *ServiceChange {
  8375  	s.HealthCheckConfig = v
  8376  	return s
  8377  }
  8378  
  8379  // A complex type that lets you specify the namespaces that you want to list
  8380  // services for.
  8381  type ServiceFilter struct {
  8382  	_ struct{} `type:"structure"`
  8383  
  8384  	// The operator that you want to use to determine whether a service is returned
  8385  	// by ListServices. Valid values for Condition include the following:
  8386  	//
  8387  	//    * EQ: When you specify EQ, specify one namespace ID for Values. EQ is
  8388  	//    the default condition and can be omitted.
  8389  	//
  8390  	//    * IN: When you specify IN, specify a list of the IDs for the namespaces
  8391  	//    that you want ListServices to return a list of services for.
  8392  	//
  8393  	//    * BETWEEN: Not applicable.
  8394  	Condition *string `type:"string" enum:"FilterCondition"`
  8395  
  8396  	// Specify NAMESPACE_ID.
  8397  	//
  8398  	// Name is a required field
  8399  	Name *string `type:"string" required:"true" enum:"ServiceFilterName"`
  8400  
  8401  	// The values that are applicable to the value that you specify for Condition
  8402  	// to filter the list of services.
  8403  	//
  8404  	// Values is a required field
  8405  	Values []*string `type:"list" required:"true"`
  8406  }
  8407  
  8408  // String returns the string representation.
  8409  //
  8410  // API parameter values that are decorated as "sensitive" in the API will not
  8411  // be included in the string output. The member name will be present, but the
  8412  // value will be replaced with "sensitive".
  8413  func (s ServiceFilter) String() string {
  8414  	return awsutil.Prettify(s)
  8415  }
  8416  
  8417  // GoString returns the string representation.
  8418  //
  8419  // API parameter values that are decorated as "sensitive" in the API will not
  8420  // be included in the string output. The member name will be present, but the
  8421  // value will be replaced with "sensitive".
  8422  func (s ServiceFilter) GoString() string {
  8423  	return s.String()
  8424  }
  8425  
  8426  // Validate inspects the fields of the type to determine if they are valid.
  8427  func (s *ServiceFilter) Validate() error {
  8428  	invalidParams := request.ErrInvalidParams{Context: "ServiceFilter"}
  8429  	if s.Name == nil {
  8430  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8431  	}
  8432  	if s.Values == nil {
  8433  		invalidParams.Add(request.NewErrParamRequired("Values"))
  8434  	}
  8435  
  8436  	if invalidParams.Len() > 0 {
  8437  		return invalidParams
  8438  	}
  8439  	return nil
  8440  }
  8441  
  8442  // SetCondition sets the Condition field's value.
  8443  func (s *ServiceFilter) SetCondition(v string) *ServiceFilter {
  8444  	s.Condition = &v
  8445  	return s
  8446  }
  8447  
  8448  // SetName sets the Name field's value.
  8449  func (s *ServiceFilter) SetName(v string) *ServiceFilter {
  8450  	s.Name = &v
  8451  	return s
  8452  }
  8453  
  8454  // SetValues sets the Values field's value.
  8455  func (s *ServiceFilter) SetValues(v []*string) *ServiceFilter {
  8456  	s.Values = v
  8457  	return s
  8458  }
  8459  
  8460  // No service exists with the specified ID.
  8461  type ServiceNotFound struct {
  8462  	_            struct{}                  `type:"structure"`
  8463  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8464  
  8465  	Message_ *string `locationName:"Message" type:"string"`
  8466  }
  8467  
  8468  // String returns the string representation.
  8469  //
  8470  // API parameter values that are decorated as "sensitive" in the API will not
  8471  // be included in the string output. The member name will be present, but the
  8472  // value will be replaced with "sensitive".
  8473  func (s ServiceNotFound) String() string {
  8474  	return awsutil.Prettify(s)
  8475  }
  8476  
  8477  // GoString returns the string representation.
  8478  //
  8479  // API parameter values that are decorated as "sensitive" in the API will not
  8480  // be included in the string output. The member name will be present, but the
  8481  // value will be replaced with "sensitive".
  8482  func (s ServiceNotFound) GoString() string {
  8483  	return s.String()
  8484  }
  8485  
  8486  func newErrorServiceNotFound(v protocol.ResponseMetadata) error {
  8487  	return &ServiceNotFound{
  8488  		RespMetadata: v,
  8489  	}
  8490  }
  8491  
  8492  // Code returns the exception type name.
  8493  func (s *ServiceNotFound) Code() string {
  8494  	return "ServiceNotFound"
  8495  }
  8496  
  8497  // Message returns the exception's message.
  8498  func (s *ServiceNotFound) Message() string {
  8499  	if s.Message_ != nil {
  8500  		return *s.Message_
  8501  	}
  8502  	return ""
  8503  }
  8504  
  8505  // OrigErr always returns nil, satisfies awserr.Error interface.
  8506  func (s *ServiceNotFound) OrigErr() error {
  8507  	return nil
  8508  }
  8509  
  8510  func (s *ServiceNotFound) Error() string {
  8511  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8512  }
  8513  
  8514  // Status code returns the HTTP status code for the request's response error.
  8515  func (s *ServiceNotFound) StatusCode() int {
  8516  	return s.RespMetadata.StatusCode
  8517  }
  8518  
  8519  // RequestID returns the service's response RequestID for request.
  8520  func (s *ServiceNotFound) RequestID() string {
  8521  	return s.RespMetadata.RequestID
  8522  }
  8523  
  8524  // A complex type that contains information about a specified service.
  8525  type ServiceSummary struct {
  8526  	_ struct{} `type:"structure"`
  8527  
  8528  	// The Amazon Resource Name (ARN) that Cloud Map assigns to the service when
  8529  	// you create it.
  8530  	Arn *string `type:"string"`
  8531  
  8532  	// The date and time that the service was created.
  8533  	CreateDate *time.Time `type:"timestamp"`
  8534  
  8535  	// The description that you specify when you create the service.
  8536  	Description *string `type:"string"`
  8537  
  8538  	// Information about the Route 53 DNS records that you want Cloud Map to create
  8539  	// when you register an instance.
  8540  	DnsConfig *DnsConfig `type:"structure"`
  8541  
  8542  	// Public DNS and HTTP namespaces only. Settings for an optional health check.
  8543  	// If you specify settings for a health check, Cloud Map associates the health
  8544  	// check with the records that you specify in DnsConfig.
  8545  	HealthCheckConfig *HealthCheckConfig `type:"structure"`
  8546  
  8547  	// Information about an optional custom health check. A custom health check,
  8548  	// which requires that you use a third-party health checker to evaluate the
  8549  	// health of your resources, is useful in the following circumstances:
  8550  	//
  8551  	//    * You can't use a health check that's defined by HealthCheckConfig because
  8552  	//    the resource isn't available over the internet. For example, you can use
  8553  	//    a custom health check when the instance is in an Amazon VPC. (To check
  8554  	//    the health of resources in a VPC, the health checker must also be in the
  8555  	//    VPC.)
  8556  	//
  8557  	//    * You want to use a third-party health checker regardless of where your
  8558  	//    resources are located.
  8559  	//
  8560  	// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
  8561  	// or HealthCheckConfig but not both.
  8562  	HealthCheckCustomConfig *HealthCheckCustomConfig `type:"structure"`
  8563  
  8564  	// The ID that Cloud Map assigned to the service when you created it.
  8565  	Id *string `type:"string"`
  8566  
  8567  	// The number of instances that are currently associated with the service. Instances
  8568  	// that were previously associated with the service but that are deleted aren't
  8569  	// included in the count. The count might not reflect pending registrations
  8570  	// and deregistrations.
  8571  	InstanceCount *int64 `type:"integer"`
  8572  
  8573  	// The name of the service.
  8574  	Name *string `type:"string"`
  8575  
  8576  	// Describes the systems that can be used to discover the service instances.
  8577  	//
  8578  	// DNS_HTTP
  8579  	//
  8580  	// The service instances can be discovered using either DNS queries or the DiscoverInstances
  8581  	// API operation.
  8582  	//
  8583  	// HTTP
  8584  	//
  8585  	// The service instances can only be discovered using the DiscoverInstances
  8586  	// API operation.
  8587  	//
  8588  	// DNS
  8589  	//
  8590  	// Reserved.
  8591  	Type *string `type:"string" enum:"ServiceType"`
  8592  }
  8593  
  8594  // String returns the string representation.
  8595  //
  8596  // API parameter values that are decorated as "sensitive" in the API will not
  8597  // be included in the string output. The member name will be present, but the
  8598  // value will be replaced with "sensitive".
  8599  func (s ServiceSummary) String() string {
  8600  	return awsutil.Prettify(s)
  8601  }
  8602  
  8603  // GoString returns the string representation.
  8604  //
  8605  // API parameter values that are decorated as "sensitive" in the API will not
  8606  // be included in the string output. The member name will be present, but the
  8607  // value will be replaced with "sensitive".
  8608  func (s ServiceSummary) GoString() string {
  8609  	return s.String()
  8610  }
  8611  
  8612  // SetArn sets the Arn field's value.
  8613  func (s *ServiceSummary) SetArn(v string) *ServiceSummary {
  8614  	s.Arn = &v
  8615  	return s
  8616  }
  8617  
  8618  // SetCreateDate sets the CreateDate field's value.
  8619  func (s *ServiceSummary) SetCreateDate(v time.Time) *ServiceSummary {
  8620  	s.CreateDate = &v
  8621  	return s
  8622  }
  8623  
  8624  // SetDescription sets the Description field's value.
  8625  func (s *ServiceSummary) SetDescription(v string) *ServiceSummary {
  8626  	s.Description = &v
  8627  	return s
  8628  }
  8629  
  8630  // SetDnsConfig sets the DnsConfig field's value.
  8631  func (s *ServiceSummary) SetDnsConfig(v *DnsConfig) *ServiceSummary {
  8632  	s.DnsConfig = v
  8633  	return s
  8634  }
  8635  
  8636  // SetHealthCheckConfig sets the HealthCheckConfig field's value.
  8637  func (s *ServiceSummary) SetHealthCheckConfig(v *HealthCheckConfig) *ServiceSummary {
  8638  	s.HealthCheckConfig = v
  8639  	return s
  8640  }
  8641  
  8642  // SetHealthCheckCustomConfig sets the HealthCheckCustomConfig field's value.
  8643  func (s *ServiceSummary) SetHealthCheckCustomConfig(v *HealthCheckCustomConfig) *ServiceSummary {
  8644  	s.HealthCheckCustomConfig = v
  8645  	return s
  8646  }
  8647  
  8648  // SetId sets the Id field's value.
  8649  func (s *ServiceSummary) SetId(v string) *ServiceSummary {
  8650  	s.Id = &v
  8651  	return s
  8652  }
  8653  
  8654  // SetInstanceCount sets the InstanceCount field's value.
  8655  func (s *ServiceSummary) SetInstanceCount(v int64) *ServiceSummary {
  8656  	s.InstanceCount = &v
  8657  	return s
  8658  }
  8659  
  8660  // SetName sets the Name field's value.
  8661  func (s *ServiceSummary) SetName(v string) *ServiceSummary {
  8662  	s.Name = &v
  8663  	return s
  8664  }
  8665  
  8666  // SetType sets the Type field's value.
  8667  func (s *ServiceSummary) SetType(v string) *ServiceSummary {
  8668  	s.Type = &v
  8669  	return s
  8670  }
  8671  
  8672  // A custom key-value pair that's associated with a resource.
  8673  type Tag struct {
  8674  	_ struct{} `type:"structure"`
  8675  
  8676  	// The key identifier, or name, of the tag.
  8677  	//
  8678  	// Key is a required field
  8679  	Key *string `min:"1" type:"string" required:"true"`
  8680  
  8681  	// The string value that's associated with the key of the tag. You can set the
  8682  	// value of a tag to an empty string, but you can't set the value of a tag to
  8683  	// null.
  8684  	//
  8685  	// Value is a required field
  8686  	Value *string `type:"string" required:"true"`
  8687  }
  8688  
  8689  // String returns the string representation.
  8690  //
  8691  // API parameter values that are decorated as "sensitive" in the API will not
  8692  // be included in the string output. The member name will be present, but the
  8693  // value will be replaced with "sensitive".
  8694  func (s Tag) String() string {
  8695  	return awsutil.Prettify(s)
  8696  }
  8697  
  8698  // GoString returns the string representation.
  8699  //
  8700  // API parameter values that are decorated as "sensitive" in the API will not
  8701  // be included in the string output. The member name will be present, but the
  8702  // value will be replaced with "sensitive".
  8703  func (s Tag) GoString() string {
  8704  	return s.String()
  8705  }
  8706  
  8707  // Validate inspects the fields of the type to determine if they are valid.
  8708  func (s *Tag) Validate() error {
  8709  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  8710  	if s.Key == nil {
  8711  		invalidParams.Add(request.NewErrParamRequired("Key"))
  8712  	}
  8713  	if s.Key != nil && len(*s.Key) < 1 {
  8714  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  8715  	}
  8716  	if s.Value == nil {
  8717  		invalidParams.Add(request.NewErrParamRequired("Value"))
  8718  	}
  8719  
  8720  	if invalidParams.Len() > 0 {
  8721  		return invalidParams
  8722  	}
  8723  	return nil
  8724  }
  8725  
  8726  // SetKey sets the Key field's value.
  8727  func (s *Tag) SetKey(v string) *Tag {
  8728  	s.Key = &v
  8729  	return s
  8730  }
  8731  
  8732  // SetValue sets the Value field's value.
  8733  func (s *Tag) SetValue(v string) *Tag {
  8734  	s.Value = &v
  8735  	return s
  8736  }
  8737  
  8738  type TagResourceInput struct {
  8739  	_ struct{} `type:"structure"`
  8740  
  8741  	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
  8742  	// tags for.
  8743  	//
  8744  	// ResourceARN is a required field
  8745  	ResourceARN *string `min:"1" type:"string" required:"true"`
  8746  
  8747  	// The tags to add to the specified resource. Specifying the tag key is required.
  8748  	// You can set the value of a tag to an empty string, but you can't set the
  8749  	// value of a tag to null.
  8750  	//
  8751  	// Tags is a required field
  8752  	Tags []*Tag `type:"list" required:"true"`
  8753  }
  8754  
  8755  // String returns the string representation.
  8756  //
  8757  // API parameter values that are decorated as "sensitive" in the API will not
  8758  // be included in the string output. The member name will be present, but the
  8759  // value will be replaced with "sensitive".
  8760  func (s TagResourceInput) String() string {
  8761  	return awsutil.Prettify(s)
  8762  }
  8763  
  8764  // GoString returns the string representation.
  8765  //
  8766  // API parameter values that are decorated as "sensitive" in the API will not
  8767  // be included in the string output. The member name will be present, but the
  8768  // value will be replaced with "sensitive".
  8769  func (s TagResourceInput) GoString() string {
  8770  	return s.String()
  8771  }
  8772  
  8773  // Validate inspects the fields of the type to determine if they are valid.
  8774  func (s *TagResourceInput) Validate() error {
  8775  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  8776  	if s.ResourceARN == nil {
  8777  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  8778  	}
  8779  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  8780  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  8781  	}
  8782  	if s.Tags == nil {
  8783  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8784  	}
  8785  	if s.Tags != nil {
  8786  		for i, v := range s.Tags {
  8787  			if v == nil {
  8788  				continue
  8789  			}
  8790  			if err := v.Validate(); err != nil {
  8791  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8792  			}
  8793  		}
  8794  	}
  8795  
  8796  	if invalidParams.Len() > 0 {
  8797  		return invalidParams
  8798  	}
  8799  	return nil
  8800  }
  8801  
  8802  // SetResourceARN sets the ResourceARN field's value.
  8803  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
  8804  	s.ResourceARN = &v
  8805  	return s
  8806  }
  8807  
  8808  // SetTags sets the Tags field's value.
  8809  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
  8810  	s.Tags = v
  8811  	return s
  8812  }
  8813  
  8814  type TagResourceOutput struct {
  8815  	_ struct{} `type:"structure"`
  8816  }
  8817  
  8818  // String returns the string representation.
  8819  //
  8820  // API parameter values that are decorated as "sensitive" in the API will not
  8821  // be included in the string output. The member name will be present, but the
  8822  // value will be replaced with "sensitive".
  8823  func (s TagResourceOutput) String() string {
  8824  	return awsutil.Prettify(s)
  8825  }
  8826  
  8827  // GoString returns the string representation.
  8828  //
  8829  // API parameter values that are decorated as "sensitive" in the API will not
  8830  // be included in the string output. The member name will be present, but the
  8831  // value will be replaced with "sensitive".
  8832  func (s TagResourceOutput) GoString() string {
  8833  	return s.String()
  8834  }
  8835  
  8836  // The list of tags on the resource is over the quota. The maximum number of
  8837  // tags that can be applied to a resource is 50.
  8838  type TooManyTagsException struct {
  8839  	_            struct{}                  `type:"structure"`
  8840  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8841  
  8842  	Message_ *string `locationName:"Message" type:"string"`
  8843  
  8844  	// The name of the resource.
  8845  	ResourceName *string `min:"1" type:"string"`
  8846  }
  8847  
  8848  // String returns the string representation.
  8849  //
  8850  // API parameter values that are decorated as "sensitive" in the API will not
  8851  // be included in the string output. The member name will be present, but the
  8852  // value will be replaced with "sensitive".
  8853  func (s TooManyTagsException) String() string {
  8854  	return awsutil.Prettify(s)
  8855  }
  8856  
  8857  // GoString returns the string representation.
  8858  //
  8859  // API parameter values that are decorated as "sensitive" in the API will not
  8860  // be included in the string output. The member name will be present, but the
  8861  // value will be replaced with "sensitive".
  8862  func (s TooManyTagsException) GoString() string {
  8863  	return s.String()
  8864  }
  8865  
  8866  func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
  8867  	return &TooManyTagsException{
  8868  		RespMetadata: v,
  8869  	}
  8870  }
  8871  
  8872  // Code returns the exception type name.
  8873  func (s *TooManyTagsException) Code() string {
  8874  	return "TooManyTagsException"
  8875  }
  8876  
  8877  // Message returns the exception's message.
  8878  func (s *TooManyTagsException) Message() string {
  8879  	if s.Message_ != nil {
  8880  		return *s.Message_
  8881  	}
  8882  	return ""
  8883  }
  8884  
  8885  // OrigErr always returns nil, satisfies awserr.Error interface.
  8886  func (s *TooManyTagsException) OrigErr() error {
  8887  	return nil
  8888  }
  8889  
  8890  func (s *TooManyTagsException) Error() string {
  8891  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8892  }
  8893  
  8894  // Status code returns the HTTP status code for the request's response error.
  8895  func (s *TooManyTagsException) StatusCode() int {
  8896  	return s.RespMetadata.StatusCode
  8897  }
  8898  
  8899  // RequestID returns the service's response RequestID for request.
  8900  func (s *TooManyTagsException) RequestID() string {
  8901  	return s.RespMetadata.RequestID
  8902  }
  8903  
  8904  type UntagResourceInput struct {
  8905  	_ struct{} `type:"structure"`
  8906  
  8907  	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
  8908  	// tags for.
  8909  	//
  8910  	// ResourceARN is a required field
  8911  	ResourceARN *string `min:"1" type:"string" required:"true"`
  8912  
  8913  	// The tag keys to remove from the specified resource.
  8914  	//
  8915  	// TagKeys is a required field
  8916  	TagKeys []*string `type:"list" required:"true"`
  8917  }
  8918  
  8919  // String returns the string representation.
  8920  //
  8921  // API parameter values that are decorated as "sensitive" in the API will not
  8922  // be included in the string output. The member name will be present, but the
  8923  // value will be replaced with "sensitive".
  8924  func (s UntagResourceInput) String() string {
  8925  	return awsutil.Prettify(s)
  8926  }
  8927  
  8928  // GoString returns the string representation.
  8929  //
  8930  // API parameter values that are decorated as "sensitive" in the API will not
  8931  // be included in the string output. The member name will be present, but the
  8932  // value will be replaced with "sensitive".
  8933  func (s UntagResourceInput) GoString() string {
  8934  	return s.String()
  8935  }
  8936  
  8937  // Validate inspects the fields of the type to determine if they are valid.
  8938  func (s *UntagResourceInput) Validate() error {
  8939  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  8940  	if s.ResourceARN == nil {
  8941  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  8942  	}
  8943  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  8944  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  8945  	}
  8946  	if s.TagKeys == nil {
  8947  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  8948  	}
  8949  
  8950  	if invalidParams.Len() > 0 {
  8951  		return invalidParams
  8952  	}
  8953  	return nil
  8954  }
  8955  
  8956  // SetResourceARN sets the ResourceARN field's value.
  8957  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
  8958  	s.ResourceARN = &v
  8959  	return s
  8960  }
  8961  
  8962  // SetTagKeys sets the TagKeys field's value.
  8963  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  8964  	s.TagKeys = v
  8965  	return s
  8966  }
  8967  
  8968  type UntagResourceOutput struct {
  8969  	_ struct{} `type:"structure"`
  8970  }
  8971  
  8972  // String returns the string representation.
  8973  //
  8974  // API parameter values that are decorated as "sensitive" in the API will not
  8975  // be included in the string output. The member name will be present, but the
  8976  // value will be replaced with "sensitive".
  8977  func (s UntagResourceOutput) String() string {
  8978  	return awsutil.Prettify(s)
  8979  }
  8980  
  8981  // GoString returns the string representation.
  8982  //
  8983  // API parameter values that are decorated as "sensitive" in the API will not
  8984  // be included in the string output. The member name will be present, but the
  8985  // value will be replaced with "sensitive".
  8986  func (s UntagResourceOutput) GoString() string {
  8987  	return s.String()
  8988  }
  8989  
  8990  type UpdateHttpNamespaceInput struct {
  8991  	_ struct{} `type:"structure"`
  8992  
  8993  	// The ID of the namespace that you want to update.
  8994  	//
  8995  	// Id is a required field
  8996  	Id *string `type:"string" required:"true"`
  8997  
  8998  	// Updated properties for the the HTTP namespace.
  8999  	//
  9000  	// Namespace is a required field
  9001  	Namespace *HttpNamespaceChange `type:"structure" required:"true"`
  9002  
  9003  	// A unique string that identifies the request and that allows failed UpdateHttpNamespace
  9004  	// requests to be retried without the risk of running the operation twice. UpdaterRequestId
  9005  	// can be any unique string (for example, a date/timestamp).
  9006  	UpdaterRequestId *string `type:"string" idempotencyToken:"true"`
  9007  }
  9008  
  9009  // String returns the string representation.
  9010  //
  9011  // API parameter values that are decorated as "sensitive" in the API will not
  9012  // be included in the string output. The member name will be present, but the
  9013  // value will be replaced with "sensitive".
  9014  func (s UpdateHttpNamespaceInput) String() string {
  9015  	return awsutil.Prettify(s)
  9016  }
  9017  
  9018  // GoString returns the string representation.
  9019  //
  9020  // API parameter values that are decorated as "sensitive" in the API will not
  9021  // be included in the string output. The member name will be present, but the
  9022  // value will be replaced with "sensitive".
  9023  func (s UpdateHttpNamespaceInput) GoString() string {
  9024  	return s.String()
  9025  }
  9026  
  9027  // Validate inspects the fields of the type to determine if they are valid.
  9028  func (s *UpdateHttpNamespaceInput) Validate() error {
  9029  	invalidParams := request.ErrInvalidParams{Context: "UpdateHttpNamespaceInput"}
  9030  	if s.Id == nil {
  9031  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9032  	}
  9033  	if s.Namespace == nil {
  9034  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  9035  	}
  9036  	if s.Namespace != nil {
  9037  		if err := s.Namespace.Validate(); err != nil {
  9038  			invalidParams.AddNested("Namespace", err.(request.ErrInvalidParams))
  9039  		}
  9040  	}
  9041  
  9042  	if invalidParams.Len() > 0 {
  9043  		return invalidParams
  9044  	}
  9045  	return nil
  9046  }
  9047  
  9048  // SetId sets the Id field's value.
  9049  func (s *UpdateHttpNamespaceInput) SetId(v string) *UpdateHttpNamespaceInput {
  9050  	s.Id = &v
  9051  	return s
  9052  }
  9053  
  9054  // SetNamespace sets the Namespace field's value.
  9055  func (s *UpdateHttpNamespaceInput) SetNamespace(v *HttpNamespaceChange) *UpdateHttpNamespaceInput {
  9056  	s.Namespace = v
  9057  	return s
  9058  }
  9059  
  9060  // SetUpdaterRequestId sets the UpdaterRequestId field's value.
  9061  func (s *UpdateHttpNamespaceInput) SetUpdaterRequestId(v string) *UpdateHttpNamespaceInput {
  9062  	s.UpdaterRequestId = &v
  9063  	return s
  9064  }
  9065  
  9066  type UpdateHttpNamespaceOutput struct {
  9067  	_ struct{} `type:"structure"`
  9068  
  9069  	// A value that you can use to determine whether the request completed successfully.
  9070  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  9071  	OperationId *string `type:"string"`
  9072  }
  9073  
  9074  // String returns the string representation.
  9075  //
  9076  // API parameter values that are decorated as "sensitive" in the API will not
  9077  // be included in the string output. The member name will be present, but the
  9078  // value will be replaced with "sensitive".
  9079  func (s UpdateHttpNamespaceOutput) String() string {
  9080  	return awsutil.Prettify(s)
  9081  }
  9082  
  9083  // GoString returns the string representation.
  9084  //
  9085  // API parameter values that are decorated as "sensitive" in the API will not
  9086  // be included in the string output. The member name will be present, but the
  9087  // value will be replaced with "sensitive".
  9088  func (s UpdateHttpNamespaceOutput) GoString() string {
  9089  	return s.String()
  9090  }
  9091  
  9092  // SetOperationId sets the OperationId field's value.
  9093  func (s *UpdateHttpNamespaceOutput) SetOperationId(v string) *UpdateHttpNamespaceOutput {
  9094  	s.OperationId = &v
  9095  	return s
  9096  }
  9097  
  9098  type UpdateInstanceCustomHealthStatusInput struct {
  9099  	_ struct{} `type:"structure"`
  9100  
  9101  	// The ID of the instance that you want to change the health status for.
  9102  	//
  9103  	// InstanceId is a required field
  9104  	InstanceId *string `type:"string" required:"true"`
  9105  
  9106  	// The ID of the service that includes the configuration for the custom health
  9107  	// check that you want to change the status for.
  9108  	//
  9109  	// ServiceId is a required field
  9110  	ServiceId *string `type:"string" required:"true"`
  9111  
  9112  	// The new status of the instance, HEALTHY or UNHEALTHY.
  9113  	//
  9114  	// Status is a required field
  9115  	Status *string `type:"string" required:"true" enum:"CustomHealthStatus"`
  9116  }
  9117  
  9118  // String returns the string representation.
  9119  //
  9120  // API parameter values that are decorated as "sensitive" in the API will not
  9121  // be included in the string output. The member name will be present, but the
  9122  // value will be replaced with "sensitive".
  9123  func (s UpdateInstanceCustomHealthStatusInput) String() string {
  9124  	return awsutil.Prettify(s)
  9125  }
  9126  
  9127  // GoString returns the string representation.
  9128  //
  9129  // API parameter values that are decorated as "sensitive" in the API will not
  9130  // be included in the string output. The member name will be present, but the
  9131  // value will be replaced with "sensitive".
  9132  func (s UpdateInstanceCustomHealthStatusInput) GoString() string {
  9133  	return s.String()
  9134  }
  9135  
  9136  // Validate inspects the fields of the type to determine if they are valid.
  9137  func (s *UpdateInstanceCustomHealthStatusInput) Validate() error {
  9138  	invalidParams := request.ErrInvalidParams{Context: "UpdateInstanceCustomHealthStatusInput"}
  9139  	if s.InstanceId == nil {
  9140  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
  9141  	}
  9142  	if s.ServiceId == nil {
  9143  		invalidParams.Add(request.NewErrParamRequired("ServiceId"))
  9144  	}
  9145  	if s.Status == nil {
  9146  		invalidParams.Add(request.NewErrParamRequired("Status"))
  9147  	}
  9148  
  9149  	if invalidParams.Len() > 0 {
  9150  		return invalidParams
  9151  	}
  9152  	return nil
  9153  }
  9154  
  9155  // SetInstanceId sets the InstanceId field's value.
  9156  func (s *UpdateInstanceCustomHealthStatusInput) SetInstanceId(v string) *UpdateInstanceCustomHealthStatusInput {
  9157  	s.InstanceId = &v
  9158  	return s
  9159  }
  9160  
  9161  // SetServiceId sets the ServiceId field's value.
  9162  func (s *UpdateInstanceCustomHealthStatusInput) SetServiceId(v string) *UpdateInstanceCustomHealthStatusInput {
  9163  	s.ServiceId = &v
  9164  	return s
  9165  }
  9166  
  9167  // SetStatus sets the Status field's value.
  9168  func (s *UpdateInstanceCustomHealthStatusInput) SetStatus(v string) *UpdateInstanceCustomHealthStatusInput {
  9169  	s.Status = &v
  9170  	return s
  9171  }
  9172  
  9173  type UpdateInstanceCustomHealthStatusOutput struct {
  9174  	_ struct{} `type:"structure"`
  9175  }
  9176  
  9177  // String returns the string representation.
  9178  //
  9179  // API parameter values that are decorated as "sensitive" in the API will not
  9180  // be included in the string output. The member name will be present, but the
  9181  // value will be replaced with "sensitive".
  9182  func (s UpdateInstanceCustomHealthStatusOutput) String() string {
  9183  	return awsutil.Prettify(s)
  9184  }
  9185  
  9186  // GoString returns the string representation.
  9187  //
  9188  // API parameter values that are decorated as "sensitive" in the API will not
  9189  // be included in the string output. The member name will be present, but the
  9190  // value will be replaced with "sensitive".
  9191  func (s UpdateInstanceCustomHealthStatusOutput) GoString() string {
  9192  	return s.String()
  9193  }
  9194  
  9195  type UpdatePrivateDnsNamespaceInput struct {
  9196  	_ struct{} `type:"structure"`
  9197  
  9198  	// The ID of the namespace that you want to update.
  9199  	//
  9200  	// Id is a required field
  9201  	Id *string `type:"string" required:"true"`
  9202  
  9203  	// Updated properties for the private DNS namespace.
  9204  	//
  9205  	// Namespace is a required field
  9206  	Namespace *PrivateDnsNamespaceChange `type:"structure" required:"true"`
  9207  
  9208  	// A unique string that identifies the request and that allows failed UpdatePrivateDnsNamespace
  9209  	// requests to be retried without the risk of running the operation twice. UpdaterRequestId
  9210  	// can be any unique string (for example, a date/timestamp).
  9211  	UpdaterRequestId *string `type:"string" idempotencyToken:"true"`
  9212  }
  9213  
  9214  // String returns the string representation.
  9215  //
  9216  // API parameter values that are decorated as "sensitive" in the API will not
  9217  // be included in the string output. The member name will be present, but the
  9218  // value will be replaced with "sensitive".
  9219  func (s UpdatePrivateDnsNamespaceInput) String() string {
  9220  	return awsutil.Prettify(s)
  9221  }
  9222  
  9223  // GoString returns the string representation.
  9224  //
  9225  // API parameter values that are decorated as "sensitive" in the API will not
  9226  // be included in the string output. The member name will be present, but the
  9227  // value will be replaced with "sensitive".
  9228  func (s UpdatePrivateDnsNamespaceInput) GoString() string {
  9229  	return s.String()
  9230  }
  9231  
  9232  // Validate inspects the fields of the type to determine if they are valid.
  9233  func (s *UpdatePrivateDnsNamespaceInput) Validate() error {
  9234  	invalidParams := request.ErrInvalidParams{Context: "UpdatePrivateDnsNamespaceInput"}
  9235  	if s.Id == nil {
  9236  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9237  	}
  9238  	if s.Namespace == nil {
  9239  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  9240  	}
  9241  	if s.Namespace != nil {
  9242  		if err := s.Namespace.Validate(); err != nil {
  9243  			invalidParams.AddNested("Namespace", err.(request.ErrInvalidParams))
  9244  		}
  9245  	}
  9246  
  9247  	if invalidParams.Len() > 0 {
  9248  		return invalidParams
  9249  	}
  9250  	return nil
  9251  }
  9252  
  9253  // SetId sets the Id field's value.
  9254  func (s *UpdatePrivateDnsNamespaceInput) SetId(v string) *UpdatePrivateDnsNamespaceInput {
  9255  	s.Id = &v
  9256  	return s
  9257  }
  9258  
  9259  // SetNamespace sets the Namespace field's value.
  9260  func (s *UpdatePrivateDnsNamespaceInput) SetNamespace(v *PrivateDnsNamespaceChange) *UpdatePrivateDnsNamespaceInput {
  9261  	s.Namespace = v
  9262  	return s
  9263  }
  9264  
  9265  // SetUpdaterRequestId sets the UpdaterRequestId field's value.
  9266  func (s *UpdatePrivateDnsNamespaceInput) SetUpdaterRequestId(v string) *UpdatePrivateDnsNamespaceInput {
  9267  	s.UpdaterRequestId = &v
  9268  	return s
  9269  }
  9270  
  9271  type UpdatePrivateDnsNamespaceOutput struct {
  9272  	_ struct{} `type:"structure"`
  9273  
  9274  	// A value that you can use to determine whether the request completed successfully.
  9275  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  9276  	OperationId *string `type:"string"`
  9277  }
  9278  
  9279  // String returns the string representation.
  9280  //
  9281  // API parameter values that are decorated as "sensitive" in the API will not
  9282  // be included in the string output. The member name will be present, but the
  9283  // value will be replaced with "sensitive".
  9284  func (s UpdatePrivateDnsNamespaceOutput) String() string {
  9285  	return awsutil.Prettify(s)
  9286  }
  9287  
  9288  // GoString returns the string representation.
  9289  //
  9290  // API parameter values that are decorated as "sensitive" in the API will not
  9291  // be included in the string output. The member name will be present, but the
  9292  // value will be replaced with "sensitive".
  9293  func (s UpdatePrivateDnsNamespaceOutput) GoString() string {
  9294  	return s.String()
  9295  }
  9296  
  9297  // SetOperationId sets the OperationId field's value.
  9298  func (s *UpdatePrivateDnsNamespaceOutput) SetOperationId(v string) *UpdatePrivateDnsNamespaceOutput {
  9299  	s.OperationId = &v
  9300  	return s
  9301  }
  9302  
  9303  type UpdatePublicDnsNamespaceInput struct {
  9304  	_ struct{} `type:"structure"`
  9305  
  9306  	// The ID of the namespace being updated.
  9307  	//
  9308  	// Id is a required field
  9309  	Id *string `type:"string" required:"true"`
  9310  
  9311  	// Updated properties for the public DNS namespace.
  9312  	//
  9313  	// Namespace is a required field
  9314  	Namespace *PublicDnsNamespaceChange `type:"structure" required:"true"`
  9315  
  9316  	// A unique string that identifies the request and that allows failed UpdatePublicDnsNamespace
  9317  	// requests to be retried without the risk of running the operation twice. UpdaterRequestId
  9318  	// can be any unique string (for example, a date/timestamp).
  9319  	UpdaterRequestId *string `type:"string" idempotencyToken:"true"`
  9320  }
  9321  
  9322  // String returns the string representation.
  9323  //
  9324  // API parameter values that are decorated as "sensitive" in the API will not
  9325  // be included in the string output. The member name will be present, but the
  9326  // value will be replaced with "sensitive".
  9327  func (s UpdatePublicDnsNamespaceInput) String() string {
  9328  	return awsutil.Prettify(s)
  9329  }
  9330  
  9331  // GoString returns the string representation.
  9332  //
  9333  // API parameter values that are decorated as "sensitive" in the API will not
  9334  // be included in the string output. The member name will be present, but the
  9335  // value will be replaced with "sensitive".
  9336  func (s UpdatePublicDnsNamespaceInput) GoString() string {
  9337  	return s.String()
  9338  }
  9339  
  9340  // Validate inspects the fields of the type to determine if they are valid.
  9341  func (s *UpdatePublicDnsNamespaceInput) Validate() error {
  9342  	invalidParams := request.ErrInvalidParams{Context: "UpdatePublicDnsNamespaceInput"}
  9343  	if s.Id == nil {
  9344  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9345  	}
  9346  	if s.Namespace == nil {
  9347  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  9348  	}
  9349  	if s.Namespace != nil {
  9350  		if err := s.Namespace.Validate(); err != nil {
  9351  			invalidParams.AddNested("Namespace", err.(request.ErrInvalidParams))
  9352  		}
  9353  	}
  9354  
  9355  	if invalidParams.Len() > 0 {
  9356  		return invalidParams
  9357  	}
  9358  	return nil
  9359  }
  9360  
  9361  // SetId sets the Id field's value.
  9362  func (s *UpdatePublicDnsNamespaceInput) SetId(v string) *UpdatePublicDnsNamespaceInput {
  9363  	s.Id = &v
  9364  	return s
  9365  }
  9366  
  9367  // SetNamespace sets the Namespace field's value.
  9368  func (s *UpdatePublicDnsNamespaceInput) SetNamespace(v *PublicDnsNamespaceChange) *UpdatePublicDnsNamespaceInput {
  9369  	s.Namespace = v
  9370  	return s
  9371  }
  9372  
  9373  // SetUpdaterRequestId sets the UpdaterRequestId field's value.
  9374  func (s *UpdatePublicDnsNamespaceInput) SetUpdaterRequestId(v string) *UpdatePublicDnsNamespaceInput {
  9375  	s.UpdaterRequestId = &v
  9376  	return s
  9377  }
  9378  
  9379  type UpdatePublicDnsNamespaceOutput struct {
  9380  	_ struct{} `type:"structure"`
  9381  
  9382  	// A value that you can use to determine whether the request completed successfully.
  9383  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  9384  	OperationId *string `type:"string"`
  9385  }
  9386  
  9387  // String returns the string representation.
  9388  //
  9389  // API parameter values that are decorated as "sensitive" in the API will not
  9390  // be included in the string output. The member name will be present, but the
  9391  // value will be replaced with "sensitive".
  9392  func (s UpdatePublicDnsNamespaceOutput) String() string {
  9393  	return awsutil.Prettify(s)
  9394  }
  9395  
  9396  // GoString returns the string representation.
  9397  //
  9398  // API parameter values that are decorated as "sensitive" in the API will not
  9399  // be included in the string output. The member name will be present, but the
  9400  // value will be replaced with "sensitive".
  9401  func (s UpdatePublicDnsNamespaceOutput) GoString() string {
  9402  	return s.String()
  9403  }
  9404  
  9405  // SetOperationId sets the OperationId field's value.
  9406  func (s *UpdatePublicDnsNamespaceOutput) SetOperationId(v string) *UpdatePublicDnsNamespaceOutput {
  9407  	s.OperationId = &v
  9408  	return s
  9409  }
  9410  
  9411  type UpdateServiceInput struct {
  9412  	_ struct{} `type:"structure"`
  9413  
  9414  	// The ID of the service that you want to update.
  9415  	//
  9416  	// Id is a required field
  9417  	Id *string `type:"string" required:"true"`
  9418  
  9419  	// A complex type that contains the new settings for the service.
  9420  	//
  9421  	// Service is a required field
  9422  	Service *ServiceChange `type:"structure" required:"true"`
  9423  }
  9424  
  9425  // String returns the string representation.
  9426  //
  9427  // API parameter values that are decorated as "sensitive" in the API will not
  9428  // be included in the string output. The member name will be present, but the
  9429  // value will be replaced with "sensitive".
  9430  func (s UpdateServiceInput) String() string {
  9431  	return awsutil.Prettify(s)
  9432  }
  9433  
  9434  // GoString returns the string representation.
  9435  //
  9436  // API parameter values that are decorated as "sensitive" in the API will not
  9437  // be included in the string output. The member name will be present, but the
  9438  // value will be replaced with "sensitive".
  9439  func (s UpdateServiceInput) GoString() string {
  9440  	return s.String()
  9441  }
  9442  
  9443  // Validate inspects the fields of the type to determine if they are valid.
  9444  func (s *UpdateServiceInput) Validate() error {
  9445  	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
  9446  	if s.Id == nil {
  9447  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9448  	}
  9449  	if s.Service == nil {
  9450  		invalidParams.Add(request.NewErrParamRequired("Service"))
  9451  	}
  9452  	if s.Service != nil {
  9453  		if err := s.Service.Validate(); err != nil {
  9454  			invalidParams.AddNested("Service", err.(request.ErrInvalidParams))
  9455  		}
  9456  	}
  9457  
  9458  	if invalidParams.Len() > 0 {
  9459  		return invalidParams
  9460  	}
  9461  	return nil
  9462  }
  9463  
  9464  // SetId sets the Id field's value.
  9465  func (s *UpdateServiceInput) SetId(v string) *UpdateServiceInput {
  9466  	s.Id = &v
  9467  	return s
  9468  }
  9469  
  9470  // SetService sets the Service field's value.
  9471  func (s *UpdateServiceInput) SetService(v *ServiceChange) *UpdateServiceInput {
  9472  	s.Service = v
  9473  	return s
  9474  }
  9475  
  9476  type UpdateServiceOutput struct {
  9477  	_ struct{} `type:"structure"`
  9478  
  9479  	// A value that you can use to determine whether the request completed successfully.
  9480  	// To get the status of the operation, see GetOperation (https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html).
  9481  	OperationId *string `type:"string"`
  9482  }
  9483  
  9484  // String returns the string representation.
  9485  //
  9486  // API parameter values that are decorated as "sensitive" in the API will not
  9487  // be included in the string output. The member name will be present, but the
  9488  // value will be replaced with "sensitive".
  9489  func (s UpdateServiceOutput) String() string {
  9490  	return awsutil.Prettify(s)
  9491  }
  9492  
  9493  // GoString returns the string representation.
  9494  //
  9495  // API parameter values that are decorated as "sensitive" in the API will not
  9496  // be included in the string output. The member name will be present, but the
  9497  // value will be replaced with "sensitive".
  9498  func (s UpdateServiceOutput) GoString() string {
  9499  	return s.String()
  9500  }
  9501  
  9502  // SetOperationId sets the OperationId field's value.
  9503  func (s *UpdateServiceOutput) SetOperationId(v string) *UpdateServiceOutput {
  9504  	s.OperationId = &v
  9505  	return s
  9506  }
  9507  
  9508  const (
  9509  	// CustomHealthStatusHealthy is a CustomHealthStatus enum value
  9510  	CustomHealthStatusHealthy = "HEALTHY"
  9511  
  9512  	// CustomHealthStatusUnhealthy is a CustomHealthStatus enum value
  9513  	CustomHealthStatusUnhealthy = "UNHEALTHY"
  9514  )
  9515  
  9516  // CustomHealthStatus_Values returns all elements of the CustomHealthStatus enum
  9517  func CustomHealthStatus_Values() []string {
  9518  	return []string{
  9519  		CustomHealthStatusHealthy,
  9520  		CustomHealthStatusUnhealthy,
  9521  	}
  9522  }
  9523  
  9524  const (
  9525  	// FilterConditionEq is a FilterCondition enum value
  9526  	FilterConditionEq = "EQ"
  9527  
  9528  	// FilterConditionIn is a FilterCondition enum value
  9529  	FilterConditionIn = "IN"
  9530  
  9531  	// FilterConditionBetween is a FilterCondition enum value
  9532  	FilterConditionBetween = "BETWEEN"
  9533  )
  9534  
  9535  // FilterCondition_Values returns all elements of the FilterCondition enum
  9536  func FilterCondition_Values() []string {
  9537  	return []string{
  9538  		FilterConditionEq,
  9539  		FilterConditionIn,
  9540  		FilterConditionBetween,
  9541  	}
  9542  }
  9543  
  9544  const (
  9545  	// HealthCheckTypeHttp is a HealthCheckType enum value
  9546  	HealthCheckTypeHttp = "HTTP"
  9547  
  9548  	// HealthCheckTypeHttps is a HealthCheckType enum value
  9549  	HealthCheckTypeHttps = "HTTPS"
  9550  
  9551  	// HealthCheckTypeTcp is a HealthCheckType enum value
  9552  	HealthCheckTypeTcp = "TCP"
  9553  )
  9554  
  9555  // HealthCheckType_Values returns all elements of the HealthCheckType enum
  9556  func HealthCheckType_Values() []string {
  9557  	return []string{
  9558  		HealthCheckTypeHttp,
  9559  		HealthCheckTypeHttps,
  9560  		HealthCheckTypeTcp,
  9561  	}
  9562  }
  9563  
  9564  const (
  9565  	// HealthStatusHealthy is a HealthStatus enum value
  9566  	HealthStatusHealthy = "HEALTHY"
  9567  
  9568  	// HealthStatusUnhealthy is a HealthStatus enum value
  9569  	HealthStatusUnhealthy = "UNHEALTHY"
  9570  
  9571  	// HealthStatusUnknown is a HealthStatus enum value
  9572  	HealthStatusUnknown = "UNKNOWN"
  9573  )
  9574  
  9575  // HealthStatus_Values returns all elements of the HealthStatus enum
  9576  func HealthStatus_Values() []string {
  9577  	return []string{
  9578  		HealthStatusHealthy,
  9579  		HealthStatusUnhealthy,
  9580  		HealthStatusUnknown,
  9581  	}
  9582  }
  9583  
  9584  const (
  9585  	// HealthStatusFilterHealthy is a HealthStatusFilter enum value
  9586  	HealthStatusFilterHealthy = "HEALTHY"
  9587  
  9588  	// HealthStatusFilterUnhealthy is a HealthStatusFilter enum value
  9589  	HealthStatusFilterUnhealthy = "UNHEALTHY"
  9590  
  9591  	// HealthStatusFilterAll is a HealthStatusFilter enum value
  9592  	HealthStatusFilterAll = "ALL"
  9593  
  9594  	// HealthStatusFilterHealthyOrElseAll is a HealthStatusFilter enum value
  9595  	HealthStatusFilterHealthyOrElseAll = "HEALTHY_OR_ELSE_ALL"
  9596  )
  9597  
  9598  // HealthStatusFilter_Values returns all elements of the HealthStatusFilter enum
  9599  func HealthStatusFilter_Values() []string {
  9600  	return []string{
  9601  		HealthStatusFilterHealthy,
  9602  		HealthStatusFilterUnhealthy,
  9603  		HealthStatusFilterAll,
  9604  		HealthStatusFilterHealthyOrElseAll,
  9605  	}
  9606  }
  9607  
  9608  const (
  9609  	// NamespaceFilterNameType is a NamespaceFilterName enum value
  9610  	NamespaceFilterNameType = "TYPE"
  9611  )
  9612  
  9613  // NamespaceFilterName_Values returns all elements of the NamespaceFilterName enum
  9614  func NamespaceFilterName_Values() []string {
  9615  	return []string{
  9616  		NamespaceFilterNameType,
  9617  	}
  9618  }
  9619  
  9620  const (
  9621  	// NamespaceTypeDnsPublic is a NamespaceType enum value
  9622  	NamespaceTypeDnsPublic = "DNS_PUBLIC"
  9623  
  9624  	// NamespaceTypeDnsPrivate is a NamespaceType enum value
  9625  	NamespaceTypeDnsPrivate = "DNS_PRIVATE"
  9626  
  9627  	// NamespaceTypeHttp is a NamespaceType enum value
  9628  	NamespaceTypeHttp = "HTTP"
  9629  )
  9630  
  9631  // NamespaceType_Values returns all elements of the NamespaceType enum
  9632  func NamespaceType_Values() []string {
  9633  	return []string{
  9634  		NamespaceTypeDnsPublic,
  9635  		NamespaceTypeDnsPrivate,
  9636  		NamespaceTypeHttp,
  9637  	}
  9638  }
  9639  
  9640  const (
  9641  	// OperationFilterNameNamespaceId is a OperationFilterName enum value
  9642  	OperationFilterNameNamespaceId = "NAMESPACE_ID"
  9643  
  9644  	// OperationFilterNameServiceId is a OperationFilterName enum value
  9645  	OperationFilterNameServiceId = "SERVICE_ID"
  9646  
  9647  	// OperationFilterNameStatus is a OperationFilterName enum value
  9648  	OperationFilterNameStatus = "STATUS"
  9649  
  9650  	// OperationFilterNameType is a OperationFilterName enum value
  9651  	OperationFilterNameType = "TYPE"
  9652  
  9653  	// OperationFilterNameUpdateDate is a OperationFilterName enum value
  9654  	OperationFilterNameUpdateDate = "UPDATE_DATE"
  9655  )
  9656  
  9657  // OperationFilterName_Values returns all elements of the OperationFilterName enum
  9658  func OperationFilterName_Values() []string {
  9659  	return []string{
  9660  		OperationFilterNameNamespaceId,
  9661  		OperationFilterNameServiceId,
  9662  		OperationFilterNameStatus,
  9663  		OperationFilterNameType,
  9664  		OperationFilterNameUpdateDate,
  9665  	}
  9666  }
  9667  
  9668  const (
  9669  	// OperationStatusSubmitted is a OperationStatus enum value
  9670  	OperationStatusSubmitted = "SUBMITTED"
  9671  
  9672  	// OperationStatusPending is a OperationStatus enum value
  9673  	OperationStatusPending = "PENDING"
  9674  
  9675  	// OperationStatusSuccess is a OperationStatus enum value
  9676  	OperationStatusSuccess = "SUCCESS"
  9677  
  9678  	// OperationStatusFail is a OperationStatus enum value
  9679  	OperationStatusFail = "FAIL"
  9680  )
  9681  
  9682  // OperationStatus_Values returns all elements of the OperationStatus enum
  9683  func OperationStatus_Values() []string {
  9684  	return []string{
  9685  		OperationStatusSubmitted,
  9686  		OperationStatusPending,
  9687  		OperationStatusSuccess,
  9688  		OperationStatusFail,
  9689  	}
  9690  }
  9691  
  9692  const (
  9693  	// OperationTargetTypeNamespace is a OperationTargetType enum value
  9694  	OperationTargetTypeNamespace = "NAMESPACE"
  9695  
  9696  	// OperationTargetTypeService is a OperationTargetType enum value
  9697  	OperationTargetTypeService = "SERVICE"
  9698  
  9699  	// OperationTargetTypeInstance is a OperationTargetType enum value
  9700  	OperationTargetTypeInstance = "INSTANCE"
  9701  )
  9702  
  9703  // OperationTargetType_Values returns all elements of the OperationTargetType enum
  9704  func OperationTargetType_Values() []string {
  9705  	return []string{
  9706  		OperationTargetTypeNamespace,
  9707  		OperationTargetTypeService,
  9708  		OperationTargetTypeInstance,
  9709  	}
  9710  }
  9711  
  9712  const (
  9713  	// OperationTypeCreateNamespace is a OperationType enum value
  9714  	OperationTypeCreateNamespace = "CREATE_NAMESPACE"
  9715  
  9716  	// OperationTypeDeleteNamespace is a OperationType enum value
  9717  	OperationTypeDeleteNamespace = "DELETE_NAMESPACE"
  9718  
  9719  	// OperationTypeUpdateNamespace is a OperationType enum value
  9720  	OperationTypeUpdateNamespace = "UPDATE_NAMESPACE"
  9721  
  9722  	// OperationTypeUpdateService is a OperationType enum value
  9723  	OperationTypeUpdateService = "UPDATE_SERVICE"
  9724  
  9725  	// OperationTypeRegisterInstance is a OperationType enum value
  9726  	OperationTypeRegisterInstance = "REGISTER_INSTANCE"
  9727  
  9728  	// OperationTypeDeregisterInstance is a OperationType enum value
  9729  	OperationTypeDeregisterInstance = "DEREGISTER_INSTANCE"
  9730  )
  9731  
  9732  // OperationType_Values returns all elements of the OperationType enum
  9733  func OperationType_Values() []string {
  9734  	return []string{
  9735  		OperationTypeCreateNamespace,
  9736  		OperationTypeDeleteNamespace,
  9737  		OperationTypeUpdateNamespace,
  9738  		OperationTypeUpdateService,
  9739  		OperationTypeRegisterInstance,
  9740  		OperationTypeDeregisterInstance,
  9741  	}
  9742  }
  9743  
  9744  const (
  9745  	// RecordTypeSrv is a RecordType enum value
  9746  	RecordTypeSrv = "SRV"
  9747  
  9748  	// RecordTypeA is a RecordType enum value
  9749  	RecordTypeA = "A"
  9750  
  9751  	// RecordTypeAaaa is a RecordType enum value
  9752  	RecordTypeAaaa = "AAAA"
  9753  
  9754  	// RecordTypeCname is a RecordType enum value
  9755  	RecordTypeCname = "CNAME"
  9756  )
  9757  
  9758  // RecordType_Values returns all elements of the RecordType enum
  9759  func RecordType_Values() []string {
  9760  	return []string{
  9761  		RecordTypeSrv,
  9762  		RecordTypeA,
  9763  		RecordTypeAaaa,
  9764  		RecordTypeCname,
  9765  	}
  9766  }
  9767  
  9768  const (
  9769  	// RoutingPolicyMultivalue is a RoutingPolicy enum value
  9770  	RoutingPolicyMultivalue = "MULTIVALUE"
  9771  
  9772  	// RoutingPolicyWeighted is a RoutingPolicy enum value
  9773  	RoutingPolicyWeighted = "WEIGHTED"
  9774  )
  9775  
  9776  // RoutingPolicy_Values returns all elements of the RoutingPolicy enum
  9777  func RoutingPolicy_Values() []string {
  9778  	return []string{
  9779  		RoutingPolicyMultivalue,
  9780  		RoutingPolicyWeighted,
  9781  	}
  9782  }
  9783  
  9784  const (
  9785  	// ServiceFilterNameNamespaceId is a ServiceFilterName enum value
  9786  	ServiceFilterNameNamespaceId = "NAMESPACE_ID"
  9787  )
  9788  
  9789  // ServiceFilterName_Values returns all elements of the ServiceFilterName enum
  9790  func ServiceFilterName_Values() []string {
  9791  	return []string{
  9792  		ServiceFilterNameNamespaceId,
  9793  	}
  9794  }
  9795  
  9796  const (
  9797  	// ServiceTypeHttp is a ServiceType enum value
  9798  	ServiceTypeHttp = "HTTP"
  9799  
  9800  	// ServiceTypeDnsHttp is a ServiceType enum value
  9801  	ServiceTypeDnsHttp = "DNS_HTTP"
  9802  
  9803  	// ServiceTypeDns is a ServiceType enum value
  9804  	ServiceTypeDns = "DNS"
  9805  )
  9806  
  9807  // ServiceType_Values returns all elements of the ServiceType enum
  9808  func ServiceType_Values() []string {
  9809  	return []string{
  9810  		ServiceTypeHttp,
  9811  		ServiceTypeDnsHttp,
  9812  		ServiceTypeDns,
  9813  	}
  9814  }
  9815  
  9816  const (
  9817  	// ServiceTypeOptionHttp is a ServiceTypeOption enum value
  9818  	ServiceTypeOptionHttp = "HTTP"
  9819  )
  9820  
  9821  // ServiceTypeOption_Values returns all elements of the ServiceTypeOption enum
  9822  func ServiceTypeOption_Values() []string {
  9823  	return []string{
  9824  		ServiceTypeOptionHttp,
  9825  	}
  9826  }