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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package clouddirectory
     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/restjson"
    14  )
    15  
    16  const opAddFacetToObject = "AddFacetToObject"
    17  
    18  // AddFacetToObjectRequest generates a "aws/request.Request" representing the
    19  // client's request for the AddFacetToObject 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 AddFacetToObject for more information on using the AddFacetToObject
    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 AddFacetToObjectRequest method.
    34  //    req, resp := client.AddFacetToObjectRequest(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/clouddirectory-2017-01-11/AddFacetToObject
    42  func (c *CloudDirectory) AddFacetToObjectRequest(input *AddFacetToObjectInput) (req *request.Request, output *AddFacetToObjectOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAddFacetToObject,
    45  		HTTPMethod: "PUT",
    46  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AddFacetToObjectInput{}
    51  	}
    52  
    53  	output = &AddFacetToObjectOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // AddFacetToObject API operation for Amazon CloudDirectory.
    60  //
    61  // Adds a new Facet to an object. An object can have more than one facet applied
    62  // on it.
    63  //
    64  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    65  // with awserr.Error's Code and Message methods to get detailed information about
    66  // the error.
    67  //
    68  // See the AWS API reference guide for Amazon CloudDirectory's
    69  // API operation AddFacetToObject for usage and error information.
    70  //
    71  // Returned Error Types:
    72  //   * InternalServiceException
    73  //   Indicates a problem that must be resolved by Amazon Web Services. This might
    74  //   be a transient error in which case you can retry your request until it succeeds.
    75  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
    76  //   site to see if there are any operational issues with the service.
    77  //
    78  //   * InvalidArnException
    79  //   Indicates that the provided ARN value is not valid.
    80  //
    81  //   * RetryableConflictException
    82  //   Occurs when a conflict with a previous successful write is detected. For
    83  //   example, if a write operation occurs on an object and then an attempt is
    84  //   made to read the object using “SERIALIZABLE” consistency, this exception
    85  //   may result. This generally occurs when the previous write did not have time
    86  //   to propagate to the host serving the current request. A retry (with appropriate
    87  //   backoff logic) is the recommended response to this exception.
    88  //
    89  //   * ValidationException
    90  //   Indicates that your request is malformed in some manner. See the exception
    91  //   message.
    92  //
    93  //   * LimitExceededException
    94  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
    95  //   for more information.
    96  //
    97  //   * AccessDeniedException
    98  //   Access denied or directory not found. Either you don't have permissions for
    99  //   this directory or the directory does not exist. Try calling ListDirectories
   100  //   and check your permissions.
   101  //
   102  //   * DirectoryNotEnabledException
   103  //   Operations are only permitted on enabled directories.
   104  //
   105  //   * ResourceNotFoundException
   106  //   The specified resource could not be found.
   107  //
   108  //   * FacetValidationException
   109  //   The Facet that you provided was not well formed or could not be validated
   110  //   with the schema.
   111  //
   112  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject
   113  func (c *CloudDirectory) AddFacetToObject(input *AddFacetToObjectInput) (*AddFacetToObjectOutput, error) {
   114  	req, out := c.AddFacetToObjectRequest(input)
   115  	return out, req.Send()
   116  }
   117  
   118  // AddFacetToObjectWithContext is the same as AddFacetToObject with the addition of
   119  // the ability to pass a context and additional request options.
   120  //
   121  // See AddFacetToObject for details on how to use this API operation.
   122  //
   123  // The context must be non-nil and will be used for request cancellation. If
   124  // the context is nil a panic will occur. In the future the SDK may create
   125  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   126  // for more information on using Contexts.
   127  func (c *CloudDirectory) AddFacetToObjectWithContext(ctx aws.Context, input *AddFacetToObjectInput, opts ...request.Option) (*AddFacetToObjectOutput, error) {
   128  	req, out := c.AddFacetToObjectRequest(input)
   129  	req.SetContext(ctx)
   130  	req.ApplyOptions(opts...)
   131  	return out, req.Send()
   132  }
   133  
   134  const opApplySchema = "ApplySchema"
   135  
   136  // ApplySchemaRequest generates a "aws/request.Request" representing the
   137  // client's request for the ApplySchema operation. The "output" return
   138  // value will be populated with the request's response once the request completes
   139  // successfully.
   140  //
   141  // Use "Send" method on the returned Request to send the API call to the service.
   142  // the "output" return value is not valid until after Send returns without error.
   143  //
   144  // See ApplySchema for more information on using the ApplySchema
   145  // API call, and error handling.
   146  //
   147  // This method is useful when you want to inject custom logic or configuration
   148  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   149  //
   150  //
   151  //    // Example sending a request using the ApplySchemaRequest method.
   152  //    req, resp := client.ApplySchemaRequest(params)
   153  //
   154  //    err := req.Send()
   155  //    if err == nil { // resp is now filled
   156  //        fmt.Println(resp)
   157  //    }
   158  //
   159  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
   160  func (c *CloudDirectory) ApplySchemaRequest(input *ApplySchemaInput) (req *request.Request, output *ApplySchemaOutput) {
   161  	op := &request.Operation{
   162  		Name:       opApplySchema,
   163  		HTTPMethod: "PUT",
   164  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/apply",
   165  	}
   166  
   167  	if input == nil {
   168  		input = &ApplySchemaInput{}
   169  	}
   170  
   171  	output = &ApplySchemaOutput{}
   172  	req = c.newRequest(op, input, output)
   173  	return
   174  }
   175  
   176  // ApplySchema API operation for Amazon CloudDirectory.
   177  //
   178  // Copies the input published schema, at the specified version, into the Directory
   179  // with the same name and version as that of the published schema.
   180  //
   181  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   182  // with awserr.Error's Code and Message methods to get detailed information about
   183  // the error.
   184  //
   185  // See the AWS API reference guide for Amazon CloudDirectory's
   186  // API operation ApplySchema for usage and error information.
   187  //
   188  // Returned Error Types:
   189  //   * InternalServiceException
   190  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   191  //   be a transient error in which case you can retry your request until it succeeds.
   192  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   193  //   site to see if there are any operational issues with the service.
   194  //
   195  //   * InvalidArnException
   196  //   Indicates that the provided ARN value is not valid.
   197  //
   198  //   * RetryableConflictException
   199  //   Occurs when a conflict with a previous successful write is detected. For
   200  //   example, if a write operation occurs on an object and then an attempt is
   201  //   made to read the object using “SERIALIZABLE” consistency, this exception
   202  //   may result. This generally occurs when the previous write did not have time
   203  //   to propagate to the host serving the current request. A retry (with appropriate
   204  //   backoff logic) is the recommended response to this exception.
   205  //
   206  //   * ValidationException
   207  //   Indicates that your request is malformed in some manner. See the exception
   208  //   message.
   209  //
   210  //   * LimitExceededException
   211  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   212  //   for more information.
   213  //
   214  //   * AccessDeniedException
   215  //   Access denied or directory not found. Either you don't have permissions for
   216  //   this directory or the directory does not exist. Try calling ListDirectories
   217  //   and check your permissions.
   218  //
   219  //   * SchemaAlreadyExistsException
   220  //   Indicates that a schema could not be created due to a naming conflict. Please
   221  //   select a different name and then try again.
   222  //
   223  //   * ResourceNotFoundException
   224  //   The specified resource could not be found.
   225  //
   226  //   * InvalidAttachmentException
   227  //   Indicates that an attempt to make an attachment was invalid. For example,
   228  //   attaching two nodes with a link type that is not applicable to the nodes
   229  //   or attempting to apply a schema to a directory a second time.
   230  //
   231  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
   232  func (c *CloudDirectory) ApplySchema(input *ApplySchemaInput) (*ApplySchemaOutput, error) {
   233  	req, out := c.ApplySchemaRequest(input)
   234  	return out, req.Send()
   235  }
   236  
   237  // ApplySchemaWithContext is the same as ApplySchema with the addition of
   238  // the ability to pass a context and additional request options.
   239  //
   240  // See ApplySchema for details on how to use this API operation.
   241  //
   242  // The context must be non-nil and will be used for request cancellation. If
   243  // the context is nil a panic will occur. In the future the SDK may create
   244  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   245  // for more information on using Contexts.
   246  func (c *CloudDirectory) ApplySchemaWithContext(ctx aws.Context, input *ApplySchemaInput, opts ...request.Option) (*ApplySchemaOutput, error) {
   247  	req, out := c.ApplySchemaRequest(input)
   248  	req.SetContext(ctx)
   249  	req.ApplyOptions(opts...)
   250  	return out, req.Send()
   251  }
   252  
   253  const opAttachObject = "AttachObject"
   254  
   255  // AttachObjectRequest generates a "aws/request.Request" representing the
   256  // client's request for the AttachObject operation. The "output" return
   257  // value will be populated with the request's response once the request completes
   258  // successfully.
   259  //
   260  // Use "Send" method on the returned Request to send the API call to the service.
   261  // the "output" return value is not valid until after Send returns without error.
   262  //
   263  // See AttachObject for more information on using the AttachObject
   264  // API call, and error handling.
   265  //
   266  // This method is useful when you want to inject custom logic or configuration
   267  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   268  //
   269  //
   270  //    // Example sending a request using the AttachObjectRequest method.
   271  //    req, resp := client.AttachObjectRequest(params)
   272  //
   273  //    err := req.Send()
   274  //    if err == nil { // resp is now filled
   275  //        fmt.Println(resp)
   276  //    }
   277  //
   278  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
   279  func (c *CloudDirectory) AttachObjectRequest(input *AttachObjectInput) (req *request.Request, output *AttachObjectOutput) {
   280  	op := &request.Operation{
   281  		Name:       opAttachObject,
   282  		HTTPMethod: "PUT",
   283  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attach",
   284  	}
   285  
   286  	if input == nil {
   287  		input = &AttachObjectInput{}
   288  	}
   289  
   290  	output = &AttachObjectOutput{}
   291  	req = c.newRequest(op, input, output)
   292  	return
   293  }
   294  
   295  // AttachObject API operation for Amazon CloudDirectory.
   296  //
   297  // Attaches an existing object to another object. An object can be accessed
   298  // in two ways:
   299  //
   300  // Using the path
   301  //
   302  // Using ObjectIdentifier
   303  //
   304  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   305  // with awserr.Error's Code and Message methods to get detailed information about
   306  // the error.
   307  //
   308  // See the AWS API reference guide for Amazon CloudDirectory's
   309  // API operation AttachObject for usage and error information.
   310  //
   311  // Returned Error Types:
   312  //   * InternalServiceException
   313  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   314  //   be a transient error in which case you can retry your request until it succeeds.
   315  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   316  //   site to see if there are any operational issues with the service.
   317  //
   318  //   * InvalidArnException
   319  //   Indicates that the provided ARN value is not valid.
   320  //
   321  //   * RetryableConflictException
   322  //   Occurs when a conflict with a previous successful write is detected. For
   323  //   example, if a write operation occurs on an object and then an attempt is
   324  //   made to read the object using “SERIALIZABLE” consistency, this exception
   325  //   may result. This generally occurs when the previous write did not have time
   326  //   to propagate to the host serving the current request. A retry (with appropriate
   327  //   backoff logic) is the recommended response to this exception.
   328  //
   329  //   * ValidationException
   330  //   Indicates that your request is malformed in some manner. See the exception
   331  //   message.
   332  //
   333  //   * LimitExceededException
   334  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   335  //   for more information.
   336  //
   337  //   * AccessDeniedException
   338  //   Access denied or directory not found. Either you don't have permissions for
   339  //   this directory or the directory does not exist. Try calling ListDirectories
   340  //   and check your permissions.
   341  //
   342  //   * DirectoryNotEnabledException
   343  //   Operations are only permitted on enabled directories.
   344  //
   345  //   * ResourceNotFoundException
   346  //   The specified resource could not be found.
   347  //
   348  //   * LinkNameAlreadyInUseException
   349  //   Indicates that a link could not be created due to a naming conflict. Choose
   350  //   a different name and then try again.
   351  //
   352  //   * InvalidAttachmentException
   353  //   Indicates that an attempt to make an attachment was invalid. For example,
   354  //   attaching two nodes with a link type that is not applicable to the nodes
   355  //   or attempting to apply a schema to a directory a second time.
   356  //
   357  //   * ValidationException
   358  //   Indicates that your request is malformed in some manner. See the exception
   359  //   message.
   360  //
   361  //   * FacetValidationException
   362  //   The Facet that you provided was not well formed or could not be validated
   363  //   with the schema.
   364  //
   365  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
   366  func (c *CloudDirectory) AttachObject(input *AttachObjectInput) (*AttachObjectOutput, error) {
   367  	req, out := c.AttachObjectRequest(input)
   368  	return out, req.Send()
   369  }
   370  
   371  // AttachObjectWithContext is the same as AttachObject with the addition of
   372  // the ability to pass a context and additional request options.
   373  //
   374  // See AttachObject for details on how to use this API operation.
   375  //
   376  // The context must be non-nil and will be used for request cancellation. If
   377  // the context is nil a panic will occur. In the future the SDK may create
   378  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   379  // for more information on using Contexts.
   380  func (c *CloudDirectory) AttachObjectWithContext(ctx aws.Context, input *AttachObjectInput, opts ...request.Option) (*AttachObjectOutput, error) {
   381  	req, out := c.AttachObjectRequest(input)
   382  	req.SetContext(ctx)
   383  	req.ApplyOptions(opts...)
   384  	return out, req.Send()
   385  }
   386  
   387  const opAttachPolicy = "AttachPolicy"
   388  
   389  // AttachPolicyRequest generates a "aws/request.Request" representing the
   390  // client's request for the AttachPolicy operation. The "output" return
   391  // value will be populated with the request's response once the request completes
   392  // successfully.
   393  //
   394  // Use "Send" method on the returned Request to send the API call to the service.
   395  // the "output" return value is not valid until after Send returns without error.
   396  //
   397  // See AttachPolicy for more information on using the AttachPolicy
   398  // API call, and error handling.
   399  //
   400  // This method is useful when you want to inject custom logic or configuration
   401  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   402  //
   403  //
   404  //    // Example sending a request using the AttachPolicyRequest method.
   405  //    req, resp := client.AttachPolicyRequest(params)
   406  //
   407  //    err := req.Send()
   408  //    if err == nil { // resp is now filled
   409  //        fmt.Println(resp)
   410  //    }
   411  //
   412  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
   413  func (c *CloudDirectory) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
   414  	op := &request.Operation{
   415  		Name:       opAttachPolicy,
   416  		HTTPMethod: "PUT",
   417  		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attach",
   418  	}
   419  
   420  	if input == nil {
   421  		input = &AttachPolicyInput{}
   422  	}
   423  
   424  	output = &AttachPolicyOutput{}
   425  	req = c.newRequest(op, input, output)
   426  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   427  	return
   428  }
   429  
   430  // AttachPolicy API operation for Amazon CloudDirectory.
   431  //
   432  // Attaches a policy object to a regular object. An object can have a limited
   433  // number of attached policies.
   434  //
   435  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   436  // with awserr.Error's Code and Message methods to get detailed information about
   437  // the error.
   438  //
   439  // See the AWS API reference guide for Amazon CloudDirectory's
   440  // API operation AttachPolicy for usage and error information.
   441  //
   442  // Returned Error Types:
   443  //   * InternalServiceException
   444  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   445  //   be a transient error in which case you can retry your request until it succeeds.
   446  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   447  //   site to see if there are any operational issues with the service.
   448  //
   449  //   * InvalidArnException
   450  //   Indicates that the provided ARN value is not valid.
   451  //
   452  //   * RetryableConflictException
   453  //   Occurs when a conflict with a previous successful write is detected. For
   454  //   example, if a write operation occurs on an object and then an attempt is
   455  //   made to read the object using “SERIALIZABLE” consistency, this exception
   456  //   may result. This generally occurs when the previous write did not have time
   457  //   to propagate to the host serving the current request. A retry (with appropriate
   458  //   backoff logic) is the recommended response to this exception.
   459  //
   460  //   * ValidationException
   461  //   Indicates that your request is malformed in some manner. See the exception
   462  //   message.
   463  //
   464  //   * LimitExceededException
   465  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   466  //   for more information.
   467  //
   468  //   * AccessDeniedException
   469  //   Access denied or directory not found. Either you don't have permissions for
   470  //   this directory or the directory does not exist. Try calling ListDirectories
   471  //   and check your permissions.
   472  //
   473  //   * DirectoryNotEnabledException
   474  //   Operations are only permitted on enabled directories.
   475  //
   476  //   * ResourceNotFoundException
   477  //   The specified resource could not be found.
   478  //
   479  //   * NotPolicyException
   480  //   Indicates that the requested operation can only operate on policy objects.
   481  //
   482  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
   483  func (c *CloudDirectory) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
   484  	req, out := c.AttachPolicyRequest(input)
   485  	return out, req.Send()
   486  }
   487  
   488  // AttachPolicyWithContext is the same as AttachPolicy with the addition of
   489  // the ability to pass a context and additional request options.
   490  //
   491  // See AttachPolicy for details on how to use this API operation.
   492  //
   493  // The context must be non-nil and will be used for request cancellation. If
   494  // the context is nil a panic will occur. In the future the SDK may create
   495  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   496  // for more information on using Contexts.
   497  func (c *CloudDirectory) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
   498  	req, out := c.AttachPolicyRequest(input)
   499  	req.SetContext(ctx)
   500  	req.ApplyOptions(opts...)
   501  	return out, req.Send()
   502  }
   503  
   504  const opAttachToIndex = "AttachToIndex"
   505  
   506  // AttachToIndexRequest generates a "aws/request.Request" representing the
   507  // client's request for the AttachToIndex operation. The "output" return
   508  // value will be populated with the request's response once the request completes
   509  // successfully.
   510  //
   511  // Use "Send" method on the returned Request to send the API call to the service.
   512  // the "output" return value is not valid until after Send returns without error.
   513  //
   514  // See AttachToIndex for more information on using the AttachToIndex
   515  // API call, and error handling.
   516  //
   517  // This method is useful when you want to inject custom logic or configuration
   518  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   519  //
   520  //
   521  //    // Example sending a request using the AttachToIndexRequest method.
   522  //    req, resp := client.AttachToIndexRequest(params)
   523  //
   524  //    err := req.Send()
   525  //    if err == nil { // resp is now filled
   526  //        fmt.Println(resp)
   527  //    }
   528  //
   529  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
   530  func (c *CloudDirectory) AttachToIndexRequest(input *AttachToIndexInput) (req *request.Request, output *AttachToIndexOutput) {
   531  	op := &request.Operation{
   532  		Name:       opAttachToIndex,
   533  		HTTPMethod: "PUT",
   534  		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/attach",
   535  	}
   536  
   537  	if input == nil {
   538  		input = &AttachToIndexInput{}
   539  	}
   540  
   541  	output = &AttachToIndexOutput{}
   542  	req = c.newRequest(op, input, output)
   543  	return
   544  }
   545  
   546  // AttachToIndex API operation for Amazon CloudDirectory.
   547  //
   548  // Attaches the specified object to the specified index.
   549  //
   550  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   551  // with awserr.Error's Code and Message methods to get detailed information about
   552  // the error.
   553  //
   554  // See the AWS API reference guide for Amazon CloudDirectory's
   555  // API operation AttachToIndex for usage and error information.
   556  //
   557  // Returned Error Types:
   558  //   * InternalServiceException
   559  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   560  //   be a transient error in which case you can retry your request until it succeeds.
   561  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   562  //   site to see if there are any operational issues with the service.
   563  //
   564  //   * InvalidArnException
   565  //   Indicates that the provided ARN value is not valid.
   566  //
   567  //   * RetryableConflictException
   568  //   Occurs when a conflict with a previous successful write is detected. For
   569  //   example, if a write operation occurs on an object and then an attempt is
   570  //   made to read the object using “SERIALIZABLE” consistency, this exception
   571  //   may result. This generally occurs when the previous write did not have time
   572  //   to propagate to the host serving the current request. A retry (with appropriate
   573  //   backoff logic) is the recommended response to this exception.
   574  //
   575  //   * ValidationException
   576  //   Indicates that your request is malformed in some manner. See the exception
   577  //   message.
   578  //
   579  //   * LimitExceededException
   580  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   581  //   for more information.
   582  //
   583  //   * AccessDeniedException
   584  //   Access denied or directory not found. Either you don't have permissions for
   585  //   this directory or the directory does not exist. Try calling ListDirectories
   586  //   and check your permissions.
   587  //
   588  //   * DirectoryNotEnabledException
   589  //   Operations are only permitted on enabled directories.
   590  //
   591  //   * InvalidAttachmentException
   592  //   Indicates that an attempt to make an attachment was invalid. For example,
   593  //   attaching two nodes with a link type that is not applicable to the nodes
   594  //   or attempting to apply a schema to a directory a second time.
   595  //
   596  //   * ResourceNotFoundException
   597  //   The specified resource could not be found.
   598  //
   599  //   * LinkNameAlreadyInUseException
   600  //   Indicates that a link could not be created due to a naming conflict. Choose
   601  //   a different name and then try again.
   602  //
   603  //   * IndexedAttributeMissingException
   604  //   An object has been attempted to be attached to an object that does not have
   605  //   the appropriate attribute value.
   606  //
   607  //   * NotIndexException
   608  //   Indicates that the requested operation can only operate on index objects.
   609  //
   610  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
   611  func (c *CloudDirectory) AttachToIndex(input *AttachToIndexInput) (*AttachToIndexOutput, error) {
   612  	req, out := c.AttachToIndexRequest(input)
   613  	return out, req.Send()
   614  }
   615  
   616  // AttachToIndexWithContext is the same as AttachToIndex with the addition of
   617  // the ability to pass a context and additional request options.
   618  //
   619  // See AttachToIndex for details on how to use this API operation.
   620  //
   621  // The context must be non-nil and will be used for request cancellation. If
   622  // the context is nil a panic will occur. In the future the SDK may create
   623  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   624  // for more information on using Contexts.
   625  func (c *CloudDirectory) AttachToIndexWithContext(ctx aws.Context, input *AttachToIndexInput, opts ...request.Option) (*AttachToIndexOutput, error) {
   626  	req, out := c.AttachToIndexRequest(input)
   627  	req.SetContext(ctx)
   628  	req.ApplyOptions(opts...)
   629  	return out, req.Send()
   630  }
   631  
   632  const opAttachTypedLink = "AttachTypedLink"
   633  
   634  // AttachTypedLinkRequest generates a "aws/request.Request" representing the
   635  // client's request for the AttachTypedLink operation. The "output" return
   636  // value will be populated with the request's response once the request completes
   637  // successfully.
   638  //
   639  // Use "Send" method on the returned Request to send the API call to the service.
   640  // the "output" return value is not valid until after Send returns without error.
   641  //
   642  // See AttachTypedLink for more information on using the AttachTypedLink
   643  // API call, and error handling.
   644  //
   645  // This method is useful when you want to inject custom logic or configuration
   646  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   647  //
   648  //
   649  //    // Example sending a request using the AttachTypedLinkRequest method.
   650  //    req, resp := client.AttachTypedLinkRequest(params)
   651  //
   652  //    err := req.Send()
   653  //    if err == nil { // resp is now filled
   654  //        fmt.Println(resp)
   655  //    }
   656  //
   657  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
   658  func (c *CloudDirectory) AttachTypedLinkRequest(input *AttachTypedLinkInput) (req *request.Request, output *AttachTypedLinkOutput) {
   659  	op := &request.Operation{
   660  		Name:       opAttachTypedLink,
   661  		HTTPMethod: "PUT",
   662  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attach",
   663  	}
   664  
   665  	if input == nil {
   666  		input = &AttachTypedLinkInput{}
   667  	}
   668  
   669  	output = &AttachTypedLinkOutput{}
   670  	req = c.newRequest(op, input, output)
   671  	return
   672  }
   673  
   674  // AttachTypedLink API operation for Amazon CloudDirectory.
   675  //
   676  // Attaches a typed link to a specified source and target object. For more information,
   677  // see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
   678  //
   679  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   680  // with awserr.Error's Code and Message methods to get detailed information about
   681  // the error.
   682  //
   683  // See the AWS API reference guide for Amazon CloudDirectory's
   684  // API operation AttachTypedLink for usage and error information.
   685  //
   686  // Returned Error Types:
   687  //   * InternalServiceException
   688  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   689  //   be a transient error in which case you can retry your request until it succeeds.
   690  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   691  //   site to see if there are any operational issues with the service.
   692  //
   693  //   * InvalidArnException
   694  //   Indicates that the provided ARN value is not valid.
   695  //
   696  //   * RetryableConflictException
   697  //   Occurs when a conflict with a previous successful write is detected. For
   698  //   example, if a write operation occurs on an object and then an attempt is
   699  //   made to read the object using “SERIALIZABLE” consistency, this exception
   700  //   may result. This generally occurs when the previous write did not have time
   701  //   to propagate to the host serving the current request. A retry (with appropriate
   702  //   backoff logic) is the recommended response to this exception.
   703  //
   704  //   * ValidationException
   705  //   Indicates that your request is malformed in some manner. See the exception
   706  //   message.
   707  //
   708  //   * LimitExceededException
   709  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   710  //   for more information.
   711  //
   712  //   * AccessDeniedException
   713  //   Access denied or directory not found. Either you don't have permissions for
   714  //   this directory or the directory does not exist. Try calling ListDirectories
   715  //   and check your permissions.
   716  //
   717  //   * DirectoryNotEnabledException
   718  //   Operations are only permitted on enabled directories.
   719  //
   720  //   * ResourceNotFoundException
   721  //   The specified resource could not be found.
   722  //
   723  //   * InvalidAttachmentException
   724  //   Indicates that an attempt to make an attachment was invalid. For example,
   725  //   attaching two nodes with a link type that is not applicable to the nodes
   726  //   or attempting to apply a schema to a directory a second time.
   727  //
   728  //   * ValidationException
   729  //   Indicates that your request is malformed in some manner. See the exception
   730  //   message.
   731  //
   732  //   * FacetValidationException
   733  //   The Facet that you provided was not well formed or could not be validated
   734  //   with the schema.
   735  //
   736  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
   737  func (c *CloudDirectory) AttachTypedLink(input *AttachTypedLinkInput) (*AttachTypedLinkOutput, error) {
   738  	req, out := c.AttachTypedLinkRequest(input)
   739  	return out, req.Send()
   740  }
   741  
   742  // AttachTypedLinkWithContext is the same as AttachTypedLink with the addition of
   743  // the ability to pass a context and additional request options.
   744  //
   745  // See AttachTypedLink for details on how to use this API operation.
   746  //
   747  // The context must be non-nil and will be used for request cancellation. If
   748  // the context is nil a panic will occur. In the future the SDK may create
   749  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   750  // for more information on using Contexts.
   751  func (c *CloudDirectory) AttachTypedLinkWithContext(ctx aws.Context, input *AttachTypedLinkInput, opts ...request.Option) (*AttachTypedLinkOutput, error) {
   752  	req, out := c.AttachTypedLinkRequest(input)
   753  	req.SetContext(ctx)
   754  	req.ApplyOptions(opts...)
   755  	return out, req.Send()
   756  }
   757  
   758  const opBatchRead = "BatchRead"
   759  
   760  // BatchReadRequest generates a "aws/request.Request" representing the
   761  // client's request for the BatchRead operation. The "output" return
   762  // value will be populated with the request's response once the request completes
   763  // successfully.
   764  //
   765  // Use "Send" method on the returned Request to send the API call to the service.
   766  // the "output" return value is not valid until after Send returns without error.
   767  //
   768  // See BatchRead for more information on using the BatchRead
   769  // API call, and error handling.
   770  //
   771  // This method is useful when you want to inject custom logic or configuration
   772  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   773  //
   774  //
   775  //    // Example sending a request using the BatchReadRequest method.
   776  //    req, resp := client.BatchReadRequest(params)
   777  //
   778  //    err := req.Send()
   779  //    if err == nil { // resp is now filled
   780  //        fmt.Println(resp)
   781  //    }
   782  //
   783  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
   784  func (c *CloudDirectory) BatchReadRequest(input *BatchReadInput) (req *request.Request, output *BatchReadOutput) {
   785  	op := &request.Operation{
   786  		Name:       opBatchRead,
   787  		HTTPMethod: "POST",
   788  		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchread",
   789  	}
   790  
   791  	if input == nil {
   792  		input = &BatchReadInput{}
   793  	}
   794  
   795  	output = &BatchReadOutput{}
   796  	req = c.newRequest(op, input, output)
   797  	return
   798  }
   799  
   800  // BatchRead API operation for Amazon CloudDirectory.
   801  //
   802  // Performs all the read operations in a batch.
   803  //
   804  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   805  // with awserr.Error's Code and Message methods to get detailed information about
   806  // the error.
   807  //
   808  // See the AWS API reference guide for Amazon CloudDirectory's
   809  // API operation BatchRead for usage and error information.
   810  //
   811  // Returned Error Types:
   812  //   * InternalServiceException
   813  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   814  //   be a transient error in which case you can retry your request until it succeeds.
   815  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   816  //   site to see if there are any operational issues with the service.
   817  //
   818  //   * InvalidArnException
   819  //   Indicates that the provided ARN value is not valid.
   820  //
   821  //   * RetryableConflictException
   822  //   Occurs when a conflict with a previous successful write is detected. For
   823  //   example, if a write operation occurs on an object and then an attempt is
   824  //   made to read the object using “SERIALIZABLE” consistency, this exception
   825  //   may result. This generally occurs when the previous write did not have time
   826  //   to propagate to the host serving the current request. A retry (with appropriate
   827  //   backoff logic) is the recommended response to this exception.
   828  //
   829  //   * ValidationException
   830  //   Indicates that your request is malformed in some manner. See the exception
   831  //   message.
   832  //
   833  //   * LimitExceededException
   834  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   835  //   for more information.
   836  //
   837  //   * AccessDeniedException
   838  //   Access denied or directory not found. Either you don't have permissions for
   839  //   this directory or the directory does not exist. Try calling ListDirectories
   840  //   and check your permissions.
   841  //
   842  //   * DirectoryNotEnabledException
   843  //   Operations are only permitted on enabled directories.
   844  //
   845  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
   846  func (c *CloudDirectory) BatchRead(input *BatchReadInput) (*BatchReadOutput, error) {
   847  	req, out := c.BatchReadRequest(input)
   848  	return out, req.Send()
   849  }
   850  
   851  // BatchReadWithContext is the same as BatchRead with the addition of
   852  // the ability to pass a context and additional request options.
   853  //
   854  // See BatchRead for details on how to use this API operation.
   855  //
   856  // The context must be non-nil and will be used for request cancellation. If
   857  // the context is nil a panic will occur. In the future the SDK may create
   858  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   859  // for more information on using Contexts.
   860  func (c *CloudDirectory) BatchReadWithContext(ctx aws.Context, input *BatchReadInput, opts ...request.Option) (*BatchReadOutput, error) {
   861  	req, out := c.BatchReadRequest(input)
   862  	req.SetContext(ctx)
   863  	req.ApplyOptions(opts...)
   864  	return out, req.Send()
   865  }
   866  
   867  const opBatchWrite = "BatchWrite"
   868  
   869  // BatchWriteRequest generates a "aws/request.Request" representing the
   870  // client's request for the BatchWrite operation. The "output" return
   871  // value will be populated with the request's response once the request completes
   872  // successfully.
   873  //
   874  // Use "Send" method on the returned Request to send the API call to the service.
   875  // the "output" return value is not valid until after Send returns without error.
   876  //
   877  // See BatchWrite for more information on using the BatchWrite
   878  // API call, and error handling.
   879  //
   880  // This method is useful when you want to inject custom logic or configuration
   881  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   882  //
   883  //
   884  //    // Example sending a request using the BatchWriteRequest method.
   885  //    req, resp := client.BatchWriteRequest(params)
   886  //
   887  //    err := req.Send()
   888  //    if err == nil { // resp is now filled
   889  //        fmt.Println(resp)
   890  //    }
   891  //
   892  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
   893  func (c *CloudDirectory) BatchWriteRequest(input *BatchWriteInput) (req *request.Request, output *BatchWriteOutput) {
   894  	op := &request.Operation{
   895  		Name:       opBatchWrite,
   896  		HTTPMethod: "PUT",
   897  		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchwrite",
   898  	}
   899  
   900  	if input == nil {
   901  		input = &BatchWriteInput{}
   902  	}
   903  
   904  	output = &BatchWriteOutput{}
   905  	req = c.newRequest(op, input, output)
   906  	return
   907  }
   908  
   909  // BatchWrite API operation for Amazon CloudDirectory.
   910  //
   911  // Performs all the write operations in a batch. Either all the operations succeed
   912  // or none.
   913  //
   914  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   915  // with awserr.Error's Code and Message methods to get detailed information about
   916  // the error.
   917  //
   918  // See the AWS API reference guide for Amazon CloudDirectory's
   919  // API operation BatchWrite for usage and error information.
   920  //
   921  // Returned Error Types:
   922  //   * InternalServiceException
   923  //   Indicates a problem that must be resolved by Amazon Web Services. This might
   924  //   be a transient error in which case you can retry your request until it succeeds.
   925  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
   926  //   site to see if there are any operational issues with the service.
   927  //
   928  //   * InvalidArnException
   929  //   Indicates that the provided ARN value is not valid.
   930  //
   931  //   * RetryableConflictException
   932  //   Occurs when a conflict with a previous successful write is detected. For
   933  //   example, if a write operation occurs on an object and then an attempt is
   934  //   made to read the object using “SERIALIZABLE” consistency, this exception
   935  //   may result. This generally occurs when the previous write did not have time
   936  //   to propagate to the host serving the current request. A retry (with appropriate
   937  //   backoff logic) is the recommended response to this exception.
   938  //
   939  //   * ValidationException
   940  //   Indicates that your request is malformed in some manner. See the exception
   941  //   message.
   942  //
   943  //   * LimitExceededException
   944  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
   945  //   for more information.
   946  //
   947  //   * AccessDeniedException
   948  //   Access denied or directory not found. Either you don't have permissions for
   949  //   this directory or the directory does not exist. Try calling ListDirectories
   950  //   and check your permissions.
   951  //
   952  //   * DirectoryNotEnabledException
   953  //   Operations are only permitted on enabled directories.
   954  //
   955  //   * BatchWriteException
   956  //   A BatchWrite exception has occurred.
   957  //
   958  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
   959  func (c *CloudDirectory) BatchWrite(input *BatchWriteInput) (*BatchWriteOutput, error) {
   960  	req, out := c.BatchWriteRequest(input)
   961  	return out, req.Send()
   962  }
   963  
   964  // BatchWriteWithContext is the same as BatchWrite with the addition of
   965  // the ability to pass a context and additional request options.
   966  //
   967  // See BatchWrite for details on how to use this API operation.
   968  //
   969  // The context must be non-nil and will be used for request cancellation. If
   970  // the context is nil a panic will occur. In the future the SDK may create
   971  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   972  // for more information on using Contexts.
   973  func (c *CloudDirectory) BatchWriteWithContext(ctx aws.Context, input *BatchWriteInput, opts ...request.Option) (*BatchWriteOutput, error) {
   974  	req, out := c.BatchWriteRequest(input)
   975  	req.SetContext(ctx)
   976  	req.ApplyOptions(opts...)
   977  	return out, req.Send()
   978  }
   979  
   980  const opCreateDirectory = "CreateDirectory"
   981  
   982  // CreateDirectoryRequest generates a "aws/request.Request" representing the
   983  // client's request for the CreateDirectory operation. The "output" return
   984  // value will be populated with the request's response once the request completes
   985  // successfully.
   986  //
   987  // Use "Send" method on the returned Request to send the API call to the service.
   988  // the "output" return value is not valid until after Send returns without error.
   989  //
   990  // See CreateDirectory for more information on using the CreateDirectory
   991  // API call, and error handling.
   992  //
   993  // This method is useful when you want to inject custom logic or configuration
   994  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   995  //
   996  //
   997  //    // Example sending a request using the CreateDirectoryRequest method.
   998  //    req, resp := client.CreateDirectoryRequest(params)
   999  //
  1000  //    err := req.Send()
  1001  //    if err == nil { // resp is now filled
  1002  //        fmt.Println(resp)
  1003  //    }
  1004  //
  1005  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
  1006  func (c *CloudDirectory) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
  1007  	op := &request.Operation{
  1008  		Name:       opCreateDirectory,
  1009  		HTTPMethod: "PUT",
  1010  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/create",
  1011  	}
  1012  
  1013  	if input == nil {
  1014  		input = &CreateDirectoryInput{}
  1015  	}
  1016  
  1017  	output = &CreateDirectoryOutput{}
  1018  	req = c.newRequest(op, input, output)
  1019  	return
  1020  }
  1021  
  1022  // CreateDirectory API operation for Amazon CloudDirectory.
  1023  //
  1024  // Creates a Directory by copying the published schema into the directory. A
  1025  // directory cannot be created without a schema.
  1026  //
  1027  // You can also quickly create a directory using a managed schema, called the
  1028  // QuickStartSchema. For more information, see Managed Schema (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html)
  1029  // in the Amazon Cloud Directory Developer Guide.
  1030  //
  1031  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1032  // with awserr.Error's Code and Message methods to get detailed information about
  1033  // the error.
  1034  //
  1035  // See the AWS API reference guide for Amazon CloudDirectory's
  1036  // API operation CreateDirectory for usage and error information.
  1037  //
  1038  // Returned Error Types:
  1039  //   * InternalServiceException
  1040  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1041  //   be a transient error in which case you can retry your request until it succeeds.
  1042  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1043  //   site to see if there are any operational issues with the service.
  1044  //
  1045  //   * InvalidArnException
  1046  //   Indicates that the provided ARN value is not valid.
  1047  //
  1048  //   * RetryableConflictException
  1049  //   Occurs when a conflict with a previous successful write is detected. For
  1050  //   example, if a write operation occurs on an object and then an attempt is
  1051  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1052  //   may result. This generally occurs when the previous write did not have time
  1053  //   to propagate to the host serving the current request. A retry (with appropriate
  1054  //   backoff logic) is the recommended response to this exception.
  1055  //
  1056  //   * ValidationException
  1057  //   Indicates that your request is malformed in some manner. See the exception
  1058  //   message.
  1059  //
  1060  //   * LimitExceededException
  1061  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1062  //   for more information.
  1063  //
  1064  //   * AccessDeniedException
  1065  //   Access denied or directory not found. Either you don't have permissions for
  1066  //   this directory or the directory does not exist. Try calling ListDirectories
  1067  //   and check your permissions.
  1068  //
  1069  //   * DirectoryAlreadyExistsException
  1070  //   Indicates that a Directory could not be created due to a naming conflict.
  1071  //   Choose a different name and try again.
  1072  //
  1073  //   * ResourceNotFoundException
  1074  //   The specified resource could not be found.
  1075  //
  1076  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
  1077  func (c *CloudDirectory) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
  1078  	req, out := c.CreateDirectoryRequest(input)
  1079  	return out, req.Send()
  1080  }
  1081  
  1082  // CreateDirectoryWithContext is the same as CreateDirectory with the addition of
  1083  // the ability to pass a context and additional request options.
  1084  //
  1085  // See CreateDirectory for details on how to use this API operation.
  1086  //
  1087  // The context must be non-nil and will be used for request cancellation. If
  1088  // the context is nil a panic will occur. In the future the SDK may create
  1089  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1090  // for more information on using Contexts.
  1091  func (c *CloudDirectory) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
  1092  	req, out := c.CreateDirectoryRequest(input)
  1093  	req.SetContext(ctx)
  1094  	req.ApplyOptions(opts...)
  1095  	return out, req.Send()
  1096  }
  1097  
  1098  const opCreateFacet = "CreateFacet"
  1099  
  1100  // CreateFacetRequest generates a "aws/request.Request" representing the
  1101  // client's request for the CreateFacet operation. The "output" return
  1102  // value will be populated with the request's response once the request completes
  1103  // successfully.
  1104  //
  1105  // Use "Send" method on the returned Request to send the API call to the service.
  1106  // the "output" return value is not valid until after Send returns without error.
  1107  //
  1108  // See CreateFacet for more information on using the CreateFacet
  1109  // API call, and error handling.
  1110  //
  1111  // This method is useful when you want to inject custom logic or configuration
  1112  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1113  //
  1114  //
  1115  //    // Example sending a request using the CreateFacetRequest method.
  1116  //    req, resp := client.CreateFacetRequest(params)
  1117  //
  1118  //    err := req.Send()
  1119  //    if err == nil { // resp is now filled
  1120  //        fmt.Println(resp)
  1121  //    }
  1122  //
  1123  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
  1124  func (c *CloudDirectory) CreateFacetRequest(input *CreateFacetInput) (req *request.Request, output *CreateFacetOutput) {
  1125  	op := &request.Operation{
  1126  		Name:       opCreateFacet,
  1127  		HTTPMethod: "PUT",
  1128  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/create",
  1129  	}
  1130  
  1131  	if input == nil {
  1132  		input = &CreateFacetInput{}
  1133  	}
  1134  
  1135  	output = &CreateFacetOutput{}
  1136  	req = c.newRequest(op, input, output)
  1137  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1138  	return
  1139  }
  1140  
  1141  // CreateFacet API operation for Amazon CloudDirectory.
  1142  //
  1143  // Creates a new Facet in a schema. Facet creation is allowed only in development
  1144  // or applied schemas.
  1145  //
  1146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1147  // with awserr.Error's Code and Message methods to get detailed information about
  1148  // the error.
  1149  //
  1150  // See the AWS API reference guide for Amazon CloudDirectory's
  1151  // API operation CreateFacet for usage and error information.
  1152  //
  1153  // Returned Error Types:
  1154  //   * InternalServiceException
  1155  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1156  //   be a transient error in which case you can retry your request until it succeeds.
  1157  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1158  //   site to see if there are any operational issues with the service.
  1159  //
  1160  //   * InvalidArnException
  1161  //   Indicates that the provided ARN value is not valid.
  1162  //
  1163  //   * RetryableConflictException
  1164  //   Occurs when a conflict with a previous successful write is detected. For
  1165  //   example, if a write operation occurs on an object and then an attempt is
  1166  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1167  //   may result. This generally occurs when the previous write did not have time
  1168  //   to propagate to the host serving the current request. A retry (with appropriate
  1169  //   backoff logic) is the recommended response to this exception.
  1170  //
  1171  //   * ValidationException
  1172  //   Indicates that your request is malformed in some manner. See the exception
  1173  //   message.
  1174  //
  1175  //   * LimitExceededException
  1176  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1177  //   for more information.
  1178  //
  1179  //   * AccessDeniedException
  1180  //   Access denied or directory not found. Either you don't have permissions for
  1181  //   this directory or the directory does not exist. Try calling ListDirectories
  1182  //   and check your permissions.
  1183  //
  1184  //   * ResourceNotFoundException
  1185  //   The specified resource could not be found.
  1186  //
  1187  //   * FacetAlreadyExistsException
  1188  //   A facet with the same name already exists.
  1189  //
  1190  //   * InvalidRuleException
  1191  //   Occurs when any of the rule parameter keys or values are invalid.
  1192  //
  1193  //   * FacetValidationException
  1194  //   The Facet that you provided was not well formed or could not be validated
  1195  //   with the schema.
  1196  //
  1197  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
  1198  func (c *CloudDirectory) CreateFacet(input *CreateFacetInput) (*CreateFacetOutput, error) {
  1199  	req, out := c.CreateFacetRequest(input)
  1200  	return out, req.Send()
  1201  }
  1202  
  1203  // CreateFacetWithContext is the same as CreateFacet with the addition of
  1204  // the ability to pass a context and additional request options.
  1205  //
  1206  // See CreateFacet for details on how to use this API operation.
  1207  //
  1208  // The context must be non-nil and will be used for request cancellation. If
  1209  // the context is nil a panic will occur. In the future the SDK may create
  1210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1211  // for more information on using Contexts.
  1212  func (c *CloudDirectory) CreateFacetWithContext(ctx aws.Context, input *CreateFacetInput, opts ...request.Option) (*CreateFacetOutput, error) {
  1213  	req, out := c.CreateFacetRequest(input)
  1214  	req.SetContext(ctx)
  1215  	req.ApplyOptions(opts...)
  1216  	return out, req.Send()
  1217  }
  1218  
  1219  const opCreateIndex = "CreateIndex"
  1220  
  1221  // CreateIndexRequest generates a "aws/request.Request" representing the
  1222  // client's request for the CreateIndex operation. The "output" return
  1223  // value will be populated with the request's response once the request completes
  1224  // successfully.
  1225  //
  1226  // Use "Send" method on the returned Request to send the API call to the service.
  1227  // the "output" return value is not valid until after Send returns without error.
  1228  //
  1229  // See CreateIndex for more information on using the CreateIndex
  1230  // API call, and error handling.
  1231  //
  1232  // This method is useful when you want to inject custom logic or configuration
  1233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1234  //
  1235  //
  1236  //    // Example sending a request using the CreateIndexRequest method.
  1237  //    req, resp := client.CreateIndexRequest(params)
  1238  //
  1239  //    err := req.Send()
  1240  //    if err == nil { // resp is now filled
  1241  //        fmt.Println(resp)
  1242  //    }
  1243  //
  1244  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
  1245  func (c *CloudDirectory) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) {
  1246  	op := &request.Operation{
  1247  		Name:       opCreateIndex,
  1248  		HTTPMethod: "PUT",
  1249  		HTTPPath:   "/amazonclouddirectory/2017-01-11/index",
  1250  	}
  1251  
  1252  	if input == nil {
  1253  		input = &CreateIndexInput{}
  1254  	}
  1255  
  1256  	output = &CreateIndexOutput{}
  1257  	req = c.newRequest(op, input, output)
  1258  	return
  1259  }
  1260  
  1261  // CreateIndex API operation for Amazon CloudDirectory.
  1262  //
  1263  // Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html)
  1264  // for more information.
  1265  //
  1266  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1267  // with awserr.Error's Code and Message methods to get detailed information about
  1268  // the error.
  1269  //
  1270  // See the AWS API reference guide for Amazon CloudDirectory's
  1271  // API operation CreateIndex for usage and error information.
  1272  //
  1273  // Returned Error Types:
  1274  //   * InternalServiceException
  1275  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1276  //   be a transient error in which case you can retry your request until it succeeds.
  1277  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1278  //   site to see if there are any operational issues with the service.
  1279  //
  1280  //   * InvalidArnException
  1281  //   Indicates that the provided ARN value is not valid.
  1282  //
  1283  //   * RetryableConflictException
  1284  //   Occurs when a conflict with a previous successful write is detected. For
  1285  //   example, if a write operation occurs on an object and then an attempt is
  1286  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1287  //   may result. This generally occurs when the previous write did not have time
  1288  //   to propagate to the host serving the current request. A retry (with appropriate
  1289  //   backoff logic) is the recommended response to this exception.
  1290  //
  1291  //   * ValidationException
  1292  //   Indicates that your request is malformed in some manner. See the exception
  1293  //   message.
  1294  //
  1295  //   * LimitExceededException
  1296  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1297  //   for more information.
  1298  //
  1299  //   * AccessDeniedException
  1300  //   Access denied or directory not found. Either you don't have permissions for
  1301  //   this directory or the directory does not exist. Try calling ListDirectories
  1302  //   and check your permissions.
  1303  //
  1304  //   * DirectoryNotEnabledException
  1305  //   Operations are only permitted on enabled directories.
  1306  //
  1307  //   * ResourceNotFoundException
  1308  //   The specified resource could not be found.
  1309  //
  1310  //   * FacetValidationException
  1311  //   The Facet that you provided was not well formed or could not be validated
  1312  //   with the schema.
  1313  //
  1314  //   * LinkNameAlreadyInUseException
  1315  //   Indicates that a link could not be created due to a naming conflict. Choose
  1316  //   a different name and then try again.
  1317  //
  1318  //   * UnsupportedIndexTypeException
  1319  //   Indicates that the requested index type is not supported.
  1320  //
  1321  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
  1322  func (c *CloudDirectory) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) {
  1323  	req, out := c.CreateIndexRequest(input)
  1324  	return out, req.Send()
  1325  }
  1326  
  1327  // CreateIndexWithContext is the same as CreateIndex with the addition of
  1328  // the ability to pass a context and additional request options.
  1329  //
  1330  // See CreateIndex for details on how to use this API operation.
  1331  //
  1332  // The context must be non-nil and will be used for request cancellation. If
  1333  // the context is nil a panic will occur. In the future the SDK may create
  1334  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1335  // for more information on using Contexts.
  1336  func (c *CloudDirectory) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) {
  1337  	req, out := c.CreateIndexRequest(input)
  1338  	req.SetContext(ctx)
  1339  	req.ApplyOptions(opts...)
  1340  	return out, req.Send()
  1341  }
  1342  
  1343  const opCreateObject = "CreateObject"
  1344  
  1345  // CreateObjectRequest generates a "aws/request.Request" representing the
  1346  // client's request for the CreateObject operation. The "output" return
  1347  // value will be populated with the request's response once the request completes
  1348  // successfully.
  1349  //
  1350  // Use "Send" method on the returned Request to send the API call to the service.
  1351  // the "output" return value is not valid until after Send returns without error.
  1352  //
  1353  // See CreateObject for more information on using the CreateObject
  1354  // API call, and error handling.
  1355  //
  1356  // This method is useful when you want to inject custom logic or configuration
  1357  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1358  //
  1359  //
  1360  //    // Example sending a request using the CreateObjectRequest method.
  1361  //    req, resp := client.CreateObjectRequest(params)
  1362  //
  1363  //    err := req.Send()
  1364  //    if err == nil { // resp is now filled
  1365  //        fmt.Println(resp)
  1366  //    }
  1367  //
  1368  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
  1369  func (c *CloudDirectory) CreateObjectRequest(input *CreateObjectInput) (req *request.Request, output *CreateObjectOutput) {
  1370  	op := &request.Operation{
  1371  		Name:       opCreateObject,
  1372  		HTTPMethod: "PUT",
  1373  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object",
  1374  	}
  1375  
  1376  	if input == nil {
  1377  		input = &CreateObjectInput{}
  1378  	}
  1379  
  1380  	output = &CreateObjectOutput{}
  1381  	req = c.newRequest(op, input, output)
  1382  	return
  1383  }
  1384  
  1385  // CreateObject API operation for Amazon CloudDirectory.
  1386  //
  1387  // Creates an object in a Directory. Additionally attaches the object to a parent,
  1388  // if a parent reference and LinkName is specified. An object is simply a collection
  1389  // of Facet attributes. You can also use this API call to create a policy object,
  1390  // if the facet from which you create the object is a policy facet.
  1391  //
  1392  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1393  // with awserr.Error's Code and Message methods to get detailed information about
  1394  // the error.
  1395  //
  1396  // See the AWS API reference guide for Amazon CloudDirectory's
  1397  // API operation CreateObject for usage and error information.
  1398  //
  1399  // Returned Error Types:
  1400  //   * InternalServiceException
  1401  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1402  //   be a transient error in which case you can retry your request until it succeeds.
  1403  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1404  //   site to see if there are any operational issues with the service.
  1405  //
  1406  //   * InvalidArnException
  1407  //   Indicates that the provided ARN value is not valid.
  1408  //
  1409  //   * RetryableConflictException
  1410  //   Occurs when a conflict with a previous successful write is detected. For
  1411  //   example, if a write operation occurs on an object and then an attempt is
  1412  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1413  //   may result. This generally occurs when the previous write did not have time
  1414  //   to propagate to the host serving the current request. A retry (with appropriate
  1415  //   backoff logic) is the recommended response to this exception.
  1416  //
  1417  //   * ValidationException
  1418  //   Indicates that your request is malformed in some manner. See the exception
  1419  //   message.
  1420  //
  1421  //   * LimitExceededException
  1422  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1423  //   for more information.
  1424  //
  1425  //   * AccessDeniedException
  1426  //   Access denied or directory not found. Either you don't have permissions for
  1427  //   this directory or the directory does not exist. Try calling ListDirectories
  1428  //   and check your permissions.
  1429  //
  1430  //   * DirectoryNotEnabledException
  1431  //   Operations are only permitted on enabled directories.
  1432  //
  1433  //   * ResourceNotFoundException
  1434  //   The specified resource could not be found.
  1435  //
  1436  //   * FacetValidationException
  1437  //   The Facet that you provided was not well formed or could not be validated
  1438  //   with the schema.
  1439  //
  1440  //   * LinkNameAlreadyInUseException
  1441  //   Indicates that a link could not be created due to a naming conflict. Choose
  1442  //   a different name and then try again.
  1443  //
  1444  //   * UnsupportedIndexTypeException
  1445  //   Indicates that the requested index type is not supported.
  1446  //
  1447  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
  1448  func (c *CloudDirectory) CreateObject(input *CreateObjectInput) (*CreateObjectOutput, error) {
  1449  	req, out := c.CreateObjectRequest(input)
  1450  	return out, req.Send()
  1451  }
  1452  
  1453  // CreateObjectWithContext is the same as CreateObject with the addition of
  1454  // the ability to pass a context and additional request options.
  1455  //
  1456  // See CreateObject for details on how to use this API operation.
  1457  //
  1458  // The context must be non-nil and will be used for request cancellation. If
  1459  // the context is nil a panic will occur. In the future the SDK may create
  1460  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1461  // for more information on using Contexts.
  1462  func (c *CloudDirectory) CreateObjectWithContext(ctx aws.Context, input *CreateObjectInput, opts ...request.Option) (*CreateObjectOutput, error) {
  1463  	req, out := c.CreateObjectRequest(input)
  1464  	req.SetContext(ctx)
  1465  	req.ApplyOptions(opts...)
  1466  	return out, req.Send()
  1467  }
  1468  
  1469  const opCreateSchema = "CreateSchema"
  1470  
  1471  // CreateSchemaRequest generates a "aws/request.Request" representing the
  1472  // client's request for the CreateSchema operation. The "output" return
  1473  // value will be populated with the request's response once the request completes
  1474  // successfully.
  1475  //
  1476  // Use "Send" method on the returned Request to send the API call to the service.
  1477  // the "output" return value is not valid until after Send returns without error.
  1478  //
  1479  // See CreateSchema for more information on using the CreateSchema
  1480  // API call, and error handling.
  1481  //
  1482  // This method is useful when you want to inject custom logic or configuration
  1483  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1484  //
  1485  //
  1486  //    // Example sending a request using the CreateSchemaRequest method.
  1487  //    req, resp := client.CreateSchemaRequest(params)
  1488  //
  1489  //    err := req.Send()
  1490  //    if err == nil { // resp is now filled
  1491  //        fmt.Println(resp)
  1492  //    }
  1493  //
  1494  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
  1495  func (c *CloudDirectory) CreateSchemaRequest(input *CreateSchemaInput) (req *request.Request, output *CreateSchemaOutput) {
  1496  	op := &request.Operation{
  1497  		Name:       opCreateSchema,
  1498  		HTTPMethod: "PUT",
  1499  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/create",
  1500  	}
  1501  
  1502  	if input == nil {
  1503  		input = &CreateSchemaInput{}
  1504  	}
  1505  
  1506  	output = &CreateSchemaOutput{}
  1507  	req = c.newRequest(op, input, output)
  1508  	return
  1509  }
  1510  
  1511  // CreateSchema API operation for Amazon CloudDirectory.
  1512  //
  1513  // Creates a new schema in a development state. A schema can exist in three
  1514  // phases:
  1515  //
  1516  //    * Development: This is a mutable phase of the schema. All new schemas
  1517  //    are in the development phase. Once the schema is finalized, it can be
  1518  //    published.
  1519  //
  1520  //    * Published: Published schemas are immutable and have a version associated
  1521  //    with them.
  1522  //
  1523  //    * Applied: Applied schemas are mutable in a way that allows you to add
  1524  //    new schema facets. You can also add new, nonrequired attributes to existing
  1525  //    schema facets. You can apply only published schemas to directories.
  1526  //
  1527  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1528  // with awserr.Error's Code and Message methods to get detailed information about
  1529  // the error.
  1530  //
  1531  // See the AWS API reference guide for Amazon CloudDirectory's
  1532  // API operation CreateSchema for usage and error information.
  1533  //
  1534  // Returned Error Types:
  1535  //   * InternalServiceException
  1536  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1537  //   be a transient error in which case you can retry your request until it succeeds.
  1538  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1539  //   site to see if there are any operational issues with the service.
  1540  //
  1541  //   * InvalidArnException
  1542  //   Indicates that the provided ARN value is not valid.
  1543  //
  1544  //   * RetryableConflictException
  1545  //   Occurs when a conflict with a previous successful write is detected. For
  1546  //   example, if a write operation occurs on an object and then an attempt is
  1547  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1548  //   may result. This generally occurs when the previous write did not have time
  1549  //   to propagate to the host serving the current request. A retry (with appropriate
  1550  //   backoff logic) is the recommended response to this exception.
  1551  //
  1552  //   * ValidationException
  1553  //   Indicates that your request is malformed in some manner. See the exception
  1554  //   message.
  1555  //
  1556  //   * LimitExceededException
  1557  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1558  //   for more information.
  1559  //
  1560  //   * AccessDeniedException
  1561  //   Access denied or directory not found. Either you don't have permissions for
  1562  //   this directory or the directory does not exist. Try calling ListDirectories
  1563  //   and check your permissions.
  1564  //
  1565  //   * SchemaAlreadyExistsException
  1566  //   Indicates that a schema could not be created due to a naming conflict. Please
  1567  //   select a different name and then try again.
  1568  //
  1569  //   * AccessDeniedException
  1570  //   Access denied or directory not found. Either you don't have permissions for
  1571  //   this directory or the directory does not exist. Try calling ListDirectories
  1572  //   and check your permissions.
  1573  //
  1574  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
  1575  func (c *CloudDirectory) CreateSchema(input *CreateSchemaInput) (*CreateSchemaOutput, error) {
  1576  	req, out := c.CreateSchemaRequest(input)
  1577  	return out, req.Send()
  1578  }
  1579  
  1580  // CreateSchemaWithContext is the same as CreateSchema with the addition of
  1581  // the ability to pass a context and additional request options.
  1582  //
  1583  // See CreateSchema for details on how to use this API operation.
  1584  //
  1585  // The context must be non-nil and will be used for request cancellation. If
  1586  // the context is nil a panic will occur. In the future the SDK may create
  1587  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1588  // for more information on using Contexts.
  1589  func (c *CloudDirectory) CreateSchemaWithContext(ctx aws.Context, input *CreateSchemaInput, opts ...request.Option) (*CreateSchemaOutput, error) {
  1590  	req, out := c.CreateSchemaRequest(input)
  1591  	req.SetContext(ctx)
  1592  	req.ApplyOptions(opts...)
  1593  	return out, req.Send()
  1594  }
  1595  
  1596  const opCreateTypedLinkFacet = "CreateTypedLinkFacet"
  1597  
  1598  // CreateTypedLinkFacetRequest generates a "aws/request.Request" representing the
  1599  // client's request for the CreateTypedLinkFacet operation. The "output" return
  1600  // value will be populated with the request's response once the request completes
  1601  // successfully.
  1602  //
  1603  // Use "Send" method on the returned Request to send the API call to the service.
  1604  // the "output" return value is not valid until after Send returns without error.
  1605  //
  1606  // See CreateTypedLinkFacet for more information on using the CreateTypedLinkFacet
  1607  // API call, and error handling.
  1608  //
  1609  // This method is useful when you want to inject custom logic or configuration
  1610  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1611  //
  1612  //
  1613  //    // Example sending a request using the CreateTypedLinkFacetRequest method.
  1614  //    req, resp := client.CreateTypedLinkFacetRequest(params)
  1615  //
  1616  //    err := req.Send()
  1617  //    if err == nil { // resp is now filled
  1618  //        fmt.Println(resp)
  1619  //    }
  1620  //
  1621  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
  1622  func (c *CloudDirectory) CreateTypedLinkFacetRequest(input *CreateTypedLinkFacetInput) (req *request.Request, output *CreateTypedLinkFacetOutput) {
  1623  	op := &request.Operation{
  1624  		Name:       opCreateTypedLinkFacet,
  1625  		HTTPMethod: "PUT",
  1626  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
  1627  	}
  1628  
  1629  	if input == nil {
  1630  		input = &CreateTypedLinkFacetInput{}
  1631  	}
  1632  
  1633  	output = &CreateTypedLinkFacetOutput{}
  1634  	req = c.newRequest(op, input, output)
  1635  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1636  	return
  1637  }
  1638  
  1639  // CreateTypedLinkFacet API operation for Amazon CloudDirectory.
  1640  //
  1641  // Creates a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  1642  //
  1643  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1644  // with awserr.Error's Code and Message methods to get detailed information about
  1645  // the error.
  1646  //
  1647  // See the AWS API reference guide for Amazon CloudDirectory's
  1648  // API operation CreateTypedLinkFacet for usage and error information.
  1649  //
  1650  // Returned Error Types:
  1651  //   * InternalServiceException
  1652  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1653  //   be a transient error in which case you can retry your request until it succeeds.
  1654  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1655  //   site to see if there are any operational issues with the service.
  1656  //
  1657  //   * InvalidArnException
  1658  //   Indicates that the provided ARN value is not valid.
  1659  //
  1660  //   * RetryableConflictException
  1661  //   Occurs when a conflict with a previous successful write is detected. For
  1662  //   example, if a write operation occurs on an object and then an attempt is
  1663  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1664  //   may result. This generally occurs when the previous write did not have time
  1665  //   to propagate to the host serving the current request. A retry (with appropriate
  1666  //   backoff logic) is the recommended response to this exception.
  1667  //
  1668  //   * ValidationException
  1669  //   Indicates that your request is malformed in some manner. See the exception
  1670  //   message.
  1671  //
  1672  //   * LimitExceededException
  1673  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1674  //   for more information.
  1675  //
  1676  //   * AccessDeniedException
  1677  //   Access denied or directory not found. Either you don't have permissions for
  1678  //   this directory or the directory does not exist. Try calling ListDirectories
  1679  //   and check your permissions.
  1680  //
  1681  //   * ResourceNotFoundException
  1682  //   The specified resource could not be found.
  1683  //
  1684  //   * FacetAlreadyExistsException
  1685  //   A facet with the same name already exists.
  1686  //
  1687  //   * InvalidRuleException
  1688  //   Occurs when any of the rule parameter keys or values are invalid.
  1689  //
  1690  //   * FacetValidationException
  1691  //   The Facet that you provided was not well formed or could not be validated
  1692  //   with the schema.
  1693  //
  1694  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
  1695  func (c *CloudDirectory) CreateTypedLinkFacet(input *CreateTypedLinkFacetInput) (*CreateTypedLinkFacetOutput, error) {
  1696  	req, out := c.CreateTypedLinkFacetRequest(input)
  1697  	return out, req.Send()
  1698  }
  1699  
  1700  // CreateTypedLinkFacetWithContext is the same as CreateTypedLinkFacet with the addition of
  1701  // the ability to pass a context and additional request options.
  1702  //
  1703  // See CreateTypedLinkFacet for details on how to use this API operation.
  1704  //
  1705  // The context must be non-nil and will be used for request cancellation. If
  1706  // the context is nil a panic will occur. In the future the SDK may create
  1707  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1708  // for more information on using Contexts.
  1709  func (c *CloudDirectory) CreateTypedLinkFacetWithContext(ctx aws.Context, input *CreateTypedLinkFacetInput, opts ...request.Option) (*CreateTypedLinkFacetOutput, error) {
  1710  	req, out := c.CreateTypedLinkFacetRequest(input)
  1711  	req.SetContext(ctx)
  1712  	req.ApplyOptions(opts...)
  1713  	return out, req.Send()
  1714  }
  1715  
  1716  const opDeleteDirectory = "DeleteDirectory"
  1717  
  1718  // DeleteDirectoryRequest generates a "aws/request.Request" representing the
  1719  // client's request for the DeleteDirectory operation. The "output" return
  1720  // value will be populated with the request's response once the request completes
  1721  // successfully.
  1722  //
  1723  // Use "Send" method on the returned Request to send the API call to the service.
  1724  // the "output" return value is not valid until after Send returns without error.
  1725  //
  1726  // See DeleteDirectory for more information on using the DeleteDirectory
  1727  // API call, and error handling.
  1728  //
  1729  // This method is useful when you want to inject custom logic or configuration
  1730  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1731  //
  1732  //
  1733  //    // Example sending a request using the DeleteDirectoryRequest method.
  1734  //    req, resp := client.DeleteDirectoryRequest(params)
  1735  //
  1736  //    err := req.Send()
  1737  //    if err == nil { // resp is now filled
  1738  //        fmt.Println(resp)
  1739  //    }
  1740  //
  1741  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
  1742  func (c *CloudDirectory) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
  1743  	op := &request.Operation{
  1744  		Name:       opDeleteDirectory,
  1745  		HTTPMethod: "PUT",
  1746  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory",
  1747  	}
  1748  
  1749  	if input == nil {
  1750  		input = &DeleteDirectoryInput{}
  1751  	}
  1752  
  1753  	output = &DeleteDirectoryOutput{}
  1754  	req = c.newRequest(op, input, output)
  1755  	return
  1756  }
  1757  
  1758  // DeleteDirectory API operation for Amazon CloudDirectory.
  1759  //
  1760  // Deletes a directory. Only disabled directories can be deleted. A deleted
  1761  // directory cannot be undone. Exercise extreme caution when deleting directories.
  1762  //
  1763  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1764  // with awserr.Error's Code and Message methods to get detailed information about
  1765  // the error.
  1766  //
  1767  // See the AWS API reference guide for Amazon CloudDirectory's
  1768  // API operation DeleteDirectory for usage and error information.
  1769  //
  1770  // Returned Error Types:
  1771  //   * ResourceNotFoundException
  1772  //   The specified resource could not be found.
  1773  //
  1774  //   * DirectoryNotDisabledException
  1775  //   An operation can only operate on a disabled directory.
  1776  //
  1777  //   * InternalServiceException
  1778  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1779  //   be a transient error in which case you can retry your request until it succeeds.
  1780  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1781  //   site to see if there are any operational issues with the service.
  1782  //
  1783  //   * ValidationException
  1784  //   Indicates that your request is malformed in some manner. See the exception
  1785  //   message.
  1786  //
  1787  //   * LimitExceededException
  1788  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1789  //   for more information.
  1790  //
  1791  //   * AccessDeniedException
  1792  //   Access denied or directory not found. Either you don't have permissions for
  1793  //   this directory or the directory does not exist. Try calling ListDirectories
  1794  //   and check your permissions.
  1795  //
  1796  //   * DirectoryDeletedException
  1797  //   A directory that has been deleted and to which access has been attempted.
  1798  //   Note: The requested resource will eventually cease to exist.
  1799  //
  1800  //   * RetryableConflictException
  1801  //   Occurs when a conflict with a previous successful write is detected. For
  1802  //   example, if a write operation occurs on an object and then an attempt is
  1803  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1804  //   may result. This generally occurs when the previous write did not have time
  1805  //   to propagate to the host serving the current request. A retry (with appropriate
  1806  //   backoff logic) is the recommended response to this exception.
  1807  //
  1808  //   * InvalidArnException
  1809  //   Indicates that the provided ARN value is not valid.
  1810  //
  1811  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
  1812  func (c *CloudDirectory) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
  1813  	req, out := c.DeleteDirectoryRequest(input)
  1814  	return out, req.Send()
  1815  }
  1816  
  1817  // DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
  1818  // the ability to pass a context and additional request options.
  1819  //
  1820  // See DeleteDirectory for details on how to use this API operation.
  1821  //
  1822  // The context must be non-nil and will be used for request cancellation. If
  1823  // the context is nil a panic will occur. In the future the SDK may create
  1824  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1825  // for more information on using Contexts.
  1826  func (c *CloudDirectory) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
  1827  	req, out := c.DeleteDirectoryRequest(input)
  1828  	req.SetContext(ctx)
  1829  	req.ApplyOptions(opts...)
  1830  	return out, req.Send()
  1831  }
  1832  
  1833  const opDeleteFacet = "DeleteFacet"
  1834  
  1835  // DeleteFacetRequest generates a "aws/request.Request" representing the
  1836  // client's request for the DeleteFacet operation. The "output" return
  1837  // value will be populated with the request's response once the request completes
  1838  // successfully.
  1839  //
  1840  // Use "Send" method on the returned Request to send the API call to the service.
  1841  // the "output" return value is not valid until after Send returns without error.
  1842  //
  1843  // See DeleteFacet for more information on using the DeleteFacet
  1844  // API call, and error handling.
  1845  //
  1846  // This method is useful when you want to inject custom logic or configuration
  1847  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1848  //
  1849  //
  1850  //    // Example sending a request using the DeleteFacetRequest method.
  1851  //    req, resp := client.DeleteFacetRequest(params)
  1852  //
  1853  //    err := req.Send()
  1854  //    if err == nil { // resp is now filled
  1855  //        fmt.Println(resp)
  1856  //    }
  1857  //
  1858  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
  1859  func (c *CloudDirectory) DeleteFacetRequest(input *DeleteFacetInput) (req *request.Request, output *DeleteFacetOutput) {
  1860  	op := &request.Operation{
  1861  		Name:       opDeleteFacet,
  1862  		HTTPMethod: "PUT",
  1863  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/delete",
  1864  	}
  1865  
  1866  	if input == nil {
  1867  		input = &DeleteFacetInput{}
  1868  	}
  1869  
  1870  	output = &DeleteFacetOutput{}
  1871  	req = c.newRequest(op, input, output)
  1872  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1873  	return
  1874  }
  1875  
  1876  // DeleteFacet API operation for Amazon CloudDirectory.
  1877  //
  1878  // Deletes a given Facet. All attributes and Rules that are associated with
  1879  // the facet will be deleted. Only development schema facets are allowed deletion.
  1880  //
  1881  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1882  // with awserr.Error's Code and Message methods to get detailed information about
  1883  // the error.
  1884  //
  1885  // See the AWS API reference guide for Amazon CloudDirectory's
  1886  // API operation DeleteFacet for usage and error information.
  1887  //
  1888  // Returned Error Types:
  1889  //   * InternalServiceException
  1890  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  1891  //   be a transient error in which case you can retry your request until it succeeds.
  1892  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  1893  //   site to see if there are any operational issues with the service.
  1894  //
  1895  //   * InvalidArnException
  1896  //   Indicates that the provided ARN value is not valid.
  1897  //
  1898  //   * RetryableConflictException
  1899  //   Occurs when a conflict with a previous successful write is detected. For
  1900  //   example, if a write operation occurs on an object and then an attempt is
  1901  //   made to read the object using “SERIALIZABLE” consistency, this exception
  1902  //   may result. This generally occurs when the previous write did not have time
  1903  //   to propagate to the host serving the current request. A retry (with appropriate
  1904  //   backoff logic) is the recommended response to this exception.
  1905  //
  1906  //   * ValidationException
  1907  //   Indicates that your request is malformed in some manner. See the exception
  1908  //   message.
  1909  //
  1910  //   * LimitExceededException
  1911  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  1912  //   for more information.
  1913  //
  1914  //   * AccessDeniedException
  1915  //   Access denied or directory not found. Either you don't have permissions for
  1916  //   this directory or the directory does not exist. Try calling ListDirectories
  1917  //   and check your permissions.
  1918  //
  1919  //   * ResourceNotFoundException
  1920  //   The specified resource could not be found.
  1921  //
  1922  //   * FacetNotFoundException
  1923  //   The specified Facet could not be found.
  1924  //
  1925  //   * FacetInUseException
  1926  //   Occurs when deleting a facet that contains an attribute that is a target
  1927  //   to an attribute reference in a different facet.
  1928  //
  1929  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
  1930  func (c *CloudDirectory) DeleteFacet(input *DeleteFacetInput) (*DeleteFacetOutput, error) {
  1931  	req, out := c.DeleteFacetRequest(input)
  1932  	return out, req.Send()
  1933  }
  1934  
  1935  // DeleteFacetWithContext is the same as DeleteFacet with the addition of
  1936  // the ability to pass a context and additional request options.
  1937  //
  1938  // See DeleteFacet for details on how to use this API operation.
  1939  //
  1940  // The context must be non-nil and will be used for request cancellation. If
  1941  // the context is nil a panic will occur. In the future the SDK may create
  1942  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1943  // for more information on using Contexts.
  1944  func (c *CloudDirectory) DeleteFacetWithContext(ctx aws.Context, input *DeleteFacetInput, opts ...request.Option) (*DeleteFacetOutput, error) {
  1945  	req, out := c.DeleteFacetRequest(input)
  1946  	req.SetContext(ctx)
  1947  	req.ApplyOptions(opts...)
  1948  	return out, req.Send()
  1949  }
  1950  
  1951  const opDeleteObject = "DeleteObject"
  1952  
  1953  // DeleteObjectRequest generates a "aws/request.Request" representing the
  1954  // client's request for the DeleteObject operation. The "output" return
  1955  // value will be populated with the request's response once the request completes
  1956  // successfully.
  1957  //
  1958  // Use "Send" method on the returned Request to send the API call to the service.
  1959  // the "output" return value is not valid until after Send returns without error.
  1960  //
  1961  // See DeleteObject for more information on using the DeleteObject
  1962  // API call, and error handling.
  1963  //
  1964  // This method is useful when you want to inject custom logic or configuration
  1965  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1966  //
  1967  //
  1968  //    // Example sending a request using the DeleteObjectRequest method.
  1969  //    req, resp := client.DeleteObjectRequest(params)
  1970  //
  1971  //    err := req.Send()
  1972  //    if err == nil { // resp is now filled
  1973  //        fmt.Println(resp)
  1974  //    }
  1975  //
  1976  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
  1977  func (c *CloudDirectory) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) {
  1978  	op := &request.Operation{
  1979  		Name:       opDeleteObject,
  1980  		HTTPMethod: "PUT",
  1981  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/delete",
  1982  	}
  1983  
  1984  	if input == nil {
  1985  		input = &DeleteObjectInput{}
  1986  	}
  1987  
  1988  	output = &DeleteObjectOutput{}
  1989  	req = c.newRequest(op, input, output)
  1990  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1991  	return
  1992  }
  1993  
  1994  // DeleteObject API operation for Amazon CloudDirectory.
  1995  //
  1996  // Deletes an object and its associated attributes. Only objects with no children
  1997  // and no parents can be deleted. The maximum number of attributes that can
  1998  // be deleted during an object deletion is 30. For more information, see Amazon
  1999  // Cloud Directory Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
  2000  //
  2001  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2002  // with awserr.Error's Code and Message methods to get detailed information about
  2003  // the error.
  2004  //
  2005  // See the AWS API reference guide for Amazon CloudDirectory's
  2006  // API operation DeleteObject for usage and error information.
  2007  //
  2008  // Returned Error Types:
  2009  //   * InternalServiceException
  2010  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2011  //   be a transient error in which case you can retry your request until it succeeds.
  2012  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2013  //   site to see if there are any operational issues with the service.
  2014  //
  2015  //   * InvalidArnException
  2016  //   Indicates that the provided ARN value is not valid.
  2017  //
  2018  //   * RetryableConflictException
  2019  //   Occurs when a conflict with a previous successful write is detected. For
  2020  //   example, if a write operation occurs on an object and then an attempt is
  2021  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2022  //   may result. This generally occurs when the previous write did not have time
  2023  //   to propagate to the host serving the current request. A retry (with appropriate
  2024  //   backoff logic) is the recommended response to this exception.
  2025  //
  2026  //   * ValidationException
  2027  //   Indicates that your request is malformed in some manner. See the exception
  2028  //   message.
  2029  //
  2030  //   * LimitExceededException
  2031  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2032  //   for more information.
  2033  //
  2034  //   * AccessDeniedException
  2035  //   Access denied or directory not found. Either you don't have permissions for
  2036  //   this directory or the directory does not exist. Try calling ListDirectories
  2037  //   and check your permissions.
  2038  //
  2039  //   * DirectoryNotEnabledException
  2040  //   Operations are only permitted on enabled directories.
  2041  //
  2042  //   * ResourceNotFoundException
  2043  //   The specified resource could not be found.
  2044  //
  2045  //   * ObjectNotDetachedException
  2046  //   Indicates that the requested operation cannot be completed because the object
  2047  //   has not been detached from the tree.
  2048  //
  2049  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
  2050  func (c *CloudDirectory) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) {
  2051  	req, out := c.DeleteObjectRequest(input)
  2052  	return out, req.Send()
  2053  }
  2054  
  2055  // DeleteObjectWithContext is the same as DeleteObject with the addition of
  2056  // the ability to pass a context and additional request options.
  2057  //
  2058  // See DeleteObject for details on how to use this API operation.
  2059  //
  2060  // The context must be non-nil and will be used for request cancellation. If
  2061  // the context is nil a panic will occur. In the future the SDK may create
  2062  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2063  // for more information on using Contexts.
  2064  func (c *CloudDirectory) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) {
  2065  	req, out := c.DeleteObjectRequest(input)
  2066  	req.SetContext(ctx)
  2067  	req.ApplyOptions(opts...)
  2068  	return out, req.Send()
  2069  }
  2070  
  2071  const opDeleteSchema = "DeleteSchema"
  2072  
  2073  // DeleteSchemaRequest generates a "aws/request.Request" representing the
  2074  // client's request for the DeleteSchema operation. The "output" return
  2075  // value will be populated with the request's response once the request completes
  2076  // successfully.
  2077  //
  2078  // Use "Send" method on the returned Request to send the API call to the service.
  2079  // the "output" return value is not valid until after Send returns without error.
  2080  //
  2081  // See DeleteSchema for more information on using the DeleteSchema
  2082  // API call, and error handling.
  2083  //
  2084  // This method is useful when you want to inject custom logic or configuration
  2085  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2086  //
  2087  //
  2088  //    // Example sending a request using the DeleteSchemaRequest method.
  2089  //    req, resp := client.DeleteSchemaRequest(params)
  2090  //
  2091  //    err := req.Send()
  2092  //    if err == nil { // resp is now filled
  2093  //        fmt.Println(resp)
  2094  //    }
  2095  //
  2096  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
  2097  func (c *CloudDirectory) DeleteSchemaRequest(input *DeleteSchemaInput) (req *request.Request, output *DeleteSchemaOutput) {
  2098  	op := &request.Operation{
  2099  		Name:       opDeleteSchema,
  2100  		HTTPMethod: "PUT",
  2101  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema",
  2102  	}
  2103  
  2104  	if input == nil {
  2105  		input = &DeleteSchemaInput{}
  2106  	}
  2107  
  2108  	output = &DeleteSchemaOutput{}
  2109  	req = c.newRequest(op, input, output)
  2110  	return
  2111  }
  2112  
  2113  // DeleteSchema API operation for Amazon CloudDirectory.
  2114  //
  2115  // Deletes a given schema. Schemas in a development and published state can
  2116  // only be deleted.
  2117  //
  2118  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2119  // with awserr.Error's Code and Message methods to get detailed information about
  2120  // the error.
  2121  //
  2122  // See the AWS API reference guide for Amazon CloudDirectory's
  2123  // API operation DeleteSchema for usage and error information.
  2124  //
  2125  // Returned Error Types:
  2126  //   * InternalServiceException
  2127  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2128  //   be a transient error in which case you can retry your request until it succeeds.
  2129  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2130  //   site to see if there are any operational issues with the service.
  2131  //
  2132  //   * InvalidArnException
  2133  //   Indicates that the provided ARN value is not valid.
  2134  //
  2135  //   * RetryableConflictException
  2136  //   Occurs when a conflict with a previous successful write is detected. For
  2137  //   example, if a write operation occurs on an object and then an attempt is
  2138  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2139  //   may result. This generally occurs when the previous write did not have time
  2140  //   to propagate to the host serving the current request. A retry (with appropriate
  2141  //   backoff logic) is the recommended response to this exception.
  2142  //
  2143  //   * ValidationException
  2144  //   Indicates that your request is malformed in some manner. See the exception
  2145  //   message.
  2146  //
  2147  //   * LimitExceededException
  2148  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2149  //   for more information.
  2150  //
  2151  //   * AccessDeniedException
  2152  //   Access denied or directory not found. Either you don't have permissions for
  2153  //   this directory or the directory does not exist. Try calling ListDirectories
  2154  //   and check your permissions.
  2155  //
  2156  //   * ResourceNotFoundException
  2157  //   The specified resource could not be found.
  2158  //
  2159  //   * StillContainsLinksException
  2160  //   The object could not be deleted because links still exist. Remove the links
  2161  //   and then try the operation again.
  2162  //
  2163  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
  2164  func (c *CloudDirectory) DeleteSchema(input *DeleteSchemaInput) (*DeleteSchemaOutput, error) {
  2165  	req, out := c.DeleteSchemaRequest(input)
  2166  	return out, req.Send()
  2167  }
  2168  
  2169  // DeleteSchemaWithContext is the same as DeleteSchema with the addition of
  2170  // the ability to pass a context and additional request options.
  2171  //
  2172  // See DeleteSchema for details on how to use this API operation.
  2173  //
  2174  // The context must be non-nil and will be used for request cancellation. If
  2175  // the context is nil a panic will occur. In the future the SDK may create
  2176  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2177  // for more information on using Contexts.
  2178  func (c *CloudDirectory) DeleteSchemaWithContext(ctx aws.Context, input *DeleteSchemaInput, opts ...request.Option) (*DeleteSchemaOutput, error) {
  2179  	req, out := c.DeleteSchemaRequest(input)
  2180  	req.SetContext(ctx)
  2181  	req.ApplyOptions(opts...)
  2182  	return out, req.Send()
  2183  }
  2184  
  2185  const opDeleteTypedLinkFacet = "DeleteTypedLinkFacet"
  2186  
  2187  // DeleteTypedLinkFacetRequest generates a "aws/request.Request" representing the
  2188  // client's request for the DeleteTypedLinkFacet operation. The "output" return
  2189  // value will be populated with the request's response once the request completes
  2190  // successfully.
  2191  //
  2192  // Use "Send" method on the returned Request to send the API call to the service.
  2193  // the "output" return value is not valid until after Send returns without error.
  2194  //
  2195  // See DeleteTypedLinkFacet for more information on using the DeleteTypedLinkFacet
  2196  // API call, and error handling.
  2197  //
  2198  // This method is useful when you want to inject custom logic or configuration
  2199  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2200  //
  2201  //
  2202  //    // Example sending a request using the DeleteTypedLinkFacetRequest method.
  2203  //    req, resp := client.DeleteTypedLinkFacetRequest(params)
  2204  //
  2205  //    err := req.Send()
  2206  //    if err == nil { // resp is now filled
  2207  //        fmt.Println(resp)
  2208  //    }
  2209  //
  2210  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
  2211  func (c *CloudDirectory) DeleteTypedLinkFacetRequest(input *DeleteTypedLinkFacetInput) (req *request.Request, output *DeleteTypedLinkFacetOutput) {
  2212  	op := &request.Operation{
  2213  		Name:       opDeleteTypedLinkFacet,
  2214  		HTTPMethod: "PUT",
  2215  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
  2216  	}
  2217  
  2218  	if input == nil {
  2219  		input = &DeleteTypedLinkFacetInput{}
  2220  	}
  2221  
  2222  	output = &DeleteTypedLinkFacetOutput{}
  2223  	req = c.newRequest(op, input, output)
  2224  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2225  	return
  2226  }
  2227  
  2228  // DeleteTypedLinkFacet API operation for Amazon CloudDirectory.
  2229  //
  2230  // Deletes a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  2231  //
  2232  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2233  // with awserr.Error's Code and Message methods to get detailed information about
  2234  // the error.
  2235  //
  2236  // See the AWS API reference guide for Amazon CloudDirectory's
  2237  // API operation DeleteTypedLinkFacet for usage and error information.
  2238  //
  2239  // Returned Error Types:
  2240  //   * InternalServiceException
  2241  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2242  //   be a transient error in which case you can retry your request until it succeeds.
  2243  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2244  //   site to see if there are any operational issues with the service.
  2245  //
  2246  //   * InvalidArnException
  2247  //   Indicates that the provided ARN value is not valid.
  2248  //
  2249  //   * RetryableConflictException
  2250  //   Occurs when a conflict with a previous successful write is detected. For
  2251  //   example, if a write operation occurs on an object and then an attempt is
  2252  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2253  //   may result. This generally occurs when the previous write did not have time
  2254  //   to propagate to the host serving the current request. A retry (with appropriate
  2255  //   backoff logic) is the recommended response to this exception.
  2256  //
  2257  //   * ValidationException
  2258  //   Indicates that your request is malformed in some manner. See the exception
  2259  //   message.
  2260  //
  2261  //   * LimitExceededException
  2262  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2263  //   for more information.
  2264  //
  2265  //   * AccessDeniedException
  2266  //   Access denied or directory not found. Either you don't have permissions for
  2267  //   this directory or the directory does not exist. Try calling ListDirectories
  2268  //   and check your permissions.
  2269  //
  2270  //   * ResourceNotFoundException
  2271  //   The specified resource could not be found.
  2272  //
  2273  //   * FacetNotFoundException
  2274  //   The specified Facet could not be found.
  2275  //
  2276  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
  2277  func (c *CloudDirectory) DeleteTypedLinkFacet(input *DeleteTypedLinkFacetInput) (*DeleteTypedLinkFacetOutput, error) {
  2278  	req, out := c.DeleteTypedLinkFacetRequest(input)
  2279  	return out, req.Send()
  2280  }
  2281  
  2282  // DeleteTypedLinkFacetWithContext is the same as DeleteTypedLinkFacet with the addition of
  2283  // the ability to pass a context and additional request options.
  2284  //
  2285  // See DeleteTypedLinkFacet for details on how to use this API operation.
  2286  //
  2287  // The context must be non-nil and will be used for request cancellation. If
  2288  // the context is nil a panic will occur. In the future the SDK may create
  2289  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2290  // for more information on using Contexts.
  2291  func (c *CloudDirectory) DeleteTypedLinkFacetWithContext(ctx aws.Context, input *DeleteTypedLinkFacetInput, opts ...request.Option) (*DeleteTypedLinkFacetOutput, error) {
  2292  	req, out := c.DeleteTypedLinkFacetRequest(input)
  2293  	req.SetContext(ctx)
  2294  	req.ApplyOptions(opts...)
  2295  	return out, req.Send()
  2296  }
  2297  
  2298  const opDetachFromIndex = "DetachFromIndex"
  2299  
  2300  // DetachFromIndexRequest generates a "aws/request.Request" representing the
  2301  // client's request for the DetachFromIndex operation. The "output" return
  2302  // value will be populated with the request's response once the request completes
  2303  // successfully.
  2304  //
  2305  // Use "Send" method on the returned Request to send the API call to the service.
  2306  // the "output" return value is not valid until after Send returns without error.
  2307  //
  2308  // See DetachFromIndex for more information on using the DetachFromIndex
  2309  // API call, and error handling.
  2310  //
  2311  // This method is useful when you want to inject custom logic or configuration
  2312  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2313  //
  2314  //
  2315  //    // Example sending a request using the DetachFromIndexRequest method.
  2316  //    req, resp := client.DetachFromIndexRequest(params)
  2317  //
  2318  //    err := req.Send()
  2319  //    if err == nil { // resp is now filled
  2320  //        fmt.Println(resp)
  2321  //    }
  2322  //
  2323  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
  2324  func (c *CloudDirectory) DetachFromIndexRequest(input *DetachFromIndexInput) (req *request.Request, output *DetachFromIndexOutput) {
  2325  	op := &request.Operation{
  2326  		Name:       opDetachFromIndex,
  2327  		HTTPMethod: "PUT",
  2328  		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/detach",
  2329  	}
  2330  
  2331  	if input == nil {
  2332  		input = &DetachFromIndexInput{}
  2333  	}
  2334  
  2335  	output = &DetachFromIndexOutput{}
  2336  	req = c.newRequest(op, input, output)
  2337  	return
  2338  }
  2339  
  2340  // DetachFromIndex API operation for Amazon CloudDirectory.
  2341  //
  2342  // Detaches the specified object from the specified index.
  2343  //
  2344  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2345  // with awserr.Error's Code and Message methods to get detailed information about
  2346  // the error.
  2347  //
  2348  // See the AWS API reference guide for Amazon CloudDirectory's
  2349  // API operation DetachFromIndex for usage and error information.
  2350  //
  2351  // Returned Error Types:
  2352  //   * InternalServiceException
  2353  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2354  //   be a transient error in which case you can retry your request until it succeeds.
  2355  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2356  //   site to see if there are any operational issues with the service.
  2357  //
  2358  //   * InvalidArnException
  2359  //   Indicates that the provided ARN value is not valid.
  2360  //
  2361  //   * RetryableConflictException
  2362  //   Occurs when a conflict with a previous successful write is detected. For
  2363  //   example, if a write operation occurs on an object and then an attempt is
  2364  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2365  //   may result. This generally occurs when the previous write did not have time
  2366  //   to propagate to the host serving the current request. A retry (with appropriate
  2367  //   backoff logic) is the recommended response to this exception.
  2368  //
  2369  //   * ValidationException
  2370  //   Indicates that your request is malformed in some manner. See the exception
  2371  //   message.
  2372  //
  2373  //   * LimitExceededException
  2374  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2375  //   for more information.
  2376  //
  2377  //   * AccessDeniedException
  2378  //   Access denied or directory not found. Either you don't have permissions for
  2379  //   this directory or the directory does not exist. Try calling ListDirectories
  2380  //   and check your permissions.
  2381  //
  2382  //   * DirectoryNotEnabledException
  2383  //   Operations are only permitted on enabled directories.
  2384  //
  2385  //   * ResourceNotFoundException
  2386  //   The specified resource could not be found.
  2387  //
  2388  //   * ObjectAlreadyDetachedException
  2389  //   Indicates that the object is not attached to the index.
  2390  //
  2391  //   * NotIndexException
  2392  //   Indicates that the requested operation can only operate on index objects.
  2393  //
  2394  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
  2395  func (c *CloudDirectory) DetachFromIndex(input *DetachFromIndexInput) (*DetachFromIndexOutput, error) {
  2396  	req, out := c.DetachFromIndexRequest(input)
  2397  	return out, req.Send()
  2398  }
  2399  
  2400  // DetachFromIndexWithContext is the same as DetachFromIndex with the addition of
  2401  // the ability to pass a context and additional request options.
  2402  //
  2403  // See DetachFromIndex for details on how to use this API operation.
  2404  //
  2405  // The context must be non-nil and will be used for request cancellation. If
  2406  // the context is nil a panic will occur. In the future the SDK may create
  2407  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2408  // for more information on using Contexts.
  2409  func (c *CloudDirectory) DetachFromIndexWithContext(ctx aws.Context, input *DetachFromIndexInput, opts ...request.Option) (*DetachFromIndexOutput, error) {
  2410  	req, out := c.DetachFromIndexRequest(input)
  2411  	req.SetContext(ctx)
  2412  	req.ApplyOptions(opts...)
  2413  	return out, req.Send()
  2414  }
  2415  
  2416  const opDetachObject = "DetachObject"
  2417  
  2418  // DetachObjectRequest generates a "aws/request.Request" representing the
  2419  // client's request for the DetachObject operation. The "output" return
  2420  // value will be populated with the request's response once the request completes
  2421  // successfully.
  2422  //
  2423  // Use "Send" method on the returned Request to send the API call to the service.
  2424  // the "output" return value is not valid until after Send returns without error.
  2425  //
  2426  // See DetachObject for more information on using the DetachObject
  2427  // API call, and error handling.
  2428  //
  2429  // This method is useful when you want to inject custom logic or configuration
  2430  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2431  //
  2432  //
  2433  //    // Example sending a request using the DetachObjectRequest method.
  2434  //    req, resp := client.DetachObjectRequest(params)
  2435  //
  2436  //    err := req.Send()
  2437  //    if err == nil { // resp is now filled
  2438  //        fmt.Println(resp)
  2439  //    }
  2440  //
  2441  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
  2442  func (c *CloudDirectory) DetachObjectRequest(input *DetachObjectInput) (req *request.Request, output *DetachObjectOutput) {
  2443  	op := &request.Operation{
  2444  		Name:       opDetachObject,
  2445  		HTTPMethod: "PUT",
  2446  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/detach",
  2447  	}
  2448  
  2449  	if input == nil {
  2450  		input = &DetachObjectInput{}
  2451  	}
  2452  
  2453  	output = &DetachObjectOutput{}
  2454  	req = c.newRequest(op, input, output)
  2455  	return
  2456  }
  2457  
  2458  // DetachObject API operation for Amazon CloudDirectory.
  2459  //
  2460  // Detaches a given object from the parent object. The object that is to be
  2461  // detached from the parent is specified by the link name.
  2462  //
  2463  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2464  // with awserr.Error's Code and Message methods to get detailed information about
  2465  // the error.
  2466  //
  2467  // See the AWS API reference guide for Amazon CloudDirectory's
  2468  // API operation DetachObject for usage and error information.
  2469  //
  2470  // Returned Error Types:
  2471  //   * InternalServiceException
  2472  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2473  //   be a transient error in which case you can retry your request until it succeeds.
  2474  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2475  //   site to see if there are any operational issues with the service.
  2476  //
  2477  //   * InvalidArnException
  2478  //   Indicates that the provided ARN value is not valid.
  2479  //
  2480  //   * RetryableConflictException
  2481  //   Occurs when a conflict with a previous successful write is detected. For
  2482  //   example, if a write operation occurs on an object and then an attempt is
  2483  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2484  //   may result. This generally occurs when the previous write did not have time
  2485  //   to propagate to the host serving the current request. A retry (with appropriate
  2486  //   backoff logic) is the recommended response to this exception.
  2487  //
  2488  //   * ValidationException
  2489  //   Indicates that your request is malformed in some manner. See the exception
  2490  //   message.
  2491  //
  2492  //   * LimitExceededException
  2493  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2494  //   for more information.
  2495  //
  2496  //   * AccessDeniedException
  2497  //   Access denied or directory not found. Either you don't have permissions for
  2498  //   this directory or the directory does not exist. Try calling ListDirectories
  2499  //   and check your permissions.
  2500  //
  2501  //   * DirectoryNotEnabledException
  2502  //   Operations are only permitted on enabled directories.
  2503  //
  2504  //   * ResourceNotFoundException
  2505  //   The specified resource could not be found.
  2506  //
  2507  //   * NotNodeException
  2508  //   Occurs when any invalid operations are performed on an object that is not
  2509  //   a node, such as calling ListObjectChildren for a leaf node object.
  2510  //
  2511  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
  2512  func (c *CloudDirectory) DetachObject(input *DetachObjectInput) (*DetachObjectOutput, error) {
  2513  	req, out := c.DetachObjectRequest(input)
  2514  	return out, req.Send()
  2515  }
  2516  
  2517  // DetachObjectWithContext is the same as DetachObject with the addition of
  2518  // the ability to pass a context and additional request options.
  2519  //
  2520  // See DetachObject for details on how to use this API operation.
  2521  //
  2522  // The context must be non-nil and will be used for request cancellation. If
  2523  // the context is nil a panic will occur. In the future the SDK may create
  2524  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2525  // for more information on using Contexts.
  2526  func (c *CloudDirectory) DetachObjectWithContext(ctx aws.Context, input *DetachObjectInput, opts ...request.Option) (*DetachObjectOutput, error) {
  2527  	req, out := c.DetachObjectRequest(input)
  2528  	req.SetContext(ctx)
  2529  	req.ApplyOptions(opts...)
  2530  	return out, req.Send()
  2531  }
  2532  
  2533  const opDetachPolicy = "DetachPolicy"
  2534  
  2535  // DetachPolicyRequest generates a "aws/request.Request" representing the
  2536  // client's request for the DetachPolicy operation. The "output" return
  2537  // value will be populated with the request's response once the request completes
  2538  // successfully.
  2539  //
  2540  // Use "Send" method on the returned Request to send the API call to the service.
  2541  // the "output" return value is not valid until after Send returns without error.
  2542  //
  2543  // See DetachPolicy for more information on using the DetachPolicy
  2544  // API call, and error handling.
  2545  //
  2546  // This method is useful when you want to inject custom logic or configuration
  2547  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2548  //
  2549  //
  2550  //    // Example sending a request using the DetachPolicyRequest method.
  2551  //    req, resp := client.DetachPolicyRequest(params)
  2552  //
  2553  //    err := req.Send()
  2554  //    if err == nil { // resp is now filled
  2555  //        fmt.Println(resp)
  2556  //    }
  2557  //
  2558  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
  2559  func (c *CloudDirectory) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
  2560  	op := &request.Operation{
  2561  		Name:       opDetachPolicy,
  2562  		HTTPMethod: "PUT",
  2563  		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/detach",
  2564  	}
  2565  
  2566  	if input == nil {
  2567  		input = &DetachPolicyInput{}
  2568  	}
  2569  
  2570  	output = &DetachPolicyOutput{}
  2571  	req = c.newRequest(op, input, output)
  2572  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2573  	return
  2574  }
  2575  
  2576  // DetachPolicy API operation for Amazon CloudDirectory.
  2577  //
  2578  // Detaches a policy from an object.
  2579  //
  2580  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2581  // with awserr.Error's Code and Message methods to get detailed information about
  2582  // the error.
  2583  //
  2584  // See the AWS API reference guide for Amazon CloudDirectory's
  2585  // API operation DetachPolicy for usage and error information.
  2586  //
  2587  // Returned Error Types:
  2588  //   * InternalServiceException
  2589  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2590  //   be a transient error in which case you can retry your request until it succeeds.
  2591  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2592  //   site to see if there are any operational issues with the service.
  2593  //
  2594  //   * InvalidArnException
  2595  //   Indicates that the provided ARN value is not valid.
  2596  //
  2597  //   * RetryableConflictException
  2598  //   Occurs when a conflict with a previous successful write is detected. For
  2599  //   example, if a write operation occurs on an object and then an attempt is
  2600  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2601  //   may result. This generally occurs when the previous write did not have time
  2602  //   to propagate to the host serving the current request. A retry (with appropriate
  2603  //   backoff logic) is the recommended response to this exception.
  2604  //
  2605  //   * ValidationException
  2606  //   Indicates that your request is malformed in some manner. See the exception
  2607  //   message.
  2608  //
  2609  //   * LimitExceededException
  2610  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2611  //   for more information.
  2612  //
  2613  //   * AccessDeniedException
  2614  //   Access denied or directory not found. Either you don't have permissions for
  2615  //   this directory or the directory does not exist. Try calling ListDirectories
  2616  //   and check your permissions.
  2617  //
  2618  //   * DirectoryNotEnabledException
  2619  //   Operations are only permitted on enabled directories.
  2620  //
  2621  //   * ResourceNotFoundException
  2622  //   The specified resource could not be found.
  2623  //
  2624  //   * NotPolicyException
  2625  //   Indicates that the requested operation can only operate on policy objects.
  2626  //
  2627  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
  2628  func (c *CloudDirectory) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
  2629  	req, out := c.DetachPolicyRequest(input)
  2630  	return out, req.Send()
  2631  }
  2632  
  2633  // DetachPolicyWithContext is the same as DetachPolicy with the addition of
  2634  // the ability to pass a context and additional request options.
  2635  //
  2636  // See DetachPolicy for details on how to use this API operation.
  2637  //
  2638  // The context must be non-nil and will be used for request cancellation. If
  2639  // the context is nil a panic will occur. In the future the SDK may create
  2640  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2641  // for more information on using Contexts.
  2642  func (c *CloudDirectory) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
  2643  	req, out := c.DetachPolicyRequest(input)
  2644  	req.SetContext(ctx)
  2645  	req.ApplyOptions(opts...)
  2646  	return out, req.Send()
  2647  }
  2648  
  2649  const opDetachTypedLink = "DetachTypedLink"
  2650  
  2651  // DetachTypedLinkRequest generates a "aws/request.Request" representing the
  2652  // client's request for the DetachTypedLink operation. The "output" return
  2653  // value will be populated with the request's response once the request completes
  2654  // successfully.
  2655  //
  2656  // Use "Send" method on the returned Request to send the API call to the service.
  2657  // the "output" return value is not valid until after Send returns without error.
  2658  //
  2659  // See DetachTypedLink for more information on using the DetachTypedLink
  2660  // API call, and error handling.
  2661  //
  2662  // This method is useful when you want to inject custom logic or configuration
  2663  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2664  //
  2665  //
  2666  //    // Example sending a request using the DetachTypedLinkRequest method.
  2667  //    req, resp := client.DetachTypedLinkRequest(params)
  2668  //
  2669  //    err := req.Send()
  2670  //    if err == nil { // resp is now filled
  2671  //        fmt.Println(resp)
  2672  //    }
  2673  //
  2674  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
  2675  func (c *CloudDirectory) DetachTypedLinkRequest(input *DetachTypedLinkInput) (req *request.Request, output *DetachTypedLinkOutput) {
  2676  	op := &request.Operation{
  2677  		Name:       opDetachTypedLink,
  2678  		HTTPMethod: "PUT",
  2679  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/detach",
  2680  	}
  2681  
  2682  	if input == nil {
  2683  		input = &DetachTypedLinkInput{}
  2684  	}
  2685  
  2686  	output = &DetachTypedLinkOutput{}
  2687  	req = c.newRequest(op, input, output)
  2688  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2689  	return
  2690  }
  2691  
  2692  // DetachTypedLink API operation for Amazon CloudDirectory.
  2693  //
  2694  // Detaches a typed link from a specified source and target object. For more
  2695  // information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  2696  //
  2697  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2698  // with awserr.Error's Code and Message methods to get detailed information about
  2699  // the error.
  2700  //
  2701  // See the AWS API reference guide for Amazon CloudDirectory's
  2702  // API operation DetachTypedLink for usage and error information.
  2703  //
  2704  // Returned Error Types:
  2705  //   * InternalServiceException
  2706  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2707  //   be a transient error in which case you can retry your request until it succeeds.
  2708  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2709  //   site to see if there are any operational issues with the service.
  2710  //
  2711  //   * InvalidArnException
  2712  //   Indicates that the provided ARN value is not valid.
  2713  //
  2714  //   * RetryableConflictException
  2715  //   Occurs when a conflict with a previous successful write is detected. For
  2716  //   example, if a write operation occurs on an object and then an attempt is
  2717  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2718  //   may result. This generally occurs when the previous write did not have time
  2719  //   to propagate to the host serving the current request. A retry (with appropriate
  2720  //   backoff logic) is the recommended response to this exception.
  2721  //
  2722  //   * ValidationException
  2723  //   Indicates that your request is malformed in some manner. See the exception
  2724  //   message.
  2725  //
  2726  //   * LimitExceededException
  2727  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2728  //   for more information.
  2729  //
  2730  //   * AccessDeniedException
  2731  //   Access denied or directory not found. Either you don't have permissions for
  2732  //   this directory or the directory does not exist. Try calling ListDirectories
  2733  //   and check your permissions.
  2734  //
  2735  //   * DirectoryNotEnabledException
  2736  //   Operations are only permitted on enabled directories.
  2737  //
  2738  //   * ResourceNotFoundException
  2739  //   The specified resource could not be found.
  2740  //
  2741  //   * FacetValidationException
  2742  //   The Facet that you provided was not well formed or could not be validated
  2743  //   with the schema.
  2744  //
  2745  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
  2746  func (c *CloudDirectory) DetachTypedLink(input *DetachTypedLinkInput) (*DetachTypedLinkOutput, error) {
  2747  	req, out := c.DetachTypedLinkRequest(input)
  2748  	return out, req.Send()
  2749  }
  2750  
  2751  // DetachTypedLinkWithContext is the same as DetachTypedLink with the addition of
  2752  // the ability to pass a context and additional request options.
  2753  //
  2754  // See DetachTypedLink for details on how to use this API operation.
  2755  //
  2756  // The context must be non-nil and will be used for request cancellation. If
  2757  // the context is nil a panic will occur. In the future the SDK may create
  2758  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2759  // for more information on using Contexts.
  2760  func (c *CloudDirectory) DetachTypedLinkWithContext(ctx aws.Context, input *DetachTypedLinkInput, opts ...request.Option) (*DetachTypedLinkOutput, error) {
  2761  	req, out := c.DetachTypedLinkRequest(input)
  2762  	req.SetContext(ctx)
  2763  	req.ApplyOptions(opts...)
  2764  	return out, req.Send()
  2765  }
  2766  
  2767  const opDisableDirectory = "DisableDirectory"
  2768  
  2769  // DisableDirectoryRequest generates a "aws/request.Request" representing the
  2770  // client's request for the DisableDirectory operation. The "output" return
  2771  // value will be populated with the request's response once the request completes
  2772  // successfully.
  2773  //
  2774  // Use "Send" method on the returned Request to send the API call to the service.
  2775  // the "output" return value is not valid until after Send returns without error.
  2776  //
  2777  // See DisableDirectory for more information on using the DisableDirectory
  2778  // API call, and error handling.
  2779  //
  2780  // This method is useful when you want to inject custom logic or configuration
  2781  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2782  //
  2783  //
  2784  //    // Example sending a request using the DisableDirectoryRequest method.
  2785  //    req, resp := client.DisableDirectoryRequest(params)
  2786  //
  2787  //    err := req.Send()
  2788  //    if err == nil { // resp is now filled
  2789  //        fmt.Println(resp)
  2790  //    }
  2791  //
  2792  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
  2793  func (c *CloudDirectory) DisableDirectoryRequest(input *DisableDirectoryInput) (req *request.Request, output *DisableDirectoryOutput) {
  2794  	op := &request.Operation{
  2795  		Name:       opDisableDirectory,
  2796  		HTTPMethod: "PUT",
  2797  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/disable",
  2798  	}
  2799  
  2800  	if input == nil {
  2801  		input = &DisableDirectoryInput{}
  2802  	}
  2803  
  2804  	output = &DisableDirectoryOutput{}
  2805  	req = c.newRequest(op, input, output)
  2806  	return
  2807  }
  2808  
  2809  // DisableDirectory API operation for Amazon CloudDirectory.
  2810  //
  2811  // Disables the specified directory. Disabled directories cannot be read or
  2812  // written to. Only enabled directories can be disabled. Disabled directories
  2813  // may be reenabled.
  2814  //
  2815  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2816  // with awserr.Error's Code and Message methods to get detailed information about
  2817  // the error.
  2818  //
  2819  // See the AWS API reference guide for Amazon CloudDirectory's
  2820  // API operation DisableDirectory for usage and error information.
  2821  //
  2822  // Returned Error Types:
  2823  //   * ResourceNotFoundException
  2824  //   The specified resource could not be found.
  2825  //
  2826  //   * DirectoryDeletedException
  2827  //   A directory that has been deleted and to which access has been attempted.
  2828  //   Note: The requested resource will eventually cease to exist.
  2829  //
  2830  //   * InternalServiceException
  2831  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2832  //   be a transient error in which case you can retry your request until it succeeds.
  2833  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2834  //   site to see if there are any operational issues with the service.
  2835  //
  2836  //   * ValidationException
  2837  //   Indicates that your request is malformed in some manner. See the exception
  2838  //   message.
  2839  //
  2840  //   * LimitExceededException
  2841  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2842  //   for more information.
  2843  //
  2844  //   * AccessDeniedException
  2845  //   Access denied or directory not found. Either you don't have permissions for
  2846  //   this directory or the directory does not exist. Try calling ListDirectories
  2847  //   and check your permissions.
  2848  //
  2849  //   * RetryableConflictException
  2850  //   Occurs when a conflict with a previous successful write is detected. For
  2851  //   example, if a write operation occurs on an object and then an attempt is
  2852  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2853  //   may result. This generally occurs when the previous write did not have time
  2854  //   to propagate to the host serving the current request. A retry (with appropriate
  2855  //   backoff logic) is the recommended response to this exception.
  2856  //
  2857  //   * InvalidArnException
  2858  //   Indicates that the provided ARN value is not valid.
  2859  //
  2860  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
  2861  func (c *CloudDirectory) DisableDirectory(input *DisableDirectoryInput) (*DisableDirectoryOutput, error) {
  2862  	req, out := c.DisableDirectoryRequest(input)
  2863  	return out, req.Send()
  2864  }
  2865  
  2866  // DisableDirectoryWithContext is the same as DisableDirectory with the addition of
  2867  // the ability to pass a context and additional request options.
  2868  //
  2869  // See DisableDirectory for details on how to use this API operation.
  2870  //
  2871  // The context must be non-nil and will be used for request cancellation. If
  2872  // the context is nil a panic will occur. In the future the SDK may create
  2873  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2874  // for more information on using Contexts.
  2875  func (c *CloudDirectory) DisableDirectoryWithContext(ctx aws.Context, input *DisableDirectoryInput, opts ...request.Option) (*DisableDirectoryOutput, error) {
  2876  	req, out := c.DisableDirectoryRequest(input)
  2877  	req.SetContext(ctx)
  2878  	req.ApplyOptions(opts...)
  2879  	return out, req.Send()
  2880  }
  2881  
  2882  const opEnableDirectory = "EnableDirectory"
  2883  
  2884  // EnableDirectoryRequest generates a "aws/request.Request" representing the
  2885  // client's request for the EnableDirectory operation. The "output" return
  2886  // value will be populated with the request's response once the request completes
  2887  // successfully.
  2888  //
  2889  // Use "Send" method on the returned Request to send the API call to the service.
  2890  // the "output" return value is not valid until after Send returns without error.
  2891  //
  2892  // See EnableDirectory for more information on using the EnableDirectory
  2893  // API call, and error handling.
  2894  //
  2895  // This method is useful when you want to inject custom logic or configuration
  2896  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2897  //
  2898  //
  2899  //    // Example sending a request using the EnableDirectoryRequest method.
  2900  //    req, resp := client.EnableDirectoryRequest(params)
  2901  //
  2902  //    err := req.Send()
  2903  //    if err == nil { // resp is now filled
  2904  //        fmt.Println(resp)
  2905  //    }
  2906  //
  2907  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
  2908  func (c *CloudDirectory) EnableDirectoryRequest(input *EnableDirectoryInput) (req *request.Request, output *EnableDirectoryOutput) {
  2909  	op := &request.Operation{
  2910  		Name:       opEnableDirectory,
  2911  		HTTPMethod: "PUT",
  2912  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/enable",
  2913  	}
  2914  
  2915  	if input == nil {
  2916  		input = &EnableDirectoryInput{}
  2917  	}
  2918  
  2919  	output = &EnableDirectoryOutput{}
  2920  	req = c.newRequest(op, input, output)
  2921  	return
  2922  }
  2923  
  2924  // EnableDirectory API operation for Amazon CloudDirectory.
  2925  //
  2926  // Enables the specified directory. Only disabled directories can be enabled.
  2927  // Once enabled, the directory can then be read and written to.
  2928  //
  2929  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2930  // with awserr.Error's Code and Message methods to get detailed information about
  2931  // the error.
  2932  //
  2933  // See the AWS API reference guide for Amazon CloudDirectory's
  2934  // API operation EnableDirectory for usage and error information.
  2935  //
  2936  // Returned Error Types:
  2937  //   * ResourceNotFoundException
  2938  //   The specified resource could not be found.
  2939  //
  2940  //   * DirectoryDeletedException
  2941  //   A directory that has been deleted and to which access has been attempted.
  2942  //   Note: The requested resource will eventually cease to exist.
  2943  //
  2944  //   * InternalServiceException
  2945  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  2946  //   be a transient error in which case you can retry your request until it succeeds.
  2947  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  2948  //   site to see if there are any operational issues with the service.
  2949  //
  2950  //   * ValidationException
  2951  //   Indicates that your request is malformed in some manner. See the exception
  2952  //   message.
  2953  //
  2954  //   * LimitExceededException
  2955  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  2956  //   for more information.
  2957  //
  2958  //   * AccessDeniedException
  2959  //   Access denied or directory not found. Either you don't have permissions for
  2960  //   this directory or the directory does not exist. Try calling ListDirectories
  2961  //   and check your permissions.
  2962  //
  2963  //   * RetryableConflictException
  2964  //   Occurs when a conflict with a previous successful write is detected. For
  2965  //   example, if a write operation occurs on an object and then an attempt is
  2966  //   made to read the object using “SERIALIZABLE” consistency, this exception
  2967  //   may result. This generally occurs when the previous write did not have time
  2968  //   to propagate to the host serving the current request. A retry (with appropriate
  2969  //   backoff logic) is the recommended response to this exception.
  2970  //
  2971  //   * InvalidArnException
  2972  //   Indicates that the provided ARN value is not valid.
  2973  //
  2974  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
  2975  func (c *CloudDirectory) EnableDirectory(input *EnableDirectoryInput) (*EnableDirectoryOutput, error) {
  2976  	req, out := c.EnableDirectoryRequest(input)
  2977  	return out, req.Send()
  2978  }
  2979  
  2980  // EnableDirectoryWithContext is the same as EnableDirectory with the addition of
  2981  // the ability to pass a context and additional request options.
  2982  //
  2983  // See EnableDirectory for details on how to use this API operation.
  2984  //
  2985  // The context must be non-nil and will be used for request cancellation. If
  2986  // the context is nil a panic will occur. In the future the SDK may create
  2987  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2988  // for more information on using Contexts.
  2989  func (c *CloudDirectory) EnableDirectoryWithContext(ctx aws.Context, input *EnableDirectoryInput, opts ...request.Option) (*EnableDirectoryOutput, error) {
  2990  	req, out := c.EnableDirectoryRequest(input)
  2991  	req.SetContext(ctx)
  2992  	req.ApplyOptions(opts...)
  2993  	return out, req.Send()
  2994  }
  2995  
  2996  const opGetAppliedSchemaVersion = "GetAppliedSchemaVersion"
  2997  
  2998  // GetAppliedSchemaVersionRequest generates a "aws/request.Request" representing the
  2999  // client's request for the GetAppliedSchemaVersion operation. The "output" return
  3000  // value will be populated with the request's response once the request completes
  3001  // successfully.
  3002  //
  3003  // Use "Send" method on the returned Request to send the API call to the service.
  3004  // the "output" return value is not valid until after Send returns without error.
  3005  //
  3006  // See GetAppliedSchemaVersion for more information on using the GetAppliedSchemaVersion
  3007  // API call, and error handling.
  3008  //
  3009  // This method is useful when you want to inject custom logic or configuration
  3010  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3011  //
  3012  //
  3013  //    // Example sending a request using the GetAppliedSchemaVersionRequest method.
  3014  //    req, resp := client.GetAppliedSchemaVersionRequest(params)
  3015  //
  3016  //    err := req.Send()
  3017  //    if err == nil { // resp is now filled
  3018  //        fmt.Println(resp)
  3019  //    }
  3020  //
  3021  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
  3022  func (c *CloudDirectory) GetAppliedSchemaVersionRequest(input *GetAppliedSchemaVersionInput) (req *request.Request, output *GetAppliedSchemaVersionOutput) {
  3023  	op := &request.Operation{
  3024  		Name:       opGetAppliedSchemaVersion,
  3025  		HTTPMethod: "POST",
  3026  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
  3027  	}
  3028  
  3029  	if input == nil {
  3030  		input = &GetAppliedSchemaVersionInput{}
  3031  	}
  3032  
  3033  	output = &GetAppliedSchemaVersionOutput{}
  3034  	req = c.newRequest(op, input, output)
  3035  	return
  3036  }
  3037  
  3038  // GetAppliedSchemaVersion API operation for Amazon CloudDirectory.
  3039  //
  3040  // Returns current applied schema version ARN, including the minor version in
  3041  // use.
  3042  //
  3043  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3044  // with awserr.Error's Code and Message methods to get detailed information about
  3045  // the error.
  3046  //
  3047  // See the AWS API reference guide for Amazon CloudDirectory's
  3048  // API operation GetAppliedSchemaVersion for usage and error information.
  3049  //
  3050  // Returned Error Types:
  3051  //   * InternalServiceException
  3052  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3053  //   be a transient error in which case you can retry your request until it succeeds.
  3054  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3055  //   site to see if there are any operational issues with the service.
  3056  //
  3057  //   * InvalidArnException
  3058  //   Indicates that the provided ARN value is not valid.
  3059  //
  3060  //   * RetryableConflictException
  3061  //   Occurs when a conflict with a previous successful write is detected. For
  3062  //   example, if a write operation occurs on an object and then an attempt is
  3063  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3064  //   may result. This generally occurs when the previous write did not have time
  3065  //   to propagate to the host serving the current request. A retry (with appropriate
  3066  //   backoff logic) is the recommended response to this exception.
  3067  //
  3068  //   * ValidationException
  3069  //   Indicates that your request is malformed in some manner. See the exception
  3070  //   message.
  3071  //
  3072  //   * LimitExceededException
  3073  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3074  //   for more information.
  3075  //
  3076  //   * AccessDeniedException
  3077  //   Access denied or directory not found. Either you don't have permissions for
  3078  //   this directory or the directory does not exist. Try calling ListDirectories
  3079  //   and check your permissions.
  3080  //
  3081  //   * ResourceNotFoundException
  3082  //   The specified resource could not be found.
  3083  //
  3084  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
  3085  func (c *CloudDirectory) GetAppliedSchemaVersion(input *GetAppliedSchemaVersionInput) (*GetAppliedSchemaVersionOutput, error) {
  3086  	req, out := c.GetAppliedSchemaVersionRequest(input)
  3087  	return out, req.Send()
  3088  }
  3089  
  3090  // GetAppliedSchemaVersionWithContext is the same as GetAppliedSchemaVersion with the addition of
  3091  // the ability to pass a context and additional request options.
  3092  //
  3093  // See GetAppliedSchemaVersion for details on how to use this API operation.
  3094  //
  3095  // The context must be non-nil and will be used for request cancellation. If
  3096  // the context is nil a panic will occur. In the future the SDK may create
  3097  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3098  // for more information on using Contexts.
  3099  func (c *CloudDirectory) GetAppliedSchemaVersionWithContext(ctx aws.Context, input *GetAppliedSchemaVersionInput, opts ...request.Option) (*GetAppliedSchemaVersionOutput, error) {
  3100  	req, out := c.GetAppliedSchemaVersionRequest(input)
  3101  	req.SetContext(ctx)
  3102  	req.ApplyOptions(opts...)
  3103  	return out, req.Send()
  3104  }
  3105  
  3106  const opGetDirectory = "GetDirectory"
  3107  
  3108  // GetDirectoryRequest generates a "aws/request.Request" representing the
  3109  // client's request for the GetDirectory operation. The "output" return
  3110  // value will be populated with the request's response once the request completes
  3111  // successfully.
  3112  //
  3113  // Use "Send" method on the returned Request to send the API call to the service.
  3114  // the "output" return value is not valid until after Send returns without error.
  3115  //
  3116  // See GetDirectory for more information on using the GetDirectory
  3117  // API call, and error handling.
  3118  //
  3119  // This method is useful when you want to inject custom logic or configuration
  3120  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3121  //
  3122  //
  3123  //    // Example sending a request using the GetDirectoryRequest method.
  3124  //    req, resp := client.GetDirectoryRequest(params)
  3125  //
  3126  //    err := req.Send()
  3127  //    if err == nil { // resp is now filled
  3128  //        fmt.Println(resp)
  3129  //    }
  3130  //
  3131  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
  3132  func (c *CloudDirectory) GetDirectoryRequest(input *GetDirectoryInput) (req *request.Request, output *GetDirectoryOutput) {
  3133  	op := &request.Operation{
  3134  		Name:       opGetDirectory,
  3135  		HTTPMethod: "POST",
  3136  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/get",
  3137  	}
  3138  
  3139  	if input == nil {
  3140  		input = &GetDirectoryInput{}
  3141  	}
  3142  
  3143  	output = &GetDirectoryOutput{}
  3144  	req = c.newRequest(op, input, output)
  3145  	return
  3146  }
  3147  
  3148  // GetDirectory API operation for Amazon CloudDirectory.
  3149  //
  3150  // Retrieves metadata about a directory.
  3151  //
  3152  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3153  // with awserr.Error's Code and Message methods to get detailed information about
  3154  // the error.
  3155  //
  3156  // See the AWS API reference guide for Amazon CloudDirectory's
  3157  // API operation GetDirectory for usage and error information.
  3158  //
  3159  // Returned Error Types:
  3160  //   * InternalServiceException
  3161  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3162  //   be a transient error in which case you can retry your request until it succeeds.
  3163  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3164  //   site to see if there are any operational issues with the service.
  3165  //
  3166  //   * InvalidArnException
  3167  //   Indicates that the provided ARN value is not valid.
  3168  //
  3169  //   * RetryableConflictException
  3170  //   Occurs when a conflict with a previous successful write is detected. For
  3171  //   example, if a write operation occurs on an object and then an attempt is
  3172  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3173  //   may result. This generally occurs when the previous write did not have time
  3174  //   to propagate to the host serving the current request. A retry (with appropriate
  3175  //   backoff logic) is the recommended response to this exception.
  3176  //
  3177  //   * ValidationException
  3178  //   Indicates that your request is malformed in some manner. See the exception
  3179  //   message.
  3180  //
  3181  //   * LimitExceededException
  3182  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3183  //   for more information.
  3184  //
  3185  //   * AccessDeniedException
  3186  //   Access denied or directory not found. Either you don't have permissions for
  3187  //   this directory or the directory does not exist. Try calling ListDirectories
  3188  //   and check your permissions.
  3189  //
  3190  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
  3191  func (c *CloudDirectory) GetDirectory(input *GetDirectoryInput) (*GetDirectoryOutput, error) {
  3192  	req, out := c.GetDirectoryRequest(input)
  3193  	return out, req.Send()
  3194  }
  3195  
  3196  // GetDirectoryWithContext is the same as GetDirectory with the addition of
  3197  // the ability to pass a context and additional request options.
  3198  //
  3199  // See GetDirectory for details on how to use this API operation.
  3200  //
  3201  // The context must be non-nil and will be used for request cancellation. If
  3202  // the context is nil a panic will occur. In the future the SDK may create
  3203  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3204  // for more information on using Contexts.
  3205  func (c *CloudDirectory) GetDirectoryWithContext(ctx aws.Context, input *GetDirectoryInput, opts ...request.Option) (*GetDirectoryOutput, error) {
  3206  	req, out := c.GetDirectoryRequest(input)
  3207  	req.SetContext(ctx)
  3208  	req.ApplyOptions(opts...)
  3209  	return out, req.Send()
  3210  }
  3211  
  3212  const opGetFacet = "GetFacet"
  3213  
  3214  // GetFacetRequest generates a "aws/request.Request" representing the
  3215  // client's request for the GetFacet operation. The "output" return
  3216  // value will be populated with the request's response once the request completes
  3217  // successfully.
  3218  //
  3219  // Use "Send" method on the returned Request to send the API call to the service.
  3220  // the "output" return value is not valid until after Send returns without error.
  3221  //
  3222  // See GetFacet for more information on using the GetFacet
  3223  // API call, and error handling.
  3224  //
  3225  // This method is useful when you want to inject custom logic or configuration
  3226  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3227  //
  3228  //
  3229  //    // Example sending a request using the GetFacetRequest method.
  3230  //    req, resp := client.GetFacetRequest(params)
  3231  //
  3232  //    err := req.Send()
  3233  //    if err == nil { // resp is now filled
  3234  //        fmt.Println(resp)
  3235  //    }
  3236  //
  3237  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
  3238  func (c *CloudDirectory) GetFacetRequest(input *GetFacetInput) (req *request.Request, output *GetFacetOutput) {
  3239  	op := &request.Operation{
  3240  		Name:       opGetFacet,
  3241  		HTTPMethod: "POST",
  3242  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
  3243  	}
  3244  
  3245  	if input == nil {
  3246  		input = &GetFacetInput{}
  3247  	}
  3248  
  3249  	output = &GetFacetOutput{}
  3250  	req = c.newRequest(op, input, output)
  3251  	return
  3252  }
  3253  
  3254  // GetFacet API operation for Amazon CloudDirectory.
  3255  //
  3256  // Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType.
  3257  // You can call this on all kinds of schema facets -- published, development,
  3258  // or applied.
  3259  //
  3260  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3261  // with awserr.Error's Code and Message methods to get detailed information about
  3262  // the error.
  3263  //
  3264  // See the AWS API reference guide for Amazon CloudDirectory's
  3265  // API operation GetFacet for usage and error information.
  3266  //
  3267  // Returned Error Types:
  3268  //   * InternalServiceException
  3269  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3270  //   be a transient error in which case you can retry your request until it succeeds.
  3271  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3272  //   site to see if there are any operational issues with the service.
  3273  //
  3274  //   * InvalidArnException
  3275  //   Indicates that the provided ARN value is not valid.
  3276  //
  3277  //   * RetryableConflictException
  3278  //   Occurs when a conflict with a previous successful write is detected. For
  3279  //   example, if a write operation occurs on an object and then an attempt is
  3280  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3281  //   may result. This generally occurs when the previous write did not have time
  3282  //   to propagate to the host serving the current request. A retry (with appropriate
  3283  //   backoff logic) is the recommended response to this exception.
  3284  //
  3285  //   * ValidationException
  3286  //   Indicates that your request is malformed in some manner. See the exception
  3287  //   message.
  3288  //
  3289  //   * LimitExceededException
  3290  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3291  //   for more information.
  3292  //
  3293  //   * AccessDeniedException
  3294  //   Access denied or directory not found. Either you don't have permissions for
  3295  //   this directory or the directory does not exist. Try calling ListDirectories
  3296  //   and check your permissions.
  3297  //
  3298  //   * ResourceNotFoundException
  3299  //   The specified resource could not be found.
  3300  //
  3301  //   * FacetNotFoundException
  3302  //   The specified Facet could not be found.
  3303  //
  3304  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
  3305  func (c *CloudDirectory) GetFacet(input *GetFacetInput) (*GetFacetOutput, error) {
  3306  	req, out := c.GetFacetRequest(input)
  3307  	return out, req.Send()
  3308  }
  3309  
  3310  // GetFacetWithContext is the same as GetFacet with the addition of
  3311  // the ability to pass a context and additional request options.
  3312  //
  3313  // See GetFacet for details on how to use this API operation.
  3314  //
  3315  // The context must be non-nil and will be used for request cancellation. If
  3316  // the context is nil a panic will occur. In the future the SDK may create
  3317  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3318  // for more information on using Contexts.
  3319  func (c *CloudDirectory) GetFacetWithContext(ctx aws.Context, input *GetFacetInput, opts ...request.Option) (*GetFacetOutput, error) {
  3320  	req, out := c.GetFacetRequest(input)
  3321  	req.SetContext(ctx)
  3322  	req.ApplyOptions(opts...)
  3323  	return out, req.Send()
  3324  }
  3325  
  3326  const opGetLinkAttributes = "GetLinkAttributes"
  3327  
  3328  // GetLinkAttributesRequest generates a "aws/request.Request" representing the
  3329  // client's request for the GetLinkAttributes operation. The "output" return
  3330  // value will be populated with the request's response once the request completes
  3331  // successfully.
  3332  //
  3333  // Use "Send" method on the returned Request to send the API call to the service.
  3334  // the "output" return value is not valid until after Send returns without error.
  3335  //
  3336  // See GetLinkAttributes for more information on using the GetLinkAttributes
  3337  // API call, and error handling.
  3338  //
  3339  // This method is useful when you want to inject custom logic or configuration
  3340  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3341  //
  3342  //
  3343  //    // Example sending a request using the GetLinkAttributesRequest method.
  3344  //    req, resp := client.GetLinkAttributesRequest(params)
  3345  //
  3346  //    err := req.Send()
  3347  //    if err == nil { // resp is now filled
  3348  //        fmt.Println(resp)
  3349  //    }
  3350  //
  3351  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
  3352  func (c *CloudDirectory) GetLinkAttributesRequest(input *GetLinkAttributesInput) (req *request.Request, output *GetLinkAttributesOutput) {
  3353  	op := &request.Operation{
  3354  		Name:       opGetLinkAttributes,
  3355  		HTTPMethod: "POST",
  3356  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/get",
  3357  	}
  3358  
  3359  	if input == nil {
  3360  		input = &GetLinkAttributesInput{}
  3361  	}
  3362  
  3363  	output = &GetLinkAttributesOutput{}
  3364  	req = c.newRequest(op, input, output)
  3365  	return
  3366  }
  3367  
  3368  // GetLinkAttributes API operation for Amazon CloudDirectory.
  3369  //
  3370  // Retrieves attributes that are associated with a typed link.
  3371  //
  3372  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3373  // with awserr.Error's Code and Message methods to get detailed information about
  3374  // the error.
  3375  //
  3376  // See the AWS API reference guide for Amazon CloudDirectory's
  3377  // API operation GetLinkAttributes for usage and error information.
  3378  //
  3379  // Returned Error Types:
  3380  //   * InternalServiceException
  3381  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3382  //   be a transient error in which case you can retry your request until it succeeds.
  3383  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3384  //   site to see if there are any operational issues with the service.
  3385  //
  3386  //   * InvalidArnException
  3387  //   Indicates that the provided ARN value is not valid.
  3388  //
  3389  //   * RetryableConflictException
  3390  //   Occurs when a conflict with a previous successful write is detected. For
  3391  //   example, if a write operation occurs on an object and then an attempt is
  3392  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3393  //   may result. This generally occurs when the previous write did not have time
  3394  //   to propagate to the host serving the current request. A retry (with appropriate
  3395  //   backoff logic) is the recommended response to this exception.
  3396  //
  3397  //   * ValidationException
  3398  //   Indicates that your request is malformed in some manner. See the exception
  3399  //   message.
  3400  //
  3401  //   * LimitExceededException
  3402  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3403  //   for more information.
  3404  //
  3405  //   * AccessDeniedException
  3406  //   Access denied or directory not found. Either you don't have permissions for
  3407  //   this directory or the directory does not exist. Try calling ListDirectories
  3408  //   and check your permissions.
  3409  //
  3410  //   * DirectoryNotEnabledException
  3411  //   Operations are only permitted on enabled directories.
  3412  //
  3413  //   * ResourceNotFoundException
  3414  //   The specified resource could not be found.
  3415  //
  3416  //   * FacetValidationException
  3417  //   The Facet that you provided was not well formed or could not be validated
  3418  //   with the schema.
  3419  //
  3420  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
  3421  func (c *CloudDirectory) GetLinkAttributes(input *GetLinkAttributesInput) (*GetLinkAttributesOutput, error) {
  3422  	req, out := c.GetLinkAttributesRequest(input)
  3423  	return out, req.Send()
  3424  }
  3425  
  3426  // GetLinkAttributesWithContext is the same as GetLinkAttributes with the addition of
  3427  // the ability to pass a context and additional request options.
  3428  //
  3429  // See GetLinkAttributes for details on how to use this API operation.
  3430  //
  3431  // The context must be non-nil and will be used for request cancellation. If
  3432  // the context is nil a panic will occur. In the future the SDK may create
  3433  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3434  // for more information on using Contexts.
  3435  func (c *CloudDirectory) GetLinkAttributesWithContext(ctx aws.Context, input *GetLinkAttributesInput, opts ...request.Option) (*GetLinkAttributesOutput, error) {
  3436  	req, out := c.GetLinkAttributesRequest(input)
  3437  	req.SetContext(ctx)
  3438  	req.ApplyOptions(opts...)
  3439  	return out, req.Send()
  3440  }
  3441  
  3442  const opGetObjectAttributes = "GetObjectAttributes"
  3443  
  3444  // GetObjectAttributesRequest generates a "aws/request.Request" representing the
  3445  // client's request for the GetObjectAttributes operation. The "output" return
  3446  // value will be populated with the request's response once the request completes
  3447  // successfully.
  3448  //
  3449  // Use "Send" method on the returned Request to send the API call to the service.
  3450  // the "output" return value is not valid until after Send returns without error.
  3451  //
  3452  // See GetObjectAttributes for more information on using the GetObjectAttributes
  3453  // API call, and error handling.
  3454  //
  3455  // This method is useful when you want to inject custom logic or configuration
  3456  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3457  //
  3458  //
  3459  //    // Example sending a request using the GetObjectAttributesRequest method.
  3460  //    req, resp := client.GetObjectAttributesRequest(params)
  3461  //
  3462  //    err := req.Send()
  3463  //    if err == nil { // resp is now filled
  3464  //        fmt.Println(resp)
  3465  //    }
  3466  //
  3467  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
  3468  func (c *CloudDirectory) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *request.Request, output *GetObjectAttributesOutput) {
  3469  	op := &request.Operation{
  3470  		Name:       opGetObjectAttributes,
  3471  		HTTPMethod: "POST",
  3472  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes/get",
  3473  	}
  3474  
  3475  	if input == nil {
  3476  		input = &GetObjectAttributesInput{}
  3477  	}
  3478  
  3479  	output = &GetObjectAttributesOutput{}
  3480  	req = c.newRequest(op, input, output)
  3481  	return
  3482  }
  3483  
  3484  // GetObjectAttributes API operation for Amazon CloudDirectory.
  3485  //
  3486  // Retrieves attributes within a facet that are associated with an object.
  3487  //
  3488  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3489  // with awserr.Error's Code and Message methods to get detailed information about
  3490  // the error.
  3491  //
  3492  // See the AWS API reference guide for Amazon CloudDirectory's
  3493  // API operation GetObjectAttributes for usage and error information.
  3494  //
  3495  // Returned Error Types:
  3496  //   * InternalServiceException
  3497  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3498  //   be a transient error in which case you can retry your request until it succeeds.
  3499  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3500  //   site to see if there are any operational issues with the service.
  3501  //
  3502  //   * InvalidArnException
  3503  //   Indicates that the provided ARN value is not valid.
  3504  //
  3505  //   * RetryableConflictException
  3506  //   Occurs when a conflict with a previous successful write is detected. For
  3507  //   example, if a write operation occurs on an object and then an attempt is
  3508  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3509  //   may result. This generally occurs when the previous write did not have time
  3510  //   to propagate to the host serving the current request. A retry (with appropriate
  3511  //   backoff logic) is the recommended response to this exception.
  3512  //
  3513  //   * ValidationException
  3514  //   Indicates that your request is malformed in some manner. See the exception
  3515  //   message.
  3516  //
  3517  //   * LimitExceededException
  3518  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3519  //   for more information.
  3520  //
  3521  //   * AccessDeniedException
  3522  //   Access denied or directory not found. Either you don't have permissions for
  3523  //   this directory or the directory does not exist. Try calling ListDirectories
  3524  //   and check your permissions.
  3525  //
  3526  //   * DirectoryNotEnabledException
  3527  //   Operations are only permitted on enabled directories.
  3528  //
  3529  //   * ResourceNotFoundException
  3530  //   The specified resource could not be found.
  3531  //
  3532  //   * FacetValidationException
  3533  //   The Facet that you provided was not well formed or could not be validated
  3534  //   with the schema.
  3535  //
  3536  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
  3537  func (c *CloudDirectory) GetObjectAttributes(input *GetObjectAttributesInput) (*GetObjectAttributesOutput, error) {
  3538  	req, out := c.GetObjectAttributesRequest(input)
  3539  	return out, req.Send()
  3540  }
  3541  
  3542  // GetObjectAttributesWithContext is the same as GetObjectAttributes with the addition of
  3543  // the ability to pass a context and additional request options.
  3544  //
  3545  // See GetObjectAttributes for details on how to use this API operation.
  3546  //
  3547  // The context must be non-nil and will be used for request cancellation. If
  3548  // the context is nil a panic will occur. In the future the SDK may create
  3549  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3550  // for more information on using Contexts.
  3551  func (c *CloudDirectory) GetObjectAttributesWithContext(ctx aws.Context, input *GetObjectAttributesInput, opts ...request.Option) (*GetObjectAttributesOutput, error) {
  3552  	req, out := c.GetObjectAttributesRequest(input)
  3553  	req.SetContext(ctx)
  3554  	req.ApplyOptions(opts...)
  3555  	return out, req.Send()
  3556  }
  3557  
  3558  const opGetObjectInformation = "GetObjectInformation"
  3559  
  3560  // GetObjectInformationRequest generates a "aws/request.Request" representing the
  3561  // client's request for the GetObjectInformation operation. The "output" return
  3562  // value will be populated with the request's response once the request completes
  3563  // successfully.
  3564  //
  3565  // Use "Send" method on the returned Request to send the API call to the service.
  3566  // the "output" return value is not valid until after Send returns without error.
  3567  //
  3568  // See GetObjectInformation for more information on using the GetObjectInformation
  3569  // API call, and error handling.
  3570  //
  3571  // This method is useful when you want to inject custom logic or configuration
  3572  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3573  //
  3574  //
  3575  //    // Example sending a request using the GetObjectInformationRequest method.
  3576  //    req, resp := client.GetObjectInformationRequest(params)
  3577  //
  3578  //    err := req.Send()
  3579  //    if err == nil { // resp is now filled
  3580  //        fmt.Println(resp)
  3581  //    }
  3582  //
  3583  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
  3584  func (c *CloudDirectory) GetObjectInformationRequest(input *GetObjectInformationInput) (req *request.Request, output *GetObjectInformationOutput) {
  3585  	op := &request.Operation{
  3586  		Name:       opGetObjectInformation,
  3587  		HTTPMethod: "POST",
  3588  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/information",
  3589  	}
  3590  
  3591  	if input == nil {
  3592  		input = &GetObjectInformationInput{}
  3593  	}
  3594  
  3595  	output = &GetObjectInformationOutput{}
  3596  	req = c.newRequest(op, input, output)
  3597  	return
  3598  }
  3599  
  3600  // GetObjectInformation API operation for Amazon CloudDirectory.
  3601  //
  3602  // Retrieves metadata about an object.
  3603  //
  3604  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3605  // with awserr.Error's Code and Message methods to get detailed information about
  3606  // the error.
  3607  //
  3608  // See the AWS API reference guide for Amazon CloudDirectory's
  3609  // API operation GetObjectInformation for usage and error information.
  3610  //
  3611  // Returned Error Types:
  3612  //   * InternalServiceException
  3613  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3614  //   be a transient error in which case you can retry your request until it succeeds.
  3615  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3616  //   site to see if there are any operational issues with the service.
  3617  //
  3618  //   * InvalidArnException
  3619  //   Indicates that the provided ARN value is not valid.
  3620  //
  3621  //   * RetryableConflictException
  3622  //   Occurs when a conflict with a previous successful write is detected. For
  3623  //   example, if a write operation occurs on an object and then an attempt is
  3624  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3625  //   may result. This generally occurs when the previous write did not have time
  3626  //   to propagate to the host serving the current request. A retry (with appropriate
  3627  //   backoff logic) is the recommended response to this exception.
  3628  //
  3629  //   * ValidationException
  3630  //   Indicates that your request is malformed in some manner. See the exception
  3631  //   message.
  3632  //
  3633  //   * LimitExceededException
  3634  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3635  //   for more information.
  3636  //
  3637  //   * AccessDeniedException
  3638  //   Access denied or directory not found. Either you don't have permissions for
  3639  //   this directory or the directory does not exist. Try calling ListDirectories
  3640  //   and check your permissions.
  3641  //
  3642  //   * DirectoryNotEnabledException
  3643  //   Operations are only permitted on enabled directories.
  3644  //
  3645  //   * ResourceNotFoundException
  3646  //   The specified resource could not be found.
  3647  //
  3648  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
  3649  func (c *CloudDirectory) GetObjectInformation(input *GetObjectInformationInput) (*GetObjectInformationOutput, error) {
  3650  	req, out := c.GetObjectInformationRequest(input)
  3651  	return out, req.Send()
  3652  }
  3653  
  3654  // GetObjectInformationWithContext is the same as GetObjectInformation with the addition of
  3655  // the ability to pass a context and additional request options.
  3656  //
  3657  // See GetObjectInformation for details on how to use this API operation.
  3658  //
  3659  // The context must be non-nil and will be used for request cancellation. If
  3660  // the context is nil a panic will occur. In the future the SDK may create
  3661  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3662  // for more information on using Contexts.
  3663  func (c *CloudDirectory) GetObjectInformationWithContext(ctx aws.Context, input *GetObjectInformationInput, opts ...request.Option) (*GetObjectInformationOutput, error) {
  3664  	req, out := c.GetObjectInformationRequest(input)
  3665  	req.SetContext(ctx)
  3666  	req.ApplyOptions(opts...)
  3667  	return out, req.Send()
  3668  }
  3669  
  3670  const opGetSchemaAsJson = "GetSchemaAsJson"
  3671  
  3672  // GetSchemaAsJsonRequest generates a "aws/request.Request" representing the
  3673  // client's request for the GetSchemaAsJson operation. The "output" return
  3674  // value will be populated with the request's response once the request completes
  3675  // successfully.
  3676  //
  3677  // Use "Send" method on the returned Request to send the API call to the service.
  3678  // the "output" return value is not valid until after Send returns without error.
  3679  //
  3680  // See GetSchemaAsJson for more information on using the GetSchemaAsJson
  3681  // API call, and error handling.
  3682  //
  3683  // This method is useful when you want to inject custom logic or configuration
  3684  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3685  //
  3686  //
  3687  //    // Example sending a request using the GetSchemaAsJsonRequest method.
  3688  //    req, resp := client.GetSchemaAsJsonRequest(params)
  3689  //
  3690  //    err := req.Send()
  3691  //    if err == nil { // resp is now filled
  3692  //        fmt.Println(resp)
  3693  //    }
  3694  //
  3695  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
  3696  func (c *CloudDirectory) GetSchemaAsJsonRequest(input *GetSchemaAsJsonInput) (req *request.Request, output *GetSchemaAsJsonOutput) {
  3697  	op := &request.Operation{
  3698  		Name:       opGetSchemaAsJson,
  3699  		HTTPMethod: "POST",
  3700  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
  3701  	}
  3702  
  3703  	if input == nil {
  3704  		input = &GetSchemaAsJsonInput{}
  3705  	}
  3706  
  3707  	output = &GetSchemaAsJsonOutput{}
  3708  	req = c.newRequest(op, input, output)
  3709  	return
  3710  }
  3711  
  3712  // GetSchemaAsJson API operation for Amazon CloudDirectory.
  3713  //
  3714  // Retrieves a JSON representation of the schema. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
  3715  // for more information.
  3716  //
  3717  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3718  // with awserr.Error's Code and Message methods to get detailed information about
  3719  // the error.
  3720  //
  3721  // See the AWS API reference guide for Amazon CloudDirectory's
  3722  // API operation GetSchemaAsJson for usage and error information.
  3723  //
  3724  // Returned Error Types:
  3725  //   * InternalServiceException
  3726  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3727  //   be a transient error in which case you can retry your request until it succeeds.
  3728  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3729  //   site to see if there are any operational issues with the service.
  3730  //
  3731  //   * InvalidArnException
  3732  //   Indicates that the provided ARN value is not valid.
  3733  //
  3734  //   * RetryableConflictException
  3735  //   Occurs when a conflict with a previous successful write is detected. For
  3736  //   example, if a write operation occurs on an object and then an attempt is
  3737  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3738  //   may result. This generally occurs when the previous write did not have time
  3739  //   to propagate to the host serving the current request. A retry (with appropriate
  3740  //   backoff logic) is the recommended response to this exception.
  3741  //
  3742  //   * ValidationException
  3743  //   Indicates that your request is malformed in some manner. See the exception
  3744  //   message.
  3745  //
  3746  //   * LimitExceededException
  3747  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3748  //   for more information.
  3749  //
  3750  //   * AccessDeniedException
  3751  //   Access denied or directory not found. Either you don't have permissions for
  3752  //   this directory or the directory does not exist. Try calling ListDirectories
  3753  //   and check your permissions.
  3754  //
  3755  //   * ResourceNotFoundException
  3756  //   The specified resource could not be found.
  3757  //
  3758  //   * ValidationException
  3759  //   Indicates that your request is malformed in some manner. See the exception
  3760  //   message.
  3761  //
  3762  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
  3763  func (c *CloudDirectory) GetSchemaAsJson(input *GetSchemaAsJsonInput) (*GetSchemaAsJsonOutput, error) {
  3764  	req, out := c.GetSchemaAsJsonRequest(input)
  3765  	return out, req.Send()
  3766  }
  3767  
  3768  // GetSchemaAsJsonWithContext is the same as GetSchemaAsJson with the addition of
  3769  // the ability to pass a context and additional request options.
  3770  //
  3771  // See GetSchemaAsJson for details on how to use this API operation.
  3772  //
  3773  // The context must be non-nil and will be used for request cancellation. If
  3774  // the context is nil a panic will occur. In the future the SDK may create
  3775  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3776  // for more information on using Contexts.
  3777  func (c *CloudDirectory) GetSchemaAsJsonWithContext(ctx aws.Context, input *GetSchemaAsJsonInput, opts ...request.Option) (*GetSchemaAsJsonOutput, error) {
  3778  	req, out := c.GetSchemaAsJsonRequest(input)
  3779  	req.SetContext(ctx)
  3780  	req.ApplyOptions(opts...)
  3781  	return out, req.Send()
  3782  }
  3783  
  3784  const opGetTypedLinkFacetInformation = "GetTypedLinkFacetInformation"
  3785  
  3786  // GetTypedLinkFacetInformationRequest generates a "aws/request.Request" representing the
  3787  // client's request for the GetTypedLinkFacetInformation operation. The "output" return
  3788  // value will be populated with the request's response once the request completes
  3789  // successfully.
  3790  //
  3791  // Use "Send" method on the returned Request to send the API call to the service.
  3792  // the "output" return value is not valid until after Send returns without error.
  3793  //
  3794  // See GetTypedLinkFacetInformation for more information on using the GetTypedLinkFacetInformation
  3795  // API call, and error handling.
  3796  //
  3797  // This method is useful when you want to inject custom logic or configuration
  3798  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3799  //
  3800  //
  3801  //    // Example sending a request using the GetTypedLinkFacetInformationRequest method.
  3802  //    req, resp := client.GetTypedLinkFacetInformationRequest(params)
  3803  //
  3804  //    err := req.Send()
  3805  //    if err == nil { // resp is now filled
  3806  //        fmt.Println(resp)
  3807  //    }
  3808  //
  3809  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
  3810  func (c *CloudDirectory) GetTypedLinkFacetInformationRequest(input *GetTypedLinkFacetInformationInput) (req *request.Request, output *GetTypedLinkFacetInformationOutput) {
  3811  	op := &request.Operation{
  3812  		Name:       opGetTypedLinkFacetInformation,
  3813  		HTTPMethod: "POST",
  3814  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
  3815  	}
  3816  
  3817  	if input == nil {
  3818  		input = &GetTypedLinkFacetInformationInput{}
  3819  	}
  3820  
  3821  	output = &GetTypedLinkFacetInformationOutput{}
  3822  	req = c.newRequest(op, input, output)
  3823  	return
  3824  }
  3825  
  3826  // GetTypedLinkFacetInformation API operation for Amazon CloudDirectory.
  3827  //
  3828  // Returns the identity attribute order for a specific TypedLinkFacet. For more
  3829  // information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  3830  //
  3831  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3832  // with awserr.Error's Code and Message methods to get detailed information about
  3833  // the error.
  3834  //
  3835  // See the AWS API reference guide for Amazon CloudDirectory's
  3836  // API operation GetTypedLinkFacetInformation for usage and error information.
  3837  //
  3838  // Returned Error Types:
  3839  //   * InternalServiceException
  3840  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3841  //   be a transient error in which case you can retry your request until it succeeds.
  3842  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3843  //   site to see if there are any operational issues with the service.
  3844  //
  3845  //   * InvalidArnException
  3846  //   Indicates that the provided ARN value is not valid.
  3847  //
  3848  //   * RetryableConflictException
  3849  //   Occurs when a conflict with a previous successful write is detected. For
  3850  //   example, if a write operation occurs on an object and then an attempt is
  3851  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3852  //   may result. This generally occurs when the previous write did not have time
  3853  //   to propagate to the host serving the current request. A retry (with appropriate
  3854  //   backoff logic) is the recommended response to this exception.
  3855  //
  3856  //   * ValidationException
  3857  //   Indicates that your request is malformed in some manner. See the exception
  3858  //   message.
  3859  //
  3860  //   * LimitExceededException
  3861  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3862  //   for more information.
  3863  //
  3864  //   * AccessDeniedException
  3865  //   Access denied or directory not found. Either you don't have permissions for
  3866  //   this directory or the directory does not exist. Try calling ListDirectories
  3867  //   and check your permissions.
  3868  //
  3869  //   * ResourceNotFoundException
  3870  //   The specified resource could not be found.
  3871  //
  3872  //   * InvalidNextTokenException
  3873  //   Indicates that the NextToken value is not valid.
  3874  //
  3875  //   * FacetNotFoundException
  3876  //   The specified Facet could not be found.
  3877  //
  3878  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
  3879  func (c *CloudDirectory) GetTypedLinkFacetInformation(input *GetTypedLinkFacetInformationInput) (*GetTypedLinkFacetInformationOutput, error) {
  3880  	req, out := c.GetTypedLinkFacetInformationRequest(input)
  3881  	return out, req.Send()
  3882  }
  3883  
  3884  // GetTypedLinkFacetInformationWithContext is the same as GetTypedLinkFacetInformation with the addition of
  3885  // the ability to pass a context and additional request options.
  3886  //
  3887  // See GetTypedLinkFacetInformation for details on how to use this API operation.
  3888  //
  3889  // The context must be non-nil and will be used for request cancellation. If
  3890  // the context is nil a panic will occur. In the future the SDK may create
  3891  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3892  // for more information on using Contexts.
  3893  func (c *CloudDirectory) GetTypedLinkFacetInformationWithContext(ctx aws.Context, input *GetTypedLinkFacetInformationInput, opts ...request.Option) (*GetTypedLinkFacetInformationOutput, error) {
  3894  	req, out := c.GetTypedLinkFacetInformationRequest(input)
  3895  	req.SetContext(ctx)
  3896  	req.ApplyOptions(opts...)
  3897  	return out, req.Send()
  3898  }
  3899  
  3900  const opListAppliedSchemaArns = "ListAppliedSchemaArns"
  3901  
  3902  // ListAppliedSchemaArnsRequest generates a "aws/request.Request" representing the
  3903  // client's request for the ListAppliedSchemaArns operation. The "output" return
  3904  // value will be populated with the request's response once the request completes
  3905  // successfully.
  3906  //
  3907  // Use "Send" method on the returned Request to send the API call to the service.
  3908  // the "output" return value is not valid until after Send returns without error.
  3909  //
  3910  // See ListAppliedSchemaArns for more information on using the ListAppliedSchemaArns
  3911  // API call, and error handling.
  3912  //
  3913  // This method is useful when you want to inject custom logic or configuration
  3914  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3915  //
  3916  //
  3917  //    // Example sending a request using the ListAppliedSchemaArnsRequest method.
  3918  //    req, resp := client.ListAppliedSchemaArnsRequest(params)
  3919  //
  3920  //    err := req.Send()
  3921  //    if err == nil { // resp is now filled
  3922  //        fmt.Println(resp)
  3923  //    }
  3924  //
  3925  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
  3926  func (c *CloudDirectory) ListAppliedSchemaArnsRequest(input *ListAppliedSchemaArnsInput) (req *request.Request, output *ListAppliedSchemaArnsOutput) {
  3927  	op := &request.Operation{
  3928  		Name:       opListAppliedSchemaArns,
  3929  		HTTPMethod: "POST",
  3930  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/applied",
  3931  		Paginator: &request.Paginator{
  3932  			InputTokens:     []string{"NextToken"},
  3933  			OutputTokens:    []string{"NextToken"},
  3934  			LimitToken:      "MaxResults",
  3935  			TruncationToken: "",
  3936  		},
  3937  	}
  3938  
  3939  	if input == nil {
  3940  		input = &ListAppliedSchemaArnsInput{}
  3941  	}
  3942  
  3943  	output = &ListAppliedSchemaArnsOutput{}
  3944  	req = c.newRequest(op, input, output)
  3945  	return
  3946  }
  3947  
  3948  // ListAppliedSchemaArns API operation for Amazon CloudDirectory.
  3949  //
  3950  // Lists schema major versions applied to a directory. If SchemaArn is provided,
  3951  // lists the minor version.
  3952  //
  3953  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3954  // with awserr.Error's Code and Message methods to get detailed information about
  3955  // the error.
  3956  //
  3957  // See the AWS API reference guide for Amazon CloudDirectory's
  3958  // API operation ListAppliedSchemaArns for usage and error information.
  3959  //
  3960  // Returned Error Types:
  3961  //   * InternalServiceException
  3962  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  3963  //   be a transient error in which case you can retry your request until it succeeds.
  3964  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  3965  //   site to see if there are any operational issues with the service.
  3966  //
  3967  //   * InvalidArnException
  3968  //   Indicates that the provided ARN value is not valid.
  3969  //
  3970  //   * RetryableConflictException
  3971  //   Occurs when a conflict with a previous successful write is detected. For
  3972  //   example, if a write operation occurs on an object and then an attempt is
  3973  //   made to read the object using “SERIALIZABLE” consistency, this exception
  3974  //   may result. This generally occurs when the previous write did not have time
  3975  //   to propagate to the host serving the current request. A retry (with appropriate
  3976  //   backoff logic) is the recommended response to this exception.
  3977  //
  3978  //   * ValidationException
  3979  //   Indicates that your request is malformed in some manner. See the exception
  3980  //   message.
  3981  //
  3982  //   * LimitExceededException
  3983  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  3984  //   for more information.
  3985  //
  3986  //   * AccessDeniedException
  3987  //   Access denied or directory not found. Either you don't have permissions for
  3988  //   this directory or the directory does not exist. Try calling ListDirectories
  3989  //   and check your permissions.
  3990  //
  3991  //   * ResourceNotFoundException
  3992  //   The specified resource could not be found.
  3993  //
  3994  //   * InvalidNextTokenException
  3995  //   Indicates that the NextToken value is not valid.
  3996  //
  3997  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
  3998  func (c *CloudDirectory) ListAppliedSchemaArns(input *ListAppliedSchemaArnsInput) (*ListAppliedSchemaArnsOutput, error) {
  3999  	req, out := c.ListAppliedSchemaArnsRequest(input)
  4000  	return out, req.Send()
  4001  }
  4002  
  4003  // ListAppliedSchemaArnsWithContext is the same as ListAppliedSchemaArns with the addition of
  4004  // the ability to pass a context and additional request options.
  4005  //
  4006  // See ListAppliedSchemaArns for details on how to use this API operation.
  4007  //
  4008  // The context must be non-nil and will be used for request cancellation. If
  4009  // the context is nil a panic will occur. In the future the SDK may create
  4010  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4011  // for more information on using Contexts.
  4012  func (c *CloudDirectory) ListAppliedSchemaArnsWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, opts ...request.Option) (*ListAppliedSchemaArnsOutput, error) {
  4013  	req, out := c.ListAppliedSchemaArnsRequest(input)
  4014  	req.SetContext(ctx)
  4015  	req.ApplyOptions(opts...)
  4016  	return out, req.Send()
  4017  }
  4018  
  4019  // ListAppliedSchemaArnsPages iterates over the pages of a ListAppliedSchemaArns operation,
  4020  // calling the "fn" function with the response data for each page. To stop
  4021  // iterating, return false from the fn function.
  4022  //
  4023  // See ListAppliedSchemaArns method for more information on how to use this operation.
  4024  //
  4025  // Note: This operation can generate multiple requests to a service.
  4026  //
  4027  //    // Example iterating over at most 3 pages of a ListAppliedSchemaArns operation.
  4028  //    pageNum := 0
  4029  //    err := client.ListAppliedSchemaArnsPages(params,
  4030  //        func(page *clouddirectory.ListAppliedSchemaArnsOutput, lastPage bool) bool {
  4031  //            pageNum++
  4032  //            fmt.Println(page)
  4033  //            return pageNum <= 3
  4034  //        })
  4035  //
  4036  func (c *CloudDirectory) ListAppliedSchemaArnsPages(input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool) error {
  4037  	return c.ListAppliedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
  4038  }
  4039  
  4040  // ListAppliedSchemaArnsPagesWithContext same as ListAppliedSchemaArnsPages except
  4041  // it takes a Context and allows setting request options on the pages.
  4042  //
  4043  // The context must be non-nil and will be used for request cancellation. If
  4044  // the context is nil a panic will occur. In the future the SDK may create
  4045  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4046  // for more information on using Contexts.
  4047  func (c *CloudDirectory) ListAppliedSchemaArnsPagesWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
  4048  	p := request.Pagination{
  4049  		NewRequest: func() (*request.Request, error) {
  4050  			var inCpy *ListAppliedSchemaArnsInput
  4051  			if input != nil {
  4052  				tmp := *input
  4053  				inCpy = &tmp
  4054  			}
  4055  			req, _ := c.ListAppliedSchemaArnsRequest(inCpy)
  4056  			req.SetContext(ctx)
  4057  			req.ApplyOptions(opts...)
  4058  			return req, nil
  4059  		},
  4060  	}
  4061  
  4062  	for p.Next() {
  4063  		if !fn(p.Page().(*ListAppliedSchemaArnsOutput), !p.HasNextPage()) {
  4064  			break
  4065  		}
  4066  	}
  4067  
  4068  	return p.Err()
  4069  }
  4070  
  4071  const opListAttachedIndices = "ListAttachedIndices"
  4072  
  4073  // ListAttachedIndicesRequest generates a "aws/request.Request" representing the
  4074  // client's request for the ListAttachedIndices operation. The "output" return
  4075  // value will be populated with the request's response once the request completes
  4076  // successfully.
  4077  //
  4078  // Use "Send" method on the returned Request to send the API call to the service.
  4079  // the "output" return value is not valid until after Send returns without error.
  4080  //
  4081  // See ListAttachedIndices for more information on using the ListAttachedIndices
  4082  // API call, and error handling.
  4083  //
  4084  // This method is useful when you want to inject custom logic or configuration
  4085  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4086  //
  4087  //
  4088  //    // Example sending a request using the ListAttachedIndicesRequest method.
  4089  //    req, resp := client.ListAttachedIndicesRequest(params)
  4090  //
  4091  //    err := req.Send()
  4092  //    if err == nil { // resp is now filled
  4093  //        fmt.Println(resp)
  4094  //    }
  4095  //
  4096  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
  4097  func (c *CloudDirectory) ListAttachedIndicesRequest(input *ListAttachedIndicesInput) (req *request.Request, output *ListAttachedIndicesOutput) {
  4098  	op := &request.Operation{
  4099  		Name:       opListAttachedIndices,
  4100  		HTTPMethod: "POST",
  4101  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/indices",
  4102  		Paginator: &request.Paginator{
  4103  			InputTokens:     []string{"NextToken"},
  4104  			OutputTokens:    []string{"NextToken"},
  4105  			LimitToken:      "MaxResults",
  4106  			TruncationToken: "",
  4107  		},
  4108  	}
  4109  
  4110  	if input == nil {
  4111  		input = &ListAttachedIndicesInput{}
  4112  	}
  4113  
  4114  	output = &ListAttachedIndicesOutput{}
  4115  	req = c.newRequest(op, input, output)
  4116  	return
  4117  }
  4118  
  4119  // ListAttachedIndices API operation for Amazon CloudDirectory.
  4120  //
  4121  // Lists indices attached to the specified object.
  4122  //
  4123  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4124  // with awserr.Error's Code and Message methods to get detailed information about
  4125  // the error.
  4126  //
  4127  // See the AWS API reference guide for Amazon CloudDirectory's
  4128  // API operation ListAttachedIndices for usage and error information.
  4129  //
  4130  // Returned Error Types:
  4131  //   * InternalServiceException
  4132  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4133  //   be a transient error in which case you can retry your request until it succeeds.
  4134  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4135  //   site to see if there are any operational issues with the service.
  4136  //
  4137  //   * InvalidArnException
  4138  //   Indicates that the provided ARN value is not valid.
  4139  //
  4140  //   * RetryableConflictException
  4141  //   Occurs when a conflict with a previous successful write is detected. For
  4142  //   example, if a write operation occurs on an object and then an attempt is
  4143  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4144  //   may result. This generally occurs when the previous write did not have time
  4145  //   to propagate to the host serving the current request. A retry (with appropriate
  4146  //   backoff logic) is the recommended response to this exception.
  4147  //
  4148  //   * ValidationException
  4149  //   Indicates that your request is malformed in some manner. See the exception
  4150  //   message.
  4151  //
  4152  //   * LimitExceededException
  4153  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  4154  //   for more information.
  4155  //
  4156  //   * AccessDeniedException
  4157  //   Access denied or directory not found. Either you don't have permissions for
  4158  //   this directory or the directory does not exist. Try calling ListDirectories
  4159  //   and check your permissions.
  4160  //
  4161  //   * DirectoryNotEnabledException
  4162  //   Operations are only permitted on enabled directories.
  4163  //
  4164  //   * ResourceNotFoundException
  4165  //   The specified resource could not be found.
  4166  //
  4167  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
  4168  func (c *CloudDirectory) ListAttachedIndices(input *ListAttachedIndicesInput) (*ListAttachedIndicesOutput, error) {
  4169  	req, out := c.ListAttachedIndicesRequest(input)
  4170  	return out, req.Send()
  4171  }
  4172  
  4173  // ListAttachedIndicesWithContext is the same as ListAttachedIndices with the addition of
  4174  // the ability to pass a context and additional request options.
  4175  //
  4176  // See ListAttachedIndices for details on how to use this API operation.
  4177  //
  4178  // The context must be non-nil and will be used for request cancellation. If
  4179  // the context is nil a panic will occur. In the future the SDK may create
  4180  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4181  // for more information on using Contexts.
  4182  func (c *CloudDirectory) ListAttachedIndicesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, opts ...request.Option) (*ListAttachedIndicesOutput, error) {
  4183  	req, out := c.ListAttachedIndicesRequest(input)
  4184  	req.SetContext(ctx)
  4185  	req.ApplyOptions(opts...)
  4186  	return out, req.Send()
  4187  }
  4188  
  4189  // ListAttachedIndicesPages iterates over the pages of a ListAttachedIndices operation,
  4190  // calling the "fn" function with the response data for each page. To stop
  4191  // iterating, return false from the fn function.
  4192  //
  4193  // See ListAttachedIndices method for more information on how to use this operation.
  4194  //
  4195  // Note: This operation can generate multiple requests to a service.
  4196  //
  4197  //    // Example iterating over at most 3 pages of a ListAttachedIndices operation.
  4198  //    pageNum := 0
  4199  //    err := client.ListAttachedIndicesPages(params,
  4200  //        func(page *clouddirectory.ListAttachedIndicesOutput, lastPage bool) bool {
  4201  //            pageNum++
  4202  //            fmt.Println(page)
  4203  //            return pageNum <= 3
  4204  //        })
  4205  //
  4206  func (c *CloudDirectory) ListAttachedIndicesPages(input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool) error {
  4207  	return c.ListAttachedIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
  4208  }
  4209  
  4210  // ListAttachedIndicesPagesWithContext same as ListAttachedIndicesPages except
  4211  // it takes a Context and allows setting request options on the pages.
  4212  //
  4213  // The context must be non-nil and will be used for request cancellation. If
  4214  // the context is nil a panic will occur. In the future the SDK may create
  4215  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4216  // for more information on using Contexts.
  4217  func (c *CloudDirectory) ListAttachedIndicesPagesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool, opts ...request.Option) error {
  4218  	p := request.Pagination{
  4219  		NewRequest: func() (*request.Request, error) {
  4220  			var inCpy *ListAttachedIndicesInput
  4221  			if input != nil {
  4222  				tmp := *input
  4223  				inCpy = &tmp
  4224  			}
  4225  			req, _ := c.ListAttachedIndicesRequest(inCpy)
  4226  			req.SetContext(ctx)
  4227  			req.ApplyOptions(opts...)
  4228  			return req, nil
  4229  		},
  4230  	}
  4231  
  4232  	for p.Next() {
  4233  		if !fn(p.Page().(*ListAttachedIndicesOutput), !p.HasNextPage()) {
  4234  			break
  4235  		}
  4236  	}
  4237  
  4238  	return p.Err()
  4239  }
  4240  
  4241  const opListDevelopmentSchemaArns = "ListDevelopmentSchemaArns"
  4242  
  4243  // ListDevelopmentSchemaArnsRequest generates a "aws/request.Request" representing the
  4244  // client's request for the ListDevelopmentSchemaArns operation. The "output" return
  4245  // value will be populated with the request's response once the request completes
  4246  // successfully.
  4247  //
  4248  // Use "Send" method on the returned Request to send the API call to the service.
  4249  // the "output" return value is not valid until after Send returns without error.
  4250  //
  4251  // See ListDevelopmentSchemaArns for more information on using the ListDevelopmentSchemaArns
  4252  // API call, and error handling.
  4253  //
  4254  // This method is useful when you want to inject custom logic or configuration
  4255  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4256  //
  4257  //
  4258  //    // Example sending a request using the ListDevelopmentSchemaArnsRequest method.
  4259  //    req, resp := client.ListDevelopmentSchemaArnsRequest(params)
  4260  //
  4261  //    err := req.Send()
  4262  //    if err == nil { // resp is now filled
  4263  //        fmt.Println(resp)
  4264  //    }
  4265  //
  4266  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
  4267  func (c *CloudDirectory) ListDevelopmentSchemaArnsRequest(input *ListDevelopmentSchemaArnsInput) (req *request.Request, output *ListDevelopmentSchemaArnsOutput) {
  4268  	op := &request.Operation{
  4269  		Name:       opListDevelopmentSchemaArns,
  4270  		HTTPMethod: "POST",
  4271  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/development",
  4272  		Paginator: &request.Paginator{
  4273  			InputTokens:     []string{"NextToken"},
  4274  			OutputTokens:    []string{"NextToken"},
  4275  			LimitToken:      "MaxResults",
  4276  			TruncationToken: "",
  4277  		},
  4278  	}
  4279  
  4280  	if input == nil {
  4281  		input = &ListDevelopmentSchemaArnsInput{}
  4282  	}
  4283  
  4284  	output = &ListDevelopmentSchemaArnsOutput{}
  4285  	req = c.newRequest(op, input, output)
  4286  	return
  4287  }
  4288  
  4289  // ListDevelopmentSchemaArns API operation for Amazon CloudDirectory.
  4290  //
  4291  // Retrieves each Amazon Resource Name (ARN) of schemas in the development state.
  4292  //
  4293  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4294  // with awserr.Error's Code and Message methods to get detailed information about
  4295  // the error.
  4296  //
  4297  // See the AWS API reference guide for Amazon CloudDirectory's
  4298  // API operation ListDevelopmentSchemaArns for usage and error information.
  4299  //
  4300  // Returned Error Types:
  4301  //   * InternalServiceException
  4302  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4303  //   be a transient error in which case you can retry your request until it succeeds.
  4304  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4305  //   site to see if there are any operational issues with the service.
  4306  //
  4307  //   * InvalidArnException
  4308  //   Indicates that the provided ARN value is not valid.
  4309  //
  4310  //   * RetryableConflictException
  4311  //   Occurs when a conflict with a previous successful write is detected. For
  4312  //   example, if a write operation occurs on an object and then an attempt is
  4313  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4314  //   may result. This generally occurs when the previous write did not have time
  4315  //   to propagate to the host serving the current request. A retry (with appropriate
  4316  //   backoff logic) is the recommended response to this exception.
  4317  //
  4318  //   * ValidationException
  4319  //   Indicates that your request is malformed in some manner. See the exception
  4320  //   message.
  4321  //
  4322  //   * LimitExceededException
  4323  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  4324  //   for more information.
  4325  //
  4326  //   * AccessDeniedException
  4327  //   Access denied or directory not found. Either you don't have permissions for
  4328  //   this directory or the directory does not exist. Try calling ListDirectories
  4329  //   and check your permissions.
  4330  //
  4331  //   * ResourceNotFoundException
  4332  //   The specified resource could not be found.
  4333  //
  4334  //   * InvalidNextTokenException
  4335  //   Indicates that the NextToken value is not valid.
  4336  //
  4337  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
  4338  func (c *CloudDirectory) ListDevelopmentSchemaArns(input *ListDevelopmentSchemaArnsInput) (*ListDevelopmentSchemaArnsOutput, error) {
  4339  	req, out := c.ListDevelopmentSchemaArnsRequest(input)
  4340  	return out, req.Send()
  4341  }
  4342  
  4343  // ListDevelopmentSchemaArnsWithContext is the same as ListDevelopmentSchemaArns with the addition of
  4344  // the ability to pass a context and additional request options.
  4345  //
  4346  // See ListDevelopmentSchemaArns for details on how to use this API operation.
  4347  //
  4348  // The context must be non-nil and will be used for request cancellation. If
  4349  // the context is nil a panic will occur. In the future the SDK may create
  4350  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4351  // for more information on using Contexts.
  4352  func (c *CloudDirectory) ListDevelopmentSchemaArnsWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, opts ...request.Option) (*ListDevelopmentSchemaArnsOutput, error) {
  4353  	req, out := c.ListDevelopmentSchemaArnsRequest(input)
  4354  	req.SetContext(ctx)
  4355  	req.ApplyOptions(opts...)
  4356  	return out, req.Send()
  4357  }
  4358  
  4359  // ListDevelopmentSchemaArnsPages iterates over the pages of a ListDevelopmentSchemaArns operation,
  4360  // calling the "fn" function with the response data for each page. To stop
  4361  // iterating, return false from the fn function.
  4362  //
  4363  // See ListDevelopmentSchemaArns method for more information on how to use this operation.
  4364  //
  4365  // Note: This operation can generate multiple requests to a service.
  4366  //
  4367  //    // Example iterating over at most 3 pages of a ListDevelopmentSchemaArns operation.
  4368  //    pageNum := 0
  4369  //    err := client.ListDevelopmentSchemaArnsPages(params,
  4370  //        func(page *clouddirectory.ListDevelopmentSchemaArnsOutput, lastPage bool) bool {
  4371  //            pageNum++
  4372  //            fmt.Println(page)
  4373  //            return pageNum <= 3
  4374  //        })
  4375  //
  4376  func (c *CloudDirectory) ListDevelopmentSchemaArnsPages(input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool) error {
  4377  	return c.ListDevelopmentSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
  4378  }
  4379  
  4380  // ListDevelopmentSchemaArnsPagesWithContext same as ListDevelopmentSchemaArnsPages except
  4381  // it takes a Context and allows setting request options on the pages.
  4382  //
  4383  // The context must be non-nil and will be used for request cancellation. If
  4384  // the context is nil a panic will occur. In the future the SDK may create
  4385  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4386  // for more information on using Contexts.
  4387  func (c *CloudDirectory) ListDevelopmentSchemaArnsPagesWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool, opts ...request.Option) error {
  4388  	p := request.Pagination{
  4389  		NewRequest: func() (*request.Request, error) {
  4390  			var inCpy *ListDevelopmentSchemaArnsInput
  4391  			if input != nil {
  4392  				tmp := *input
  4393  				inCpy = &tmp
  4394  			}
  4395  			req, _ := c.ListDevelopmentSchemaArnsRequest(inCpy)
  4396  			req.SetContext(ctx)
  4397  			req.ApplyOptions(opts...)
  4398  			return req, nil
  4399  		},
  4400  	}
  4401  
  4402  	for p.Next() {
  4403  		if !fn(p.Page().(*ListDevelopmentSchemaArnsOutput), !p.HasNextPage()) {
  4404  			break
  4405  		}
  4406  	}
  4407  
  4408  	return p.Err()
  4409  }
  4410  
  4411  const opListDirectories = "ListDirectories"
  4412  
  4413  // ListDirectoriesRequest generates a "aws/request.Request" representing the
  4414  // client's request for the ListDirectories operation. The "output" return
  4415  // value will be populated with the request's response once the request completes
  4416  // successfully.
  4417  //
  4418  // Use "Send" method on the returned Request to send the API call to the service.
  4419  // the "output" return value is not valid until after Send returns without error.
  4420  //
  4421  // See ListDirectories for more information on using the ListDirectories
  4422  // API call, and error handling.
  4423  //
  4424  // This method is useful when you want to inject custom logic or configuration
  4425  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4426  //
  4427  //
  4428  //    // Example sending a request using the ListDirectoriesRequest method.
  4429  //    req, resp := client.ListDirectoriesRequest(params)
  4430  //
  4431  //    err := req.Send()
  4432  //    if err == nil { // resp is now filled
  4433  //        fmt.Println(resp)
  4434  //    }
  4435  //
  4436  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
  4437  func (c *CloudDirectory) ListDirectoriesRequest(input *ListDirectoriesInput) (req *request.Request, output *ListDirectoriesOutput) {
  4438  	op := &request.Operation{
  4439  		Name:       opListDirectories,
  4440  		HTTPMethod: "POST",
  4441  		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/list",
  4442  		Paginator: &request.Paginator{
  4443  			InputTokens:     []string{"NextToken"},
  4444  			OutputTokens:    []string{"NextToken"},
  4445  			LimitToken:      "MaxResults",
  4446  			TruncationToken: "",
  4447  		},
  4448  	}
  4449  
  4450  	if input == nil {
  4451  		input = &ListDirectoriesInput{}
  4452  	}
  4453  
  4454  	output = &ListDirectoriesOutput{}
  4455  	req = c.newRequest(op, input, output)
  4456  	return
  4457  }
  4458  
  4459  // ListDirectories API operation for Amazon CloudDirectory.
  4460  //
  4461  // Lists directories created within an account.
  4462  //
  4463  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4464  // with awserr.Error's Code and Message methods to get detailed information about
  4465  // the error.
  4466  //
  4467  // See the AWS API reference guide for Amazon CloudDirectory's
  4468  // API operation ListDirectories for usage and error information.
  4469  //
  4470  // Returned Error Types:
  4471  //   * InternalServiceException
  4472  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4473  //   be a transient error in which case you can retry your request until it succeeds.
  4474  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4475  //   site to see if there are any operational issues with the service.
  4476  //
  4477  //   * InvalidArnException
  4478  //   Indicates that the provided ARN value is not valid.
  4479  //
  4480  //   * RetryableConflictException
  4481  //   Occurs when a conflict with a previous successful write is detected. For
  4482  //   example, if a write operation occurs on an object and then an attempt is
  4483  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4484  //   may result. This generally occurs when the previous write did not have time
  4485  //   to propagate to the host serving the current request. A retry (with appropriate
  4486  //   backoff logic) is the recommended response to this exception.
  4487  //
  4488  //   * ValidationException
  4489  //   Indicates that your request is malformed in some manner. See the exception
  4490  //   message.
  4491  //
  4492  //   * LimitExceededException
  4493  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  4494  //   for more information.
  4495  //
  4496  //   * AccessDeniedException
  4497  //   Access denied or directory not found. Either you don't have permissions for
  4498  //   this directory or the directory does not exist. Try calling ListDirectories
  4499  //   and check your permissions.
  4500  //
  4501  //   * InvalidNextTokenException
  4502  //   Indicates that the NextToken value is not valid.
  4503  //
  4504  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
  4505  func (c *CloudDirectory) ListDirectories(input *ListDirectoriesInput) (*ListDirectoriesOutput, error) {
  4506  	req, out := c.ListDirectoriesRequest(input)
  4507  	return out, req.Send()
  4508  }
  4509  
  4510  // ListDirectoriesWithContext is the same as ListDirectories with the addition of
  4511  // the ability to pass a context and additional request options.
  4512  //
  4513  // See ListDirectories for details on how to use this API operation.
  4514  //
  4515  // The context must be non-nil and will be used for request cancellation. If
  4516  // the context is nil a panic will occur. In the future the SDK may create
  4517  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4518  // for more information on using Contexts.
  4519  func (c *CloudDirectory) ListDirectoriesWithContext(ctx aws.Context, input *ListDirectoriesInput, opts ...request.Option) (*ListDirectoriesOutput, error) {
  4520  	req, out := c.ListDirectoriesRequest(input)
  4521  	req.SetContext(ctx)
  4522  	req.ApplyOptions(opts...)
  4523  	return out, req.Send()
  4524  }
  4525  
  4526  // ListDirectoriesPages iterates over the pages of a ListDirectories operation,
  4527  // calling the "fn" function with the response data for each page. To stop
  4528  // iterating, return false from the fn function.
  4529  //
  4530  // See ListDirectories method for more information on how to use this operation.
  4531  //
  4532  // Note: This operation can generate multiple requests to a service.
  4533  //
  4534  //    // Example iterating over at most 3 pages of a ListDirectories operation.
  4535  //    pageNum := 0
  4536  //    err := client.ListDirectoriesPages(params,
  4537  //        func(page *clouddirectory.ListDirectoriesOutput, lastPage bool) bool {
  4538  //            pageNum++
  4539  //            fmt.Println(page)
  4540  //            return pageNum <= 3
  4541  //        })
  4542  //
  4543  func (c *CloudDirectory) ListDirectoriesPages(input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool) error {
  4544  	return c.ListDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
  4545  }
  4546  
  4547  // ListDirectoriesPagesWithContext same as ListDirectoriesPages except
  4548  // it takes a Context and allows setting request options on the pages.
  4549  //
  4550  // The context must be non-nil and will be used for request cancellation. If
  4551  // the context is nil a panic will occur. In the future the SDK may create
  4552  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4553  // for more information on using Contexts.
  4554  func (c *CloudDirectory) ListDirectoriesPagesWithContext(ctx aws.Context, input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool, opts ...request.Option) error {
  4555  	p := request.Pagination{
  4556  		NewRequest: func() (*request.Request, error) {
  4557  			var inCpy *ListDirectoriesInput
  4558  			if input != nil {
  4559  				tmp := *input
  4560  				inCpy = &tmp
  4561  			}
  4562  			req, _ := c.ListDirectoriesRequest(inCpy)
  4563  			req.SetContext(ctx)
  4564  			req.ApplyOptions(opts...)
  4565  			return req, nil
  4566  		},
  4567  	}
  4568  
  4569  	for p.Next() {
  4570  		if !fn(p.Page().(*ListDirectoriesOutput), !p.HasNextPage()) {
  4571  			break
  4572  		}
  4573  	}
  4574  
  4575  	return p.Err()
  4576  }
  4577  
  4578  const opListFacetAttributes = "ListFacetAttributes"
  4579  
  4580  // ListFacetAttributesRequest generates a "aws/request.Request" representing the
  4581  // client's request for the ListFacetAttributes operation. The "output" return
  4582  // value will be populated with the request's response once the request completes
  4583  // successfully.
  4584  //
  4585  // Use "Send" method on the returned Request to send the API call to the service.
  4586  // the "output" return value is not valid until after Send returns without error.
  4587  //
  4588  // See ListFacetAttributes for more information on using the ListFacetAttributes
  4589  // API call, and error handling.
  4590  //
  4591  // This method is useful when you want to inject custom logic or configuration
  4592  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4593  //
  4594  //
  4595  //    // Example sending a request using the ListFacetAttributesRequest method.
  4596  //    req, resp := client.ListFacetAttributesRequest(params)
  4597  //
  4598  //    err := req.Send()
  4599  //    if err == nil { // resp is now filled
  4600  //        fmt.Println(resp)
  4601  //    }
  4602  //
  4603  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
  4604  func (c *CloudDirectory) ListFacetAttributesRequest(input *ListFacetAttributesInput) (req *request.Request, output *ListFacetAttributesOutput) {
  4605  	op := &request.Operation{
  4606  		Name:       opListFacetAttributes,
  4607  		HTTPMethod: "POST",
  4608  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/attributes",
  4609  		Paginator: &request.Paginator{
  4610  			InputTokens:     []string{"NextToken"},
  4611  			OutputTokens:    []string{"NextToken"},
  4612  			LimitToken:      "MaxResults",
  4613  			TruncationToken: "",
  4614  		},
  4615  	}
  4616  
  4617  	if input == nil {
  4618  		input = &ListFacetAttributesInput{}
  4619  	}
  4620  
  4621  	output = &ListFacetAttributesOutput{}
  4622  	req = c.newRequest(op, input, output)
  4623  	return
  4624  }
  4625  
  4626  // ListFacetAttributes API operation for Amazon CloudDirectory.
  4627  //
  4628  // Retrieves attributes attached to the facet.
  4629  //
  4630  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4631  // with awserr.Error's Code and Message methods to get detailed information about
  4632  // the error.
  4633  //
  4634  // See the AWS API reference guide for Amazon CloudDirectory's
  4635  // API operation ListFacetAttributes for usage and error information.
  4636  //
  4637  // Returned Error Types:
  4638  //   * InternalServiceException
  4639  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4640  //   be a transient error in which case you can retry your request until it succeeds.
  4641  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4642  //   site to see if there are any operational issues with the service.
  4643  //
  4644  //   * InvalidArnException
  4645  //   Indicates that the provided ARN value is not valid.
  4646  //
  4647  //   * RetryableConflictException
  4648  //   Occurs when a conflict with a previous successful write is detected. For
  4649  //   example, if a write operation occurs on an object and then an attempt is
  4650  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4651  //   may result. This generally occurs when the previous write did not have time
  4652  //   to propagate to the host serving the current request. A retry (with appropriate
  4653  //   backoff logic) is the recommended response to this exception.
  4654  //
  4655  //   * ValidationException
  4656  //   Indicates that your request is malformed in some manner. See the exception
  4657  //   message.
  4658  //
  4659  //   * LimitExceededException
  4660  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  4661  //   for more information.
  4662  //
  4663  //   * AccessDeniedException
  4664  //   Access denied or directory not found. Either you don't have permissions for
  4665  //   this directory or the directory does not exist. Try calling ListDirectories
  4666  //   and check your permissions.
  4667  //
  4668  //   * ResourceNotFoundException
  4669  //   The specified resource could not be found.
  4670  //
  4671  //   * FacetNotFoundException
  4672  //   The specified Facet could not be found.
  4673  //
  4674  //   * InvalidNextTokenException
  4675  //   Indicates that the NextToken value is not valid.
  4676  //
  4677  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
  4678  func (c *CloudDirectory) ListFacetAttributes(input *ListFacetAttributesInput) (*ListFacetAttributesOutput, error) {
  4679  	req, out := c.ListFacetAttributesRequest(input)
  4680  	return out, req.Send()
  4681  }
  4682  
  4683  // ListFacetAttributesWithContext is the same as ListFacetAttributes with the addition of
  4684  // the ability to pass a context and additional request options.
  4685  //
  4686  // See ListFacetAttributes for details on how to use this API operation.
  4687  //
  4688  // The context must be non-nil and will be used for request cancellation. If
  4689  // the context is nil a panic will occur. In the future the SDK may create
  4690  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4691  // for more information on using Contexts.
  4692  func (c *CloudDirectory) ListFacetAttributesWithContext(ctx aws.Context, input *ListFacetAttributesInput, opts ...request.Option) (*ListFacetAttributesOutput, error) {
  4693  	req, out := c.ListFacetAttributesRequest(input)
  4694  	req.SetContext(ctx)
  4695  	req.ApplyOptions(opts...)
  4696  	return out, req.Send()
  4697  }
  4698  
  4699  // ListFacetAttributesPages iterates over the pages of a ListFacetAttributes operation,
  4700  // calling the "fn" function with the response data for each page. To stop
  4701  // iterating, return false from the fn function.
  4702  //
  4703  // See ListFacetAttributes method for more information on how to use this operation.
  4704  //
  4705  // Note: This operation can generate multiple requests to a service.
  4706  //
  4707  //    // Example iterating over at most 3 pages of a ListFacetAttributes operation.
  4708  //    pageNum := 0
  4709  //    err := client.ListFacetAttributesPages(params,
  4710  //        func(page *clouddirectory.ListFacetAttributesOutput, lastPage bool) bool {
  4711  //            pageNum++
  4712  //            fmt.Println(page)
  4713  //            return pageNum <= 3
  4714  //        })
  4715  //
  4716  func (c *CloudDirectory) ListFacetAttributesPages(input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool) error {
  4717  	return c.ListFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
  4718  }
  4719  
  4720  // ListFacetAttributesPagesWithContext same as ListFacetAttributesPages except
  4721  // it takes a Context and allows setting request options on the pages.
  4722  //
  4723  // The context must be non-nil and will be used for request cancellation. If
  4724  // the context is nil a panic will occur. In the future the SDK may create
  4725  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4726  // for more information on using Contexts.
  4727  func (c *CloudDirectory) ListFacetAttributesPagesWithContext(ctx aws.Context, input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool, opts ...request.Option) error {
  4728  	p := request.Pagination{
  4729  		NewRequest: func() (*request.Request, error) {
  4730  			var inCpy *ListFacetAttributesInput
  4731  			if input != nil {
  4732  				tmp := *input
  4733  				inCpy = &tmp
  4734  			}
  4735  			req, _ := c.ListFacetAttributesRequest(inCpy)
  4736  			req.SetContext(ctx)
  4737  			req.ApplyOptions(opts...)
  4738  			return req, nil
  4739  		},
  4740  	}
  4741  
  4742  	for p.Next() {
  4743  		if !fn(p.Page().(*ListFacetAttributesOutput), !p.HasNextPage()) {
  4744  			break
  4745  		}
  4746  	}
  4747  
  4748  	return p.Err()
  4749  }
  4750  
  4751  const opListFacetNames = "ListFacetNames"
  4752  
  4753  // ListFacetNamesRequest generates a "aws/request.Request" representing the
  4754  // client's request for the ListFacetNames operation. The "output" return
  4755  // value will be populated with the request's response once the request completes
  4756  // successfully.
  4757  //
  4758  // Use "Send" method on the returned Request to send the API call to the service.
  4759  // the "output" return value is not valid until after Send returns without error.
  4760  //
  4761  // See ListFacetNames for more information on using the ListFacetNames
  4762  // API call, and error handling.
  4763  //
  4764  // This method is useful when you want to inject custom logic or configuration
  4765  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4766  //
  4767  //
  4768  //    // Example sending a request using the ListFacetNamesRequest method.
  4769  //    req, resp := client.ListFacetNamesRequest(params)
  4770  //
  4771  //    err := req.Send()
  4772  //    if err == nil { // resp is now filled
  4773  //        fmt.Println(resp)
  4774  //    }
  4775  //
  4776  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
  4777  func (c *CloudDirectory) ListFacetNamesRequest(input *ListFacetNamesInput) (req *request.Request, output *ListFacetNamesOutput) {
  4778  	op := &request.Operation{
  4779  		Name:       opListFacetNames,
  4780  		HTTPMethod: "POST",
  4781  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/list",
  4782  		Paginator: &request.Paginator{
  4783  			InputTokens:     []string{"NextToken"},
  4784  			OutputTokens:    []string{"NextToken"},
  4785  			LimitToken:      "MaxResults",
  4786  			TruncationToken: "",
  4787  		},
  4788  	}
  4789  
  4790  	if input == nil {
  4791  		input = &ListFacetNamesInput{}
  4792  	}
  4793  
  4794  	output = &ListFacetNamesOutput{}
  4795  	req = c.newRequest(op, input, output)
  4796  	return
  4797  }
  4798  
  4799  // ListFacetNames API operation for Amazon CloudDirectory.
  4800  //
  4801  // Retrieves the names of facets that exist in a schema.
  4802  //
  4803  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4804  // with awserr.Error's Code and Message methods to get detailed information about
  4805  // the error.
  4806  //
  4807  // See the AWS API reference guide for Amazon CloudDirectory's
  4808  // API operation ListFacetNames for usage and error information.
  4809  //
  4810  // Returned Error Types:
  4811  //   * InternalServiceException
  4812  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4813  //   be a transient error in which case you can retry your request until it succeeds.
  4814  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4815  //   site to see if there are any operational issues with the service.
  4816  //
  4817  //   * InvalidArnException
  4818  //   Indicates that the provided ARN value is not valid.
  4819  //
  4820  //   * RetryableConflictException
  4821  //   Occurs when a conflict with a previous successful write is detected. For
  4822  //   example, if a write operation occurs on an object and then an attempt is
  4823  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4824  //   may result. This generally occurs when the previous write did not have time
  4825  //   to propagate to the host serving the current request. A retry (with appropriate
  4826  //   backoff logic) is the recommended response to this exception.
  4827  //
  4828  //   * ValidationException
  4829  //   Indicates that your request is malformed in some manner. See the exception
  4830  //   message.
  4831  //
  4832  //   * LimitExceededException
  4833  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  4834  //   for more information.
  4835  //
  4836  //   * AccessDeniedException
  4837  //   Access denied or directory not found. Either you don't have permissions for
  4838  //   this directory or the directory does not exist. Try calling ListDirectories
  4839  //   and check your permissions.
  4840  //
  4841  //   * ResourceNotFoundException
  4842  //   The specified resource could not be found.
  4843  //
  4844  //   * InvalidNextTokenException
  4845  //   Indicates that the NextToken value is not valid.
  4846  //
  4847  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
  4848  func (c *CloudDirectory) ListFacetNames(input *ListFacetNamesInput) (*ListFacetNamesOutput, error) {
  4849  	req, out := c.ListFacetNamesRequest(input)
  4850  	return out, req.Send()
  4851  }
  4852  
  4853  // ListFacetNamesWithContext is the same as ListFacetNames with the addition of
  4854  // the ability to pass a context and additional request options.
  4855  //
  4856  // See ListFacetNames for details on how to use this API operation.
  4857  //
  4858  // The context must be non-nil and will be used for request cancellation. If
  4859  // the context is nil a panic will occur. In the future the SDK may create
  4860  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4861  // for more information on using Contexts.
  4862  func (c *CloudDirectory) ListFacetNamesWithContext(ctx aws.Context, input *ListFacetNamesInput, opts ...request.Option) (*ListFacetNamesOutput, error) {
  4863  	req, out := c.ListFacetNamesRequest(input)
  4864  	req.SetContext(ctx)
  4865  	req.ApplyOptions(opts...)
  4866  	return out, req.Send()
  4867  }
  4868  
  4869  // ListFacetNamesPages iterates over the pages of a ListFacetNames operation,
  4870  // calling the "fn" function with the response data for each page. To stop
  4871  // iterating, return false from the fn function.
  4872  //
  4873  // See ListFacetNames method for more information on how to use this operation.
  4874  //
  4875  // Note: This operation can generate multiple requests to a service.
  4876  //
  4877  //    // Example iterating over at most 3 pages of a ListFacetNames operation.
  4878  //    pageNum := 0
  4879  //    err := client.ListFacetNamesPages(params,
  4880  //        func(page *clouddirectory.ListFacetNamesOutput, lastPage bool) bool {
  4881  //            pageNum++
  4882  //            fmt.Println(page)
  4883  //            return pageNum <= 3
  4884  //        })
  4885  //
  4886  func (c *CloudDirectory) ListFacetNamesPages(input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool) error {
  4887  	return c.ListFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
  4888  }
  4889  
  4890  // ListFacetNamesPagesWithContext same as ListFacetNamesPages except
  4891  // it takes a Context and allows setting request options on the pages.
  4892  //
  4893  // The context must be non-nil and will be used for request cancellation. If
  4894  // the context is nil a panic will occur. In the future the SDK may create
  4895  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4896  // for more information on using Contexts.
  4897  func (c *CloudDirectory) ListFacetNamesPagesWithContext(ctx aws.Context, input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool, opts ...request.Option) error {
  4898  	p := request.Pagination{
  4899  		NewRequest: func() (*request.Request, error) {
  4900  			var inCpy *ListFacetNamesInput
  4901  			if input != nil {
  4902  				tmp := *input
  4903  				inCpy = &tmp
  4904  			}
  4905  			req, _ := c.ListFacetNamesRequest(inCpy)
  4906  			req.SetContext(ctx)
  4907  			req.ApplyOptions(opts...)
  4908  			return req, nil
  4909  		},
  4910  	}
  4911  
  4912  	for p.Next() {
  4913  		if !fn(p.Page().(*ListFacetNamesOutput), !p.HasNextPage()) {
  4914  			break
  4915  		}
  4916  	}
  4917  
  4918  	return p.Err()
  4919  }
  4920  
  4921  const opListIncomingTypedLinks = "ListIncomingTypedLinks"
  4922  
  4923  // ListIncomingTypedLinksRequest generates a "aws/request.Request" representing the
  4924  // client's request for the ListIncomingTypedLinks operation. The "output" return
  4925  // value will be populated with the request's response once the request completes
  4926  // successfully.
  4927  //
  4928  // Use "Send" method on the returned Request to send the API call to the service.
  4929  // the "output" return value is not valid until after Send returns without error.
  4930  //
  4931  // See ListIncomingTypedLinks for more information on using the ListIncomingTypedLinks
  4932  // API call, and error handling.
  4933  //
  4934  // This method is useful when you want to inject custom logic or configuration
  4935  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4936  //
  4937  //
  4938  //    // Example sending a request using the ListIncomingTypedLinksRequest method.
  4939  //    req, resp := client.ListIncomingTypedLinksRequest(params)
  4940  //
  4941  //    err := req.Send()
  4942  //    if err == nil { // resp is now filled
  4943  //        fmt.Println(resp)
  4944  //    }
  4945  //
  4946  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
  4947  func (c *CloudDirectory) ListIncomingTypedLinksRequest(input *ListIncomingTypedLinksInput) (req *request.Request, output *ListIncomingTypedLinksOutput) {
  4948  	op := &request.Operation{
  4949  		Name:       opListIncomingTypedLinks,
  4950  		HTTPMethod: "POST",
  4951  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/incoming",
  4952  	}
  4953  
  4954  	if input == nil {
  4955  		input = &ListIncomingTypedLinksInput{}
  4956  	}
  4957  
  4958  	output = &ListIncomingTypedLinksOutput{}
  4959  	req = c.newRequest(op, input, output)
  4960  	return
  4961  }
  4962  
  4963  // ListIncomingTypedLinks API operation for Amazon CloudDirectory.
  4964  //
  4965  // Returns a paginated list of all the incoming TypedLinkSpecifier information
  4966  // for an object. It also supports filtering by typed link facet and identity
  4967  // attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  4968  //
  4969  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4970  // with awserr.Error's Code and Message methods to get detailed information about
  4971  // the error.
  4972  //
  4973  // See the AWS API reference guide for Amazon CloudDirectory's
  4974  // API operation ListIncomingTypedLinks for usage and error information.
  4975  //
  4976  // Returned Error Types:
  4977  //   * InternalServiceException
  4978  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  4979  //   be a transient error in which case you can retry your request until it succeeds.
  4980  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  4981  //   site to see if there are any operational issues with the service.
  4982  //
  4983  //   * InvalidArnException
  4984  //   Indicates that the provided ARN value is not valid.
  4985  //
  4986  //   * RetryableConflictException
  4987  //   Occurs when a conflict with a previous successful write is detected. For
  4988  //   example, if a write operation occurs on an object and then an attempt is
  4989  //   made to read the object using “SERIALIZABLE” consistency, this exception
  4990  //   may result. This generally occurs when the previous write did not have time
  4991  //   to propagate to the host serving the current request. A retry (with appropriate
  4992  //   backoff logic) is the recommended response to this exception.
  4993  //
  4994  //   * ValidationException
  4995  //   Indicates that your request is malformed in some manner. See the exception
  4996  //   message.
  4997  //
  4998  //   * LimitExceededException
  4999  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  5000  //   for more information.
  5001  //
  5002  //   * AccessDeniedException
  5003  //   Access denied or directory not found. Either you don't have permissions for
  5004  //   this directory or the directory does not exist. Try calling ListDirectories
  5005  //   and check your permissions.
  5006  //
  5007  //   * DirectoryNotEnabledException
  5008  //   Operations are only permitted on enabled directories.
  5009  //
  5010  //   * ResourceNotFoundException
  5011  //   The specified resource could not be found.
  5012  //
  5013  //   * InvalidNextTokenException
  5014  //   Indicates that the NextToken value is not valid.
  5015  //
  5016  //   * FacetValidationException
  5017  //   The Facet that you provided was not well formed or could not be validated
  5018  //   with the schema.
  5019  //
  5020  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
  5021  func (c *CloudDirectory) ListIncomingTypedLinks(input *ListIncomingTypedLinksInput) (*ListIncomingTypedLinksOutput, error) {
  5022  	req, out := c.ListIncomingTypedLinksRequest(input)
  5023  	return out, req.Send()
  5024  }
  5025  
  5026  // ListIncomingTypedLinksWithContext is the same as ListIncomingTypedLinks with the addition of
  5027  // the ability to pass a context and additional request options.
  5028  //
  5029  // See ListIncomingTypedLinks for details on how to use this API operation.
  5030  //
  5031  // The context must be non-nil and will be used for request cancellation. If
  5032  // the context is nil a panic will occur. In the future the SDK may create
  5033  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5034  // for more information on using Contexts.
  5035  func (c *CloudDirectory) ListIncomingTypedLinksWithContext(ctx aws.Context, input *ListIncomingTypedLinksInput, opts ...request.Option) (*ListIncomingTypedLinksOutput, error) {
  5036  	req, out := c.ListIncomingTypedLinksRequest(input)
  5037  	req.SetContext(ctx)
  5038  	req.ApplyOptions(opts...)
  5039  	return out, req.Send()
  5040  }
  5041  
  5042  const opListIndex = "ListIndex"
  5043  
  5044  // ListIndexRequest generates a "aws/request.Request" representing the
  5045  // client's request for the ListIndex operation. The "output" return
  5046  // value will be populated with the request's response once the request completes
  5047  // successfully.
  5048  //
  5049  // Use "Send" method on the returned Request to send the API call to the service.
  5050  // the "output" return value is not valid until after Send returns without error.
  5051  //
  5052  // See ListIndex for more information on using the ListIndex
  5053  // API call, and error handling.
  5054  //
  5055  // This method is useful when you want to inject custom logic or configuration
  5056  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5057  //
  5058  //
  5059  //    // Example sending a request using the ListIndexRequest method.
  5060  //    req, resp := client.ListIndexRequest(params)
  5061  //
  5062  //    err := req.Send()
  5063  //    if err == nil { // resp is now filled
  5064  //        fmt.Println(resp)
  5065  //    }
  5066  //
  5067  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
  5068  func (c *CloudDirectory) ListIndexRequest(input *ListIndexInput) (req *request.Request, output *ListIndexOutput) {
  5069  	op := &request.Operation{
  5070  		Name:       opListIndex,
  5071  		HTTPMethod: "POST",
  5072  		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/targets",
  5073  		Paginator: &request.Paginator{
  5074  			InputTokens:     []string{"NextToken"},
  5075  			OutputTokens:    []string{"NextToken"},
  5076  			LimitToken:      "MaxResults",
  5077  			TruncationToken: "",
  5078  		},
  5079  	}
  5080  
  5081  	if input == nil {
  5082  		input = &ListIndexInput{}
  5083  	}
  5084  
  5085  	output = &ListIndexOutput{}
  5086  	req = c.newRequest(op, input, output)
  5087  	return
  5088  }
  5089  
  5090  // ListIndex API operation for Amazon CloudDirectory.
  5091  //
  5092  // Lists objects attached to the specified index.
  5093  //
  5094  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5095  // with awserr.Error's Code and Message methods to get detailed information about
  5096  // the error.
  5097  //
  5098  // See the AWS API reference guide for Amazon CloudDirectory's
  5099  // API operation ListIndex for usage and error information.
  5100  //
  5101  // Returned Error Types:
  5102  //   * InternalServiceException
  5103  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5104  //   be a transient error in which case you can retry your request until it succeeds.
  5105  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5106  //   site to see if there are any operational issues with the service.
  5107  //
  5108  //   * InvalidArnException
  5109  //   Indicates that the provided ARN value is not valid.
  5110  //
  5111  //   * RetryableConflictException
  5112  //   Occurs when a conflict with a previous successful write is detected. For
  5113  //   example, if a write operation occurs on an object and then an attempt is
  5114  //   made to read the object using “SERIALIZABLE” consistency, this exception
  5115  //   may result. This generally occurs when the previous write did not have time
  5116  //   to propagate to the host serving the current request. A retry (with appropriate
  5117  //   backoff logic) is the recommended response to this exception.
  5118  //
  5119  //   * FacetValidationException
  5120  //   The Facet that you provided was not well formed or could not be validated
  5121  //   with the schema.
  5122  //
  5123  //   * ValidationException
  5124  //   Indicates that your request is malformed in some manner. See the exception
  5125  //   message.
  5126  //
  5127  //   * LimitExceededException
  5128  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  5129  //   for more information.
  5130  //
  5131  //   * AccessDeniedException
  5132  //   Access denied or directory not found. Either you don't have permissions for
  5133  //   this directory or the directory does not exist. Try calling ListDirectories
  5134  //   and check your permissions.
  5135  //
  5136  //   * DirectoryNotEnabledException
  5137  //   Operations are only permitted on enabled directories.
  5138  //
  5139  //   * InvalidNextTokenException
  5140  //   Indicates that the NextToken value is not valid.
  5141  //
  5142  //   * ResourceNotFoundException
  5143  //   The specified resource could not be found.
  5144  //
  5145  //   * NotIndexException
  5146  //   Indicates that the requested operation can only operate on index objects.
  5147  //
  5148  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
  5149  func (c *CloudDirectory) ListIndex(input *ListIndexInput) (*ListIndexOutput, error) {
  5150  	req, out := c.ListIndexRequest(input)
  5151  	return out, req.Send()
  5152  }
  5153  
  5154  // ListIndexWithContext is the same as ListIndex with the addition of
  5155  // the ability to pass a context and additional request options.
  5156  //
  5157  // See ListIndex for details on how to use this API operation.
  5158  //
  5159  // The context must be non-nil and will be used for request cancellation. If
  5160  // the context is nil a panic will occur. In the future the SDK may create
  5161  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5162  // for more information on using Contexts.
  5163  func (c *CloudDirectory) ListIndexWithContext(ctx aws.Context, input *ListIndexInput, opts ...request.Option) (*ListIndexOutput, error) {
  5164  	req, out := c.ListIndexRequest(input)
  5165  	req.SetContext(ctx)
  5166  	req.ApplyOptions(opts...)
  5167  	return out, req.Send()
  5168  }
  5169  
  5170  // ListIndexPages iterates over the pages of a ListIndex operation,
  5171  // calling the "fn" function with the response data for each page. To stop
  5172  // iterating, return false from the fn function.
  5173  //
  5174  // See ListIndex method for more information on how to use this operation.
  5175  //
  5176  // Note: This operation can generate multiple requests to a service.
  5177  //
  5178  //    // Example iterating over at most 3 pages of a ListIndex operation.
  5179  //    pageNum := 0
  5180  //    err := client.ListIndexPages(params,
  5181  //        func(page *clouddirectory.ListIndexOutput, lastPage bool) bool {
  5182  //            pageNum++
  5183  //            fmt.Println(page)
  5184  //            return pageNum <= 3
  5185  //        })
  5186  //
  5187  func (c *CloudDirectory) ListIndexPages(input *ListIndexInput, fn func(*ListIndexOutput, bool) bool) error {
  5188  	return c.ListIndexPagesWithContext(aws.BackgroundContext(), input, fn)
  5189  }
  5190  
  5191  // ListIndexPagesWithContext same as ListIndexPages except
  5192  // it takes a Context and allows setting request options on the pages.
  5193  //
  5194  // The context must be non-nil and will be used for request cancellation. If
  5195  // the context is nil a panic will occur. In the future the SDK may create
  5196  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5197  // for more information on using Contexts.
  5198  func (c *CloudDirectory) ListIndexPagesWithContext(ctx aws.Context, input *ListIndexInput, fn func(*ListIndexOutput, bool) bool, opts ...request.Option) error {
  5199  	p := request.Pagination{
  5200  		NewRequest: func() (*request.Request, error) {
  5201  			var inCpy *ListIndexInput
  5202  			if input != nil {
  5203  				tmp := *input
  5204  				inCpy = &tmp
  5205  			}
  5206  			req, _ := c.ListIndexRequest(inCpy)
  5207  			req.SetContext(ctx)
  5208  			req.ApplyOptions(opts...)
  5209  			return req, nil
  5210  		},
  5211  	}
  5212  
  5213  	for p.Next() {
  5214  		if !fn(p.Page().(*ListIndexOutput), !p.HasNextPage()) {
  5215  			break
  5216  		}
  5217  	}
  5218  
  5219  	return p.Err()
  5220  }
  5221  
  5222  const opListManagedSchemaArns = "ListManagedSchemaArns"
  5223  
  5224  // ListManagedSchemaArnsRequest generates a "aws/request.Request" representing the
  5225  // client's request for the ListManagedSchemaArns operation. The "output" return
  5226  // value will be populated with the request's response once the request completes
  5227  // successfully.
  5228  //
  5229  // Use "Send" method on the returned Request to send the API call to the service.
  5230  // the "output" return value is not valid until after Send returns without error.
  5231  //
  5232  // See ListManagedSchemaArns for more information on using the ListManagedSchemaArns
  5233  // API call, and error handling.
  5234  //
  5235  // This method is useful when you want to inject custom logic or configuration
  5236  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5237  //
  5238  //
  5239  //    // Example sending a request using the ListManagedSchemaArnsRequest method.
  5240  //    req, resp := client.ListManagedSchemaArnsRequest(params)
  5241  //
  5242  //    err := req.Send()
  5243  //    if err == nil { // resp is now filled
  5244  //        fmt.Println(resp)
  5245  //    }
  5246  //
  5247  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
  5248  func (c *CloudDirectory) ListManagedSchemaArnsRequest(input *ListManagedSchemaArnsInput) (req *request.Request, output *ListManagedSchemaArnsOutput) {
  5249  	op := &request.Operation{
  5250  		Name:       opListManagedSchemaArns,
  5251  		HTTPMethod: "POST",
  5252  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/managed",
  5253  		Paginator: &request.Paginator{
  5254  			InputTokens:     []string{"NextToken"},
  5255  			OutputTokens:    []string{"NextToken"},
  5256  			LimitToken:      "MaxResults",
  5257  			TruncationToken: "",
  5258  		},
  5259  	}
  5260  
  5261  	if input == nil {
  5262  		input = &ListManagedSchemaArnsInput{}
  5263  	}
  5264  
  5265  	output = &ListManagedSchemaArnsOutput{}
  5266  	req = c.newRequest(op, input, output)
  5267  	return
  5268  }
  5269  
  5270  // ListManagedSchemaArns API operation for Amazon CloudDirectory.
  5271  //
  5272  // Lists the major version families of each managed schema. If a major version
  5273  // ARN is provided as SchemaArn, the minor version revisions in that family
  5274  // are listed instead.
  5275  //
  5276  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5277  // with awserr.Error's Code and Message methods to get detailed information about
  5278  // the error.
  5279  //
  5280  // See the AWS API reference guide for Amazon CloudDirectory's
  5281  // API operation ListManagedSchemaArns for usage and error information.
  5282  //
  5283  // Returned Error Types:
  5284  //   * InternalServiceException
  5285  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5286  //   be a transient error in which case you can retry your request until it succeeds.
  5287  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5288  //   site to see if there are any operational issues with the service.
  5289  //
  5290  //   * InvalidArnException
  5291  //   Indicates that the provided ARN value is not valid.
  5292  //
  5293  //   * ValidationException
  5294  //   Indicates that your request is malformed in some manner. See the exception
  5295  //   message.
  5296  //
  5297  //   * AccessDeniedException
  5298  //   Access denied or directory not found. Either you don't have permissions for
  5299  //   this directory or the directory does not exist. Try calling ListDirectories
  5300  //   and check your permissions.
  5301  //
  5302  //   * ResourceNotFoundException
  5303  //   The specified resource could not be found.
  5304  //
  5305  //   * InvalidNextTokenException
  5306  //   Indicates that the NextToken value is not valid.
  5307  //
  5308  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
  5309  func (c *CloudDirectory) ListManagedSchemaArns(input *ListManagedSchemaArnsInput) (*ListManagedSchemaArnsOutput, error) {
  5310  	req, out := c.ListManagedSchemaArnsRequest(input)
  5311  	return out, req.Send()
  5312  }
  5313  
  5314  // ListManagedSchemaArnsWithContext is the same as ListManagedSchemaArns with the addition of
  5315  // the ability to pass a context and additional request options.
  5316  //
  5317  // See ListManagedSchemaArns for details on how to use this API operation.
  5318  //
  5319  // The context must be non-nil and will be used for request cancellation. If
  5320  // the context is nil a panic will occur. In the future the SDK may create
  5321  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5322  // for more information on using Contexts.
  5323  func (c *CloudDirectory) ListManagedSchemaArnsWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, opts ...request.Option) (*ListManagedSchemaArnsOutput, error) {
  5324  	req, out := c.ListManagedSchemaArnsRequest(input)
  5325  	req.SetContext(ctx)
  5326  	req.ApplyOptions(opts...)
  5327  	return out, req.Send()
  5328  }
  5329  
  5330  // ListManagedSchemaArnsPages iterates over the pages of a ListManagedSchemaArns operation,
  5331  // calling the "fn" function with the response data for each page. To stop
  5332  // iterating, return false from the fn function.
  5333  //
  5334  // See ListManagedSchemaArns method for more information on how to use this operation.
  5335  //
  5336  // Note: This operation can generate multiple requests to a service.
  5337  //
  5338  //    // Example iterating over at most 3 pages of a ListManagedSchemaArns operation.
  5339  //    pageNum := 0
  5340  //    err := client.ListManagedSchemaArnsPages(params,
  5341  //        func(page *clouddirectory.ListManagedSchemaArnsOutput, lastPage bool) bool {
  5342  //            pageNum++
  5343  //            fmt.Println(page)
  5344  //            return pageNum <= 3
  5345  //        })
  5346  //
  5347  func (c *CloudDirectory) ListManagedSchemaArnsPages(input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool) error {
  5348  	return c.ListManagedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
  5349  }
  5350  
  5351  // ListManagedSchemaArnsPagesWithContext same as ListManagedSchemaArnsPages except
  5352  // it takes a Context and allows setting request options on the pages.
  5353  //
  5354  // The context must be non-nil and will be used for request cancellation. If
  5355  // the context is nil a panic will occur. In the future the SDK may create
  5356  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5357  // for more information on using Contexts.
  5358  func (c *CloudDirectory) ListManagedSchemaArnsPagesWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
  5359  	p := request.Pagination{
  5360  		NewRequest: func() (*request.Request, error) {
  5361  			var inCpy *ListManagedSchemaArnsInput
  5362  			if input != nil {
  5363  				tmp := *input
  5364  				inCpy = &tmp
  5365  			}
  5366  			req, _ := c.ListManagedSchemaArnsRequest(inCpy)
  5367  			req.SetContext(ctx)
  5368  			req.ApplyOptions(opts...)
  5369  			return req, nil
  5370  		},
  5371  	}
  5372  
  5373  	for p.Next() {
  5374  		if !fn(p.Page().(*ListManagedSchemaArnsOutput), !p.HasNextPage()) {
  5375  			break
  5376  		}
  5377  	}
  5378  
  5379  	return p.Err()
  5380  }
  5381  
  5382  const opListObjectAttributes = "ListObjectAttributes"
  5383  
  5384  // ListObjectAttributesRequest generates a "aws/request.Request" representing the
  5385  // client's request for the ListObjectAttributes operation. The "output" return
  5386  // value will be populated with the request's response once the request completes
  5387  // successfully.
  5388  //
  5389  // Use "Send" method on the returned Request to send the API call to the service.
  5390  // the "output" return value is not valid until after Send returns without error.
  5391  //
  5392  // See ListObjectAttributes for more information on using the ListObjectAttributes
  5393  // API call, and error handling.
  5394  //
  5395  // This method is useful when you want to inject custom logic or configuration
  5396  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5397  //
  5398  //
  5399  //    // Example sending a request using the ListObjectAttributesRequest method.
  5400  //    req, resp := client.ListObjectAttributesRequest(params)
  5401  //
  5402  //    err := req.Send()
  5403  //    if err == nil { // resp is now filled
  5404  //        fmt.Println(resp)
  5405  //    }
  5406  //
  5407  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
  5408  func (c *CloudDirectory) ListObjectAttributesRequest(input *ListObjectAttributesInput) (req *request.Request, output *ListObjectAttributesOutput) {
  5409  	op := &request.Operation{
  5410  		Name:       opListObjectAttributes,
  5411  		HTTPMethod: "POST",
  5412  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes",
  5413  		Paginator: &request.Paginator{
  5414  			InputTokens:     []string{"NextToken"},
  5415  			OutputTokens:    []string{"NextToken"},
  5416  			LimitToken:      "MaxResults",
  5417  			TruncationToken: "",
  5418  		},
  5419  	}
  5420  
  5421  	if input == nil {
  5422  		input = &ListObjectAttributesInput{}
  5423  	}
  5424  
  5425  	output = &ListObjectAttributesOutput{}
  5426  	req = c.newRequest(op, input, output)
  5427  	return
  5428  }
  5429  
  5430  // ListObjectAttributes API operation for Amazon CloudDirectory.
  5431  //
  5432  // Lists all attributes that are associated with an object.
  5433  //
  5434  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5435  // with awserr.Error's Code and Message methods to get detailed information about
  5436  // the error.
  5437  //
  5438  // See the AWS API reference guide for Amazon CloudDirectory's
  5439  // API operation ListObjectAttributes for usage and error information.
  5440  //
  5441  // Returned Error Types:
  5442  //   * InternalServiceException
  5443  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5444  //   be a transient error in which case you can retry your request until it succeeds.
  5445  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5446  //   site to see if there are any operational issues with the service.
  5447  //
  5448  //   * InvalidArnException
  5449  //   Indicates that the provided ARN value is not valid.
  5450  //
  5451  //   * RetryableConflictException
  5452  //   Occurs when a conflict with a previous successful write is detected. For
  5453  //   example, if a write operation occurs on an object and then an attempt is
  5454  //   made to read the object using “SERIALIZABLE” consistency, this exception
  5455  //   may result. This generally occurs when the previous write did not have time
  5456  //   to propagate to the host serving the current request. A retry (with appropriate
  5457  //   backoff logic) is the recommended response to this exception.
  5458  //
  5459  //   * ValidationException
  5460  //   Indicates that your request is malformed in some manner. See the exception
  5461  //   message.
  5462  //
  5463  //   * LimitExceededException
  5464  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  5465  //   for more information.
  5466  //
  5467  //   * AccessDeniedException
  5468  //   Access denied or directory not found. Either you don't have permissions for
  5469  //   this directory or the directory does not exist. Try calling ListDirectories
  5470  //   and check your permissions.
  5471  //
  5472  //   * DirectoryNotEnabledException
  5473  //   Operations are only permitted on enabled directories.
  5474  //
  5475  //   * ResourceNotFoundException
  5476  //   The specified resource could not be found.
  5477  //
  5478  //   * InvalidNextTokenException
  5479  //   Indicates that the NextToken value is not valid.
  5480  //
  5481  //   * FacetValidationException
  5482  //   The Facet that you provided was not well formed or could not be validated
  5483  //   with the schema.
  5484  //
  5485  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
  5486  func (c *CloudDirectory) ListObjectAttributes(input *ListObjectAttributesInput) (*ListObjectAttributesOutput, error) {
  5487  	req, out := c.ListObjectAttributesRequest(input)
  5488  	return out, req.Send()
  5489  }
  5490  
  5491  // ListObjectAttributesWithContext is the same as ListObjectAttributes with the addition of
  5492  // the ability to pass a context and additional request options.
  5493  //
  5494  // See ListObjectAttributes for details on how to use this API operation.
  5495  //
  5496  // The context must be non-nil and will be used for request cancellation. If
  5497  // the context is nil a panic will occur. In the future the SDK may create
  5498  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5499  // for more information on using Contexts.
  5500  func (c *CloudDirectory) ListObjectAttributesWithContext(ctx aws.Context, input *ListObjectAttributesInput, opts ...request.Option) (*ListObjectAttributesOutput, error) {
  5501  	req, out := c.ListObjectAttributesRequest(input)
  5502  	req.SetContext(ctx)
  5503  	req.ApplyOptions(opts...)
  5504  	return out, req.Send()
  5505  }
  5506  
  5507  // ListObjectAttributesPages iterates over the pages of a ListObjectAttributes operation,
  5508  // calling the "fn" function with the response data for each page. To stop
  5509  // iterating, return false from the fn function.
  5510  //
  5511  // See ListObjectAttributes method for more information on how to use this operation.
  5512  //
  5513  // Note: This operation can generate multiple requests to a service.
  5514  //
  5515  //    // Example iterating over at most 3 pages of a ListObjectAttributes operation.
  5516  //    pageNum := 0
  5517  //    err := client.ListObjectAttributesPages(params,
  5518  //        func(page *clouddirectory.ListObjectAttributesOutput, lastPage bool) bool {
  5519  //            pageNum++
  5520  //            fmt.Println(page)
  5521  //            return pageNum <= 3
  5522  //        })
  5523  //
  5524  func (c *CloudDirectory) ListObjectAttributesPages(input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool) error {
  5525  	return c.ListObjectAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
  5526  }
  5527  
  5528  // ListObjectAttributesPagesWithContext same as ListObjectAttributesPages except
  5529  // it takes a Context and allows setting request options on the pages.
  5530  //
  5531  // The context must be non-nil and will be used for request cancellation. If
  5532  // the context is nil a panic will occur. In the future the SDK may create
  5533  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5534  // for more information on using Contexts.
  5535  func (c *CloudDirectory) ListObjectAttributesPagesWithContext(ctx aws.Context, input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool, opts ...request.Option) error {
  5536  	p := request.Pagination{
  5537  		NewRequest: func() (*request.Request, error) {
  5538  			var inCpy *ListObjectAttributesInput
  5539  			if input != nil {
  5540  				tmp := *input
  5541  				inCpy = &tmp
  5542  			}
  5543  			req, _ := c.ListObjectAttributesRequest(inCpy)
  5544  			req.SetContext(ctx)
  5545  			req.ApplyOptions(opts...)
  5546  			return req, nil
  5547  		},
  5548  	}
  5549  
  5550  	for p.Next() {
  5551  		if !fn(p.Page().(*ListObjectAttributesOutput), !p.HasNextPage()) {
  5552  			break
  5553  		}
  5554  	}
  5555  
  5556  	return p.Err()
  5557  }
  5558  
  5559  const opListObjectChildren = "ListObjectChildren"
  5560  
  5561  // ListObjectChildrenRequest generates a "aws/request.Request" representing the
  5562  // client's request for the ListObjectChildren operation. The "output" return
  5563  // value will be populated with the request's response once the request completes
  5564  // successfully.
  5565  //
  5566  // Use "Send" method on the returned Request to send the API call to the service.
  5567  // the "output" return value is not valid until after Send returns without error.
  5568  //
  5569  // See ListObjectChildren for more information on using the ListObjectChildren
  5570  // API call, and error handling.
  5571  //
  5572  // This method is useful when you want to inject custom logic or configuration
  5573  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5574  //
  5575  //
  5576  //    // Example sending a request using the ListObjectChildrenRequest method.
  5577  //    req, resp := client.ListObjectChildrenRequest(params)
  5578  //
  5579  //    err := req.Send()
  5580  //    if err == nil { // resp is now filled
  5581  //        fmt.Println(resp)
  5582  //    }
  5583  //
  5584  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
  5585  func (c *CloudDirectory) ListObjectChildrenRequest(input *ListObjectChildrenInput) (req *request.Request, output *ListObjectChildrenOutput) {
  5586  	op := &request.Operation{
  5587  		Name:       opListObjectChildren,
  5588  		HTTPMethod: "POST",
  5589  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/children",
  5590  		Paginator: &request.Paginator{
  5591  			InputTokens:     []string{"NextToken"},
  5592  			OutputTokens:    []string{"NextToken"},
  5593  			LimitToken:      "MaxResults",
  5594  			TruncationToken: "",
  5595  		},
  5596  	}
  5597  
  5598  	if input == nil {
  5599  		input = &ListObjectChildrenInput{}
  5600  	}
  5601  
  5602  	output = &ListObjectChildrenOutput{}
  5603  	req = c.newRequest(op, input, output)
  5604  	return
  5605  }
  5606  
  5607  // ListObjectChildren API operation for Amazon CloudDirectory.
  5608  //
  5609  // Returns a paginated list of child objects that are associated with a given
  5610  // object.
  5611  //
  5612  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5613  // with awserr.Error's Code and Message methods to get detailed information about
  5614  // the error.
  5615  //
  5616  // See the AWS API reference guide for Amazon CloudDirectory's
  5617  // API operation ListObjectChildren for usage and error information.
  5618  //
  5619  // Returned Error Types:
  5620  //   * InternalServiceException
  5621  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5622  //   be a transient error in which case you can retry your request until it succeeds.
  5623  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5624  //   site to see if there are any operational issues with the service.
  5625  //
  5626  //   * InvalidArnException
  5627  //   Indicates that the provided ARN value is not valid.
  5628  //
  5629  //   * RetryableConflictException
  5630  //   Occurs when a conflict with a previous successful write is detected. For
  5631  //   example, if a write operation occurs on an object and then an attempt is
  5632  //   made to read the object using “SERIALIZABLE” consistency, this exception
  5633  //   may result. This generally occurs when the previous write did not have time
  5634  //   to propagate to the host serving the current request. A retry (with appropriate
  5635  //   backoff logic) is the recommended response to this exception.
  5636  //
  5637  //   * ValidationException
  5638  //   Indicates that your request is malformed in some manner. See the exception
  5639  //   message.
  5640  //
  5641  //   * LimitExceededException
  5642  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  5643  //   for more information.
  5644  //
  5645  //   * AccessDeniedException
  5646  //   Access denied or directory not found. Either you don't have permissions for
  5647  //   this directory or the directory does not exist. Try calling ListDirectories
  5648  //   and check your permissions.
  5649  //
  5650  //   * DirectoryNotEnabledException
  5651  //   Operations are only permitted on enabled directories.
  5652  //
  5653  //   * ResourceNotFoundException
  5654  //   The specified resource could not be found.
  5655  //
  5656  //   * InvalidNextTokenException
  5657  //   Indicates that the NextToken value is not valid.
  5658  //
  5659  //   * NotNodeException
  5660  //   Occurs when any invalid operations are performed on an object that is not
  5661  //   a node, such as calling ListObjectChildren for a leaf node object.
  5662  //
  5663  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
  5664  func (c *CloudDirectory) ListObjectChildren(input *ListObjectChildrenInput) (*ListObjectChildrenOutput, error) {
  5665  	req, out := c.ListObjectChildrenRequest(input)
  5666  	return out, req.Send()
  5667  }
  5668  
  5669  // ListObjectChildrenWithContext is the same as ListObjectChildren with the addition of
  5670  // the ability to pass a context and additional request options.
  5671  //
  5672  // See ListObjectChildren for details on how to use this API operation.
  5673  //
  5674  // The context must be non-nil and will be used for request cancellation. If
  5675  // the context is nil a panic will occur. In the future the SDK may create
  5676  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5677  // for more information on using Contexts.
  5678  func (c *CloudDirectory) ListObjectChildrenWithContext(ctx aws.Context, input *ListObjectChildrenInput, opts ...request.Option) (*ListObjectChildrenOutput, error) {
  5679  	req, out := c.ListObjectChildrenRequest(input)
  5680  	req.SetContext(ctx)
  5681  	req.ApplyOptions(opts...)
  5682  	return out, req.Send()
  5683  }
  5684  
  5685  // ListObjectChildrenPages iterates over the pages of a ListObjectChildren operation,
  5686  // calling the "fn" function with the response data for each page. To stop
  5687  // iterating, return false from the fn function.
  5688  //
  5689  // See ListObjectChildren method for more information on how to use this operation.
  5690  //
  5691  // Note: This operation can generate multiple requests to a service.
  5692  //
  5693  //    // Example iterating over at most 3 pages of a ListObjectChildren operation.
  5694  //    pageNum := 0
  5695  //    err := client.ListObjectChildrenPages(params,
  5696  //        func(page *clouddirectory.ListObjectChildrenOutput, lastPage bool) bool {
  5697  //            pageNum++
  5698  //            fmt.Println(page)
  5699  //            return pageNum <= 3
  5700  //        })
  5701  //
  5702  func (c *CloudDirectory) ListObjectChildrenPages(input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool) error {
  5703  	return c.ListObjectChildrenPagesWithContext(aws.BackgroundContext(), input, fn)
  5704  }
  5705  
  5706  // ListObjectChildrenPagesWithContext same as ListObjectChildrenPages except
  5707  // it takes a Context and allows setting request options on the pages.
  5708  //
  5709  // The context must be non-nil and will be used for request cancellation. If
  5710  // the context is nil a panic will occur. In the future the SDK may create
  5711  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5712  // for more information on using Contexts.
  5713  func (c *CloudDirectory) ListObjectChildrenPagesWithContext(ctx aws.Context, input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool, opts ...request.Option) error {
  5714  	p := request.Pagination{
  5715  		NewRequest: func() (*request.Request, error) {
  5716  			var inCpy *ListObjectChildrenInput
  5717  			if input != nil {
  5718  				tmp := *input
  5719  				inCpy = &tmp
  5720  			}
  5721  			req, _ := c.ListObjectChildrenRequest(inCpy)
  5722  			req.SetContext(ctx)
  5723  			req.ApplyOptions(opts...)
  5724  			return req, nil
  5725  		},
  5726  	}
  5727  
  5728  	for p.Next() {
  5729  		if !fn(p.Page().(*ListObjectChildrenOutput), !p.HasNextPage()) {
  5730  			break
  5731  		}
  5732  	}
  5733  
  5734  	return p.Err()
  5735  }
  5736  
  5737  const opListObjectParentPaths = "ListObjectParentPaths"
  5738  
  5739  // ListObjectParentPathsRequest generates a "aws/request.Request" representing the
  5740  // client's request for the ListObjectParentPaths operation. The "output" return
  5741  // value will be populated with the request's response once the request completes
  5742  // successfully.
  5743  //
  5744  // Use "Send" method on the returned Request to send the API call to the service.
  5745  // the "output" return value is not valid until after Send returns without error.
  5746  //
  5747  // See ListObjectParentPaths for more information on using the ListObjectParentPaths
  5748  // API call, and error handling.
  5749  //
  5750  // This method is useful when you want to inject custom logic or configuration
  5751  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5752  //
  5753  //
  5754  //    // Example sending a request using the ListObjectParentPathsRequest method.
  5755  //    req, resp := client.ListObjectParentPathsRequest(params)
  5756  //
  5757  //    err := req.Send()
  5758  //    if err == nil { // resp is now filled
  5759  //        fmt.Println(resp)
  5760  //    }
  5761  //
  5762  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
  5763  func (c *CloudDirectory) ListObjectParentPathsRequest(input *ListObjectParentPathsInput) (req *request.Request, output *ListObjectParentPathsOutput) {
  5764  	op := &request.Operation{
  5765  		Name:       opListObjectParentPaths,
  5766  		HTTPMethod: "POST",
  5767  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parentpaths",
  5768  		Paginator: &request.Paginator{
  5769  			InputTokens:     []string{"NextToken"},
  5770  			OutputTokens:    []string{"NextToken"},
  5771  			LimitToken:      "MaxResults",
  5772  			TruncationToken: "",
  5773  		},
  5774  	}
  5775  
  5776  	if input == nil {
  5777  		input = &ListObjectParentPathsInput{}
  5778  	}
  5779  
  5780  	output = &ListObjectParentPathsOutput{}
  5781  	req = c.newRequest(op, input, output)
  5782  	return
  5783  }
  5784  
  5785  // ListObjectParentPaths API operation for Amazon CloudDirectory.
  5786  //
  5787  // Retrieves all available parent paths for any object type such as node, leaf
  5788  // node, policy node, and index node objects. For more information about objects,
  5789  // see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
  5790  //
  5791  // Use this API to evaluate all parents for an object. The call returns all
  5792  // objects from the root of the directory up to the requested object. The API
  5793  // returns the number of paths based on user-defined MaxResults, in case there
  5794  // are multiple paths to the parent. The order of the paths and nodes returned
  5795  // is consistent among multiple API calls unless the objects are deleted or
  5796  // moved. Paths not leading to the directory root are ignored from the target
  5797  // object.
  5798  //
  5799  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5800  // with awserr.Error's Code and Message methods to get detailed information about
  5801  // the error.
  5802  //
  5803  // See the AWS API reference guide for Amazon CloudDirectory's
  5804  // API operation ListObjectParentPaths for usage and error information.
  5805  //
  5806  // Returned Error Types:
  5807  //   * InternalServiceException
  5808  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5809  //   be a transient error in which case you can retry your request until it succeeds.
  5810  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5811  //   site to see if there are any operational issues with the service.
  5812  //
  5813  //   * InvalidArnException
  5814  //   Indicates that the provided ARN value is not valid.
  5815  //
  5816  //   * RetryableConflictException
  5817  //   Occurs when a conflict with a previous successful write is detected. For
  5818  //   example, if a write operation occurs on an object and then an attempt is
  5819  //   made to read the object using “SERIALIZABLE” consistency, this exception
  5820  //   may result. This generally occurs when the previous write did not have time
  5821  //   to propagate to the host serving the current request. A retry (with appropriate
  5822  //   backoff logic) is the recommended response to this exception.
  5823  //
  5824  //   * ValidationException
  5825  //   Indicates that your request is malformed in some manner. See the exception
  5826  //   message.
  5827  //
  5828  //   * LimitExceededException
  5829  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  5830  //   for more information.
  5831  //
  5832  //   * AccessDeniedException
  5833  //   Access denied or directory not found. Either you don't have permissions for
  5834  //   this directory or the directory does not exist. Try calling ListDirectories
  5835  //   and check your permissions.
  5836  //
  5837  //   * DirectoryNotEnabledException
  5838  //   Operations are only permitted on enabled directories.
  5839  //
  5840  //   * InvalidNextTokenException
  5841  //   Indicates that the NextToken value is not valid.
  5842  //
  5843  //   * ResourceNotFoundException
  5844  //   The specified resource could not be found.
  5845  //
  5846  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
  5847  func (c *CloudDirectory) ListObjectParentPaths(input *ListObjectParentPathsInput) (*ListObjectParentPathsOutput, error) {
  5848  	req, out := c.ListObjectParentPathsRequest(input)
  5849  	return out, req.Send()
  5850  }
  5851  
  5852  // ListObjectParentPathsWithContext is the same as ListObjectParentPaths with the addition of
  5853  // the ability to pass a context and additional request options.
  5854  //
  5855  // See ListObjectParentPaths for details on how to use this API operation.
  5856  //
  5857  // The context must be non-nil and will be used for request cancellation. If
  5858  // the context is nil a panic will occur. In the future the SDK may create
  5859  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5860  // for more information on using Contexts.
  5861  func (c *CloudDirectory) ListObjectParentPathsWithContext(ctx aws.Context, input *ListObjectParentPathsInput, opts ...request.Option) (*ListObjectParentPathsOutput, error) {
  5862  	req, out := c.ListObjectParentPathsRequest(input)
  5863  	req.SetContext(ctx)
  5864  	req.ApplyOptions(opts...)
  5865  	return out, req.Send()
  5866  }
  5867  
  5868  // ListObjectParentPathsPages iterates over the pages of a ListObjectParentPaths operation,
  5869  // calling the "fn" function with the response data for each page. To stop
  5870  // iterating, return false from the fn function.
  5871  //
  5872  // See ListObjectParentPaths method for more information on how to use this operation.
  5873  //
  5874  // Note: This operation can generate multiple requests to a service.
  5875  //
  5876  //    // Example iterating over at most 3 pages of a ListObjectParentPaths operation.
  5877  //    pageNum := 0
  5878  //    err := client.ListObjectParentPathsPages(params,
  5879  //        func(page *clouddirectory.ListObjectParentPathsOutput, lastPage bool) bool {
  5880  //            pageNum++
  5881  //            fmt.Println(page)
  5882  //            return pageNum <= 3
  5883  //        })
  5884  //
  5885  func (c *CloudDirectory) ListObjectParentPathsPages(input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool) error {
  5886  	return c.ListObjectParentPathsPagesWithContext(aws.BackgroundContext(), input, fn)
  5887  }
  5888  
  5889  // ListObjectParentPathsPagesWithContext same as ListObjectParentPathsPages except
  5890  // it takes a Context and allows setting request options on the pages.
  5891  //
  5892  // The context must be non-nil and will be used for request cancellation. If
  5893  // the context is nil a panic will occur. In the future the SDK may create
  5894  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5895  // for more information on using Contexts.
  5896  func (c *CloudDirectory) ListObjectParentPathsPagesWithContext(ctx aws.Context, input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool, opts ...request.Option) error {
  5897  	p := request.Pagination{
  5898  		NewRequest: func() (*request.Request, error) {
  5899  			var inCpy *ListObjectParentPathsInput
  5900  			if input != nil {
  5901  				tmp := *input
  5902  				inCpy = &tmp
  5903  			}
  5904  			req, _ := c.ListObjectParentPathsRequest(inCpy)
  5905  			req.SetContext(ctx)
  5906  			req.ApplyOptions(opts...)
  5907  			return req, nil
  5908  		},
  5909  	}
  5910  
  5911  	for p.Next() {
  5912  		if !fn(p.Page().(*ListObjectParentPathsOutput), !p.HasNextPage()) {
  5913  			break
  5914  		}
  5915  	}
  5916  
  5917  	return p.Err()
  5918  }
  5919  
  5920  const opListObjectParents = "ListObjectParents"
  5921  
  5922  // ListObjectParentsRequest generates a "aws/request.Request" representing the
  5923  // client's request for the ListObjectParents operation. The "output" return
  5924  // value will be populated with the request's response once the request completes
  5925  // successfully.
  5926  //
  5927  // Use "Send" method on the returned Request to send the API call to the service.
  5928  // the "output" return value is not valid until after Send returns without error.
  5929  //
  5930  // See ListObjectParents for more information on using the ListObjectParents
  5931  // API call, and error handling.
  5932  //
  5933  // This method is useful when you want to inject custom logic or configuration
  5934  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5935  //
  5936  //
  5937  //    // Example sending a request using the ListObjectParentsRequest method.
  5938  //    req, resp := client.ListObjectParentsRequest(params)
  5939  //
  5940  //    err := req.Send()
  5941  //    if err == nil { // resp is now filled
  5942  //        fmt.Println(resp)
  5943  //    }
  5944  //
  5945  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
  5946  func (c *CloudDirectory) ListObjectParentsRequest(input *ListObjectParentsInput) (req *request.Request, output *ListObjectParentsOutput) {
  5947  	op := &request.Operation{
  5948  		Name:       opListObjectParents,
  5949  		HTTPMethod: "POST",
  5950  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parent",
  5951  		Paginator: &request.Paginator{
  5952  			InputTokens:     []string{"NextToken"},
  5953  			OutputTokens:    []string{"NextToken"},
  5954  			LimitToken:      "MaxResults",
  5955  			TruncationToken: "",
  5956  		},
  5957  	}
  5958  
  5959  	if input == nil {
  5960  		input = &ListObjectParentsInput{}
  5961  	}
  5962  
  5963  	output = &ListObjectParentsOutput{}
  5964  	req = c.newRequest(op, input, output)
  5965  	return
  5966  }
  5967  
  5968  // ListObjectParents API operation for Amazon CloudDirectory.
  5969  //
  5970  // Lists parent objects that are associated with a given object in pagination
  5971  // fashion.
  5972  //
  5973  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5974  // with awserr.Error's Code and Message methods to get detailed information about
  5975  // the error.
  5976  //
  5977  // See the AWS API reference guide for Amazon CloudDirectory's
  5978  // API operation ListObjectParents for usage and error information.
  5979  //
  5980  // Returned Error Types:
  5981  //   * InternalServiceException
  5982  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  5983  //   be a transient error in which case you can retry your request until it succeeds.
  5984  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  5985  //   site to see if there are any operational issues with the service.
  5986  //
  5987  //   * InvalidArnException
  5988  //   Indicates that the provided ARN value is not valid.
  5989  //
  5990  //   * RetryableConflictException
  5991  //   Occurs when a conflict with a previous successful write is detected. For
  5992  //   example, if a write operation occurs on an object and then an attempt is
  5993  //   made to read the object using “SERIALIZABLE” consistency, this exception
  5994  //   may result. This generally occurs when the previous write did not have time
  5995  //   to propagate to the host serving the current request. A retry (with appropriate
  5996  //   backoff logic) is the recommended response to this exception.
  5997  //
  5998  //   * ValidationException
  5999  //   Indicates that your request is malformed in some manner. See the exception
  6000  //   message.
  6001  //
  6002  //   * LimitExceededException
  6003  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6004  //   for more information.
  6005  //
  6006  //   * AccessDeniedException
  6007  //   Access denied or directory not found. Either you don't have permissions for
  6008  //   this directory or the directory does not exist. Try calling ListDirectories
  6009  //   and check your permissions.
  6010  //
  6011  //   * DirectoryNotEnabledException
  6012  //   Operations are only permitted on enabled directories.
  6013  //
  6014  //   * ResourceNotFoundException
  6015  //   The specified resource could not be found.
  6016  //
  6017  //   * InvalidNextTokenException
  6018  //   Indicates that the NextToken value is not valid.
  6019  //
  6020  //   * CannotListParentOfRootException
  6021  //   Cannot list the parents of a Directory root.
  6022  //
  6023  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
  6024  func (c *CloudDirectory) ListObjectParents(input *ListObjectParentsInput) (*ListObjectParentsOutput, error) {
  6025  	req, out := c.ListObjectParentsRequest(input)
  6026  	return out, req.Send()
  6027  }
  6028  
  6029  // ListObjectParentsWithContext is the same as ListObjectParents with the addition of
  6030  // the ability to pass a context and additional request options.
  6031  //
  6032  // See ListObjectParents for details on how to use this API operation.
  6033  //
  6034  // The context must be non-nil and will be used for request cancellation. If
  6035  // the context is nil a panic will occur. In the future the SDK may create
  6036  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6037  // for more information on using Contexts.
  6038  func (c *CloudDirectory) ListObjectParentsWithContext(ctx aws.Context, input *ListObjectParentsInput, opts ...request.Option) (*ListObjectParentsOutput, error) {
  6039  	req, out := c.ListObjectParentsRequest(input)
  6040  	req.SetContext(ctx)
  6041  	req.ApplyOptions(opts...)
  6042  	return out, req.Send()
  6043  }
  6044  
  6045  // ListObjectParentsPages iterates over the pages of a ListObjectParents operation,
  6046  // calling the "fn" function with the response data for each page. To stop
  6047  // iterating, return false from the fn function.
  6048  //
  6049  // See ListObjectParents method for more information on how to use this operation.
  6050  //
  6051  // Note: This operation can generate multiple requests to a service.
  6052  //
  6053  //    // Example iterating over at most 3 pages of a ListObjectParents operation.
  6054  //    pageNum := 0
  6055  //    err := client.ListObjectParentsPages(params,
  6056  //        func(page *clouddirectory.ListObjectParentsOutput, lastPage bool) bool {
  6057  //            pageNum++
  6058  //            fmt.Println(page)
  6059  //            return pageNum <= 3
  6060  //        })
  6061  //
  6062  func (c *CloudDirectory) ListObjectParentsPages(input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool) error {
  6063  	return c.ListObjectParentsPagesWithContext(aws.BackgroundContext(), input, fn)
  6064  }
  6065  
  6066  // ListObjectParentsPagesWithContext same as ListObjectParentsPages except
  6067  // it takes a Context and allows setting request options on the pages.
  6068  //
  6069  // The context must be non-nil and will be used for request cancellation. If
  6070  // the context is nil a panic will occur. In the future the SDK may create
  6071  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6072  // for more information on using Contexts.
  6073  func (c *CloudDirectory) ListObjectParentsPagesWithContext(ctx aws.Context, input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool, opts ...request.Option) error {
  6074  	p := request.Pagination{
  6075  		NewRequest: func() (*request.Request, error) {
  6076  			var inCpy *ListObjectParentsInput
  6077  			if input != nil {
  6078  				tmp := *input
  6079  				inCpy = &tmp
  6080  			}
  6081  			req, _ := c.ListObjectParentsRequest(inCpy)
  6082  			req.SetContext(ctx)
  6083  			req.ApplyOptions(opts...)
  6084  			return req, nil
  6085  		},
  6086  	}
  6087  
  6088  	for p.Next() {
  6089  		if !fn(p.Page().(*ListObjectParentsOutput), !p.HasNextPage()) {
  6090  			break
  6091  		}
  6092  	}
  6093  
  6094  	return p.Err()
  6095  }
  6096  
  6097  const opListObjectPolicies = "ListObjectPolicies"
  6098  
  6099  // ListObjectPoliciesRequest generates a "aws/request.Request" representing the
  6100  // client's request for the ListObjectPolicies operation. The "output" return
  6101  // value will be populated with the request's response once the request completes
  6102  // successfully.
  6103  //
  6104  // Use "Send" method on the returned Request to send the API call to the service.
  6105  // the "output" return value is not valid until after Send returns without error.
  6106  //
  6107  // See ListObjectPolicies for more information on using the ListObjectPolicies
  6108  // API call, and error handling.
  6109  //
  6110  // This method is useful when you want to inject custom logic or configuration
  6111  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6112  //
  6113  //
  6114  //    // Example sending a request using the ListObjectPoliciesRequest method.
  6115  //    req, resp := client.ListObjectPoliciesRequest(params)
  6116  //
  6117  //    err := req.Send()
  6118  //    if err == nil { // resp is now filled
  6119  //        fmt.Println(resp)
  6120  //    }
  6121  //
  6122  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
  6123  func (c *CloudDirectory) ListObjectPoliciesRequest(input *ListObjectPoliciesInput) (req *request.Request, output *ListObjectPoliciesOutput) {
  6124  	op := &request.Operation{
  6125  		Name:       opListObjectPolicies,
  6126  		HTTPMethod: "POST",
  6127  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/policy",
  6128  		Paginator: &request.Paginator{
  6129  			InputTokens:     []string{"NextToken"},
  6130  			OutputTokens:    []string{"NextToken"},
  6131  			LimitToken:      "MaxResults",
  6132  			TruncationToken: "",
  6133  		},
  6134  	}
  6135  
  6136  	if input == nil {
  6137  		input = &ListObjectPoliciesInput{}
  6138  	}
  6139  
  6140  	output = &ListObjectPoliciesOutput{}
  6141  	req = c.newRequest(op, input, output)
  6142  	return
  6143  }
  6144  
  6145  // ListObjectPolicies API operation for Amazon CloudDirectory.
  6146  //
  6147  // Returns policies attached to an object in pagination fashion.
  6148  //
  6149  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6150  // with awserr.Error's Code and Message methods to get detailed information about
  6151  // the error.
  6152  //
  6153  // See the AWS API reference guide for Amazon CloudDirectory's
  6154  // API operation ListObjectPolicies for usage and error information.
  6155  //
  6156  // Returned Error Types:
  6157  //   * InternalServiceException
  6158  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6159  //   be a transient error in which case you can retry your request until it succeeds.
  6160  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6161  //   site to see if there are any operational issues with the service.
  6162  //
  6163  //   * InvalidArnException
  6164  //   Indicates that the provided ARN value is not valid.
  6165  //
  6166  //   * RetryableConflictException
  6167  //   Occurs when a conflict with a previous successful write is detected. For
  6168  //   example, if a write operation occurs on an object and then an attempt is
  6169  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6170  //   may result. This generally occurs when the previous write did not have time
  6171  //   to propagate to the host serving the current request. A retry (with appropriate
  6172  //   backoff logic) is the recommended response to this exception.
  6173  //
  6174  //   * ValidationException
  6175  //   Indicates that your request is malformed in some manner. See the exception
  6176  //   message.
  6177  //
  6178  //   * LimitExceededException
  6179  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6180  //   for more information.
  6181  //
  6182  //   * AccessDeniedException
  6183  //   Access denied or directory not found. Either you don't have permissions for
  6184  //   this directory or the directory does not exist. Try calling ListDirectories
  6185  //   and check your permissions.
  6186  //
  6187  //   * DirectoryNotEnabledException
  6188  //   Operations are only permitted on enabled directories.
  6189  //
  6190  //   * ResourceNotFoundException
  6191  //   The specified resource could not be found.
  6192  //
  6193  //   * InvalidNextTokenException
  6194  //   Indicates that the NextToken value is not valid.
  6195  //
  6196  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
  6197  func (c *CloudDirectory) ListObjectPolicies(input *ListObjectPoliciesInput) (*ListObjectPoliciesOutput, error) {
  6198  	req, out := c.ListObjectPoliciesRequest(input)
  6199  	return out, req.Send()
  6200  }
  6201  
  6202  // ListObjectPoliciesWithContext is the same as ListObjectPolicies with the addition of
  6203  // the ability to pass a context and additional request options.
  6204  //
  6205  // See ListObjectPolicies for details on how to use this API operation.
  6206  //
  6207  // The context must be non-nil and will be used for request cancellation. If
  6208  // the context is nil a panic will occur. In the future the SDK may create
  6209  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6210  // for more information on using Contexts.
  6211  func (c *CloudDirectory) ListObjectPoliciesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, opts ...request.Option) (*ListObjectPoliciesOutput, error) {
  6212  	req, out := c.ListObjectPoliciesRequest(input)
  6213  	req.SetContext(ctx)
  6214  	req.ApplyOptions(opts...)
  6215  	return out, req.Send()
  6216  }
  6217  
  6218  // ListObjectPoliciesPages iterates over the pages of a ListObjectPolicies operation,
  6219  // calling the "fn" function with the response data for each page. To stop
  6220  // iterating, return false from the fn function.
  6221  //
  6222  // See ListObjectPolicies method for more information on how to use this operation.
  6223  //
  6224  // Note: This operation can generate multiple requests to a service.
  6225  //
  6226  //    // Example iterating over at most 3 pages of a ListObjectPolicies operation.
  6227  //    pageNum := 0
  6228  //    err := client.ListObjectPoliciesPages(params,
  6229  //        func(page *clouddirectory.ListObjectPoliciesOutput, lastPage bool) bool {
  6230  //            pageNum++
  6231  //            fmt.Println(page)
  6232  //            return pageNum <= 3
  6233  //        })
  6234  //
  6235  func (c *CloudDirectory) ListObjectPoliciesPages(input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool) error {
  6236  	return c.ListObjectPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
  6237  }
  6238  
  6239  // ListObjectPoliciesPagesWithContext same as ListObjectPoliciesPages except
  6240  // it takes a Context and allows setting request options on the pages.
  6241  //
  6242  // The context must be non-nil and will be used for request cancellation. If
  6243  // the context is nil a panic will occur. In the future the SDK may create
  6244  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6245  // for more information on using Contexts.
  6246  func (c *CloudDirectory) ListObjectPoliciesPagesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool, opts ...request.Option) error {
  6247  	p := request.Pagination{
  6248  		NewRequest: func() (*request.Request, error) {
  6249  			var inCpy *ListObjectPoliciesInput
  6250  			if input != nil {
  6251  				tmp := *input
  6252  				inCpy = &tmp
  6253  			}
  6254  			req, _ := c.ListObjectPoliciesRequest(inCpy)
  6255  			req.SetContext(ctx)
  6256  			req.ApplyOptions(opts...)
  6257  			return req, nil
  6258  		},
  6259  	}
  6260  
  6261  	for p.Next() {
  6262  		if !fn(p.Page().(*ListObjectPoliciesOutput), !p.HasNextPage()) {
  6263  			break
  6264  		}
  6265  	}
  6266  
  6267  	return p.Err()
  6268  }
  6269  
  6270  const opListOutgoingTypedLinks = "ListOutgoingTypedLinks"
  6271  
  6272  // ListOutgoingTypedLinksRequest generates a "aws/request.Request" representing the
  6273  // client's request for the ListOutgoingTypedLinks operation. The "output" return
  6274  // value will be populated with the request's response once the request completes
  6275  // successfully.
  6276  //
  6277  // Use "Send" method on the returned Request to send the API call to the service.
  6278  // the "output" return value is not valid until after Send returns without error.
  6279  //
  6280  // See ListOutgoingTypedLinks for more information on using the ListOutgoingTypedLinks
  6281  // API call, and error handling.
  6282  //
  6283  // This method is useful when you want to inject custom logic or configuration
  6284  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6285  //
  6286  //
  6287  //    // Example sending a request using the ListOutgoingTypedLinksRequest method.
  6288  //    req, resp := client.ListOutgoingTypedLinksRequest(params)
  6289  //
  6290  //    err := req.Send()
  6291  //    if err == nil { // resp is now filled
  6292  //        fmt.Println(resp)
  6293  //    }
  6294  //
  6295  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
  6296  func (c *CloudDirectory) ListOutgoingTypedLinksRequest(input *ListOutgoingTypedLinksInput) (req *request.Request, output *ListOutgoingTypedLinksOutput) {
  6297  	op := &request.Operation{
  6298  		Name:       opListOutgoingTypedLinks,
  6299  		HTTPMethod: "POST",
  6300  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
  6301  	}
  6302  
  6303  	if input == nil {
  6304  		input = &ListOutgoingTypedLinksInput{}
  6305  	}
  6306  
  6307  	output = &ListOutgoingTypedLinksOutput{}
  6308  	req = c.newRequest(op, input, output)
  6309  	return
  6310  }
  6311  
  6312  // ListOutgoingTypedLinks API operation for Amazon CloudDirectory.
  6313  //
  6314  // Returns a paginated list of all the outgoing TypedLinkSpecifier information
  6315  // for an object. It also supports filtering by typed link facet and identity
  6316  // attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  6317  //
  6318  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6319  // with awserr.Error's Code and Message methods to get detailed information about
  6320  // the error.
  6321  //
  6322  // See the AWS API reference guide for Amazon CloudDirectory's
  6323  // API operation ListOutgoingTypedLinks for usage and error information.
  6324  //
  6325  // Returned Error Types:
  6326  //   * InternalServiceException
  6327  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6328  //   be a transient error in which case you can retry your request until it succeeds.
  6329  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6330  //   site to see if there are any operational issues with the service.
  6331  //
  6332  //   * InvalidArnException
  6333  //   Indicates that the provided ARN value is not valid.
  6334  //
  6335  //   * RetryableConflictException
  6336  //   Occurs when a conflict with a previous successful write is detected. For
  6337  //   example, if a write operation occurs on an object and then an attempt is
  6338  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6339  //   may result. This generally occurs when the previous write did not have time
  6340  //   to propagate to the host serving the current request. A retry (with appropriate
  6341  //   backoff logic) is the recommended response to this exception.
  6342  //
  6343  //   * ValidationException
  6344  //   Indicates that your request is malformed in some manner. See the exception
  6345  //   message.
  6346  //
  6347  //   * LimitExceededException
  6348  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6349  //   for more information.
  6350  //
  6351  //   * AccessDeniedException
  6352  //   Access denied or directory not found. Either you don't have permissions for
  6353  //   this directory or the directory does not exist. Try calling ListDirectories
  6354  //   and check your permissions.
  6355  //
  6356  //   * DirectoryNotEnabledException
  6357  //   Operations are only permitted on enabled directories.
  6358  //
  6359  //   * ResourceNotFoundException
  6360  //   The specified resource could not be found.
  6361  //
  6362  //   * InvalidNextTokenException
  6363  //   Indicates that the NextToken value is not valid.
  6364  //
  6365  //   * FacetValidationException
  6366  //   The Facet that you provided was not well formed or could not be validated
  6367  //   with the schema.
  6368  //
  6369  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
  6370  func (c *CloudDirectory) ListOutgoingTypedLinks(input *ListOutgoingTypedLinksInput) (*ListOutgoingTypedLinksOutput, error) {
  6371  	req, out := c.ListOutgoingTypedLinksRequest(input)
  6372  	return out, req.Send()
  6373  }
  6374  
  6375  // ListOutgoingTypedLinksWithContext is the same as ListOutgoingTypedLinks with the addition of
  6376  // the ability to pass a context and additional request options.
  6377  //
  6378  // See ListOutgoingTypedLinks for details on how to use this API operation.
  6379  //
  6380  // The context must be non-nil and will be used for request cancellation. If
  6381  // the context is nil a panic will occur. In the future the SDK may create
  6382  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6383  // for more information on using Contexts.
  6384  func (c *CloudDirectory) ListOutgoingTypedLinksWithContext(ctx aws.Context, input *ListOutgoingTypedLinksInput, opts ...request.Option) (*ListOutgoingTypedLinksOutput, error) {
  6385  	req, out := c.ListOutgoingTypedLinksRequest(input)
  6386  	req.SetContext(ctx)
  6387  	req.ApplyOptions(opts...)
  6388  	return out, req.Send()
  6389  }
  6390  
  6391  const opListPolicyAttachments = "ListPolicyAttachments"
  6392  
  6393  // ListPolicyAttachmentsRequest generates a "aws/request.Request" representing the
  6394  // client's request for the ListPolicyAttachments operation. The "output" return
  6395  // value will be populated with the request's response once the request completes
  6396  // successfully.
  6397  //
  6398  // Use "Send" method on the returned Request to send the API call to the service.
  6399  // the "output" return value is not valid until after Send returns without error.
  6400  //
  6401  // See ListPolicyAttachments for more information on using the ListPolicyAttachments
  6402  // API call, and error handling.
  6403  //
  6404  // This method is useful when you want to inject custom logic or configuration
  6405  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6406  //
  6407  //
  6408  //    // Example sending a request using the ListPolicyAttachmentsRequest method.
  6409  //    req, resp := client.ListPolicyAttachmentsRequest(params)
  6410  //
  6411  //    err := req.Send()
  6412  //    if err == nil { // resp is now filled
  6413  //        fmt.Println(resp)
  6414  //    }
  6415  //
  6416  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
  6417  func (c *CloudDirectory) ListPolicyAttachmentsRequest(input *ListPolicyAttachmentsInput) (req *request.Request, output *ListPolicyAttachmentsOutput) {
  6418  	op := &request.Operation{
  6419  		Name:       opListPolicyAttachments,
  6420  		HTTPMethod: "POST",
  6421  		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attachment",
  6422  		Paginator: &request.Paginator{
  6423  			InputTokens:     []string{"NextToken"},
  6424  			OutputTokens:    []string{"NextToken"},
  6425  			LimitToken:      "MaxResults",
  6426  			TruncationToken: "",
  6427  		},
  6428  	}
  6429  
  6430  	if input == nil {
  6431  		input = &ListPolicyAttachmentsInput{}
  6432  	}
  6433  
  6434  	output = &ListPolicyAttachmentsOutput{}
  6435  	req = c.newRequest(op, input, output)
  6436  	return
  6437  }
  6438  
  6439  // ListPolicyAttachments API operation for Amazon CloudDirectory.
  6440  //
  6441  // Returns all of the ObjectIdentifiers to which a given policy is attached.
  6442  //
  6443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6444  // with awserr.Error's Code and Message methods to get detailed information about
  6445  // the error.
  6446  //
  6447  // See the AWS API reference guide for Amazon CloudDirectory's
  6448  // API operation ListPolicyAttachments for usage and error information.
  6449  //
  6450  // Returned Error Types:
  6451  //   * InternalServiceException
  6452  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6453  //   be a transient error in which case you can retry your request until it succeeds.
  6454  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6455  //   site to see if there are any operational issues with the service.
  6456  //
  6457  //   * InvalidArnException
  6458  //   Indicates that the provided ARN value is not valid.
  6459  //
  6460  //   * RetryableConflictException
  6461  //   Occurs when a conflict with a previous successful write is detected. For
  6462  //   example, if a write operation occurs on an object and then an attempt is
  6463  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6464  //   may result. This generally occurs when the previous write did not have time
  6465  //   to propagate to the host serving the current request. A retry (with appropriate
  6466  //   backoff logic) is the recommended response to this exception.
  6467  //
  6468  //   * ValidationException
  6469  //   Indicates that your request is malformed in some manner. See the exception
  6470  //   message.
  6471  //
  6472  //   * LimitExceededException
  6473  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6474  //   for more information.
  6475  //
  6476  //   * AccessDeniedException
  6477  //   Access denied or directory not found. Either you don't have permissions for
  6478  //   this directory or the directory does not exist. Try calling ListDirectories
  6479  //   and check your permissions.
  6480  //
  6481  //   * DirectoryNotEnabledException
  6482  //   Operations are only permitted on enabled directories.
  6483  //
  6484  //   * InvalidNextTokenException
  6485  //   Indicates that the NextToken value is not valid.
  6486  //
  6487  //   * ResourceNotFoundException
  6488  //   The specified resource could not be found.
  6489  //
  6490  //   * NotPolicyException
  6491  //   Indicates that the requested operation can only operate on policy objects.
  6492  //
  6493  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
  6494  func (c *CloudDirectory) ListPolicyAttachments(input *ListPolicyAttachmentsInput) (*ListPolicyAttachmentsOutput, error) {
  6495  	req, out := c.ListPolicyAttachmentsRequest(input)
  6496  	return out, req.Send()
  6497  }
  6498  
  6499  // ListPolicyAttachmentsWithContext is the same as ListPolicyAttachments with the addition of
  6500  // the ability to pass a context and additional request options.
  6501  //
  6502  // See ListPolicyAttachments for details on how to use this API operation.
  6503  //
  6504  // The context must be non-nil and will be used for request cancellation. If
  6505  // the context is nil a panic will occur. In the future the SDK may create
  6506  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6507  // for more information on using Contexts.
  6508  func (c *CloudDirectory) ListPolicyAttachmentsWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, opts ...request.Option) (*ListPolicyAttachmentsOutput, error) {
  6509  	req, out := c.ListPolicyAttachmentsRequest(input)
  6510  	req.SetContext(ctx)
  6511  	req.ApplyOptions(opts...)
  6512  	return out, req.Send()
  6513  }
  6514  
  6515  // ListPolicyAttachmentsPages iterates over the pages of a ListPolicyAttachments operation,
  6516  // calling the "fn" function with the response data for each page. To stop
  6517  // iterating, return false from the fn function.
  6518  //
  6519  // See ListPolicyAttachments method for more information on how to use this operation.
  6520  //
  6521  // Note: This operation can generate multiple requests to a service.
  6522  //
  6523  //    // Example iterating over at most 3 pages of a ListPolicyAttachments operation.
  6524  //    pageNum := 0
  6525  //    err := client.ListPolicyAttachmentsPages(params,
  6526  //        func(page *clouddirectory.ListPolicyAttachmentsOutput, lastPage bool) bool {
  6527  //            pageNum++
  6528  //            fmt.Println(page)
  6529  //            return pageNum <= 3
  6530  //        })
  6531  //
  6532  func (c *CloudDirectory) ListPolicyAttachmentsPages(input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool) error {
  6533  	return c.ListPolicyAttachmentsPagesWithContext(aws.BackgroundContext(), input, fn)
  6534  }
  6535  
  6536  // ListPolicyAttachmentsPagesWithContext same as ListPolicyAttachmentsPages except
  6537  // it takes a Context and allows setting request options on the pages.
  6538  //
  6539  // The context must be non-nil and will be used for request cancellation. If
  6540  // the context is nil a panic will occur. In the future the SDK may create
  6541  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6542  // for more information on using Contexts.
  6543  func (c *CloudDirectory) ListPolicyAttachmentsPagesWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool, opts ...request.Option) error {
  6544  	p := request.Pagination{
  6545  		NewRequest: func() (*request.Request, error) {
  6546  			var inCpy *ListPolicyAttachmentsInput
  6547  			if input != nil {
  6548  				tmp := *input
  6549  				inCpy = &tmp
  6550  			}
  6551  			req, _ := c.ListPolicyAttachmentsRequest(inCpy)
  6552  			req.SetContext(ctx)
  6553  			req.ApplyOptions(opts...)
  6554  			return req, nil
  6555  		},
  6556  	}
  6557  
  6558  	for p.Next() {
  6559  		if !fn(p.Page().(*ListPolicyAttachmentsOutput), !p.HasNextPage()) {
  6560  			break
  6561  		}
  6562  	}
  6563  
  6564  	return p.Err()
  6565  }
  6566  
  6567  const opListPublishedSchemaArns = "ListPublishedSchemaArns"
  6568  
  6569  // ListPublishedSchemaArnsRequest generates a "aws/request.Request" representing the
  6570  // client's request for the ListPublishedSchemaArns operation. The "output" return
  6571  // value will be populated with the request's response once the request completes
  6572  // successfully.
  6573  //
  6574  // Use "Send" method on the returned Request to send the API call to the service.
  6575  // the "output" return value is not valid until after Send returns without error.
  6576  //
  6577  // See ListPublishedSchemaArns for more information on using the ListPublishedSchemaArns
  6578  // API call, and error handling.
  6579  //
  6580  // This method is useful when you want to inject custom logic or configuration
  6581  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6582  //
  6583  //
  6584  //    // Example sending a request using the ListPublishedSchemaArnsRequest method.
  6585  //    req, resp := client.ListPublishedSchemaArnsRequest(params)
  6586  //
  6587  //    err := req.Send()
  6588  //    if err == nil { // resp is now filled
  6589  //        fmt.Println(resp)
  6590  //    }
  6591  //
  6592  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
  6593  func (c *CloudDirectory) ListPublishedSchemaArnsRequest(input *ListPublishedSchemaArnsInput) (req *request.Request, output *ListPublishedSchemaArnsOutput) {
  6594  	op := &request.Operation{
  6595  		Name:       opListPublishedSchemaArns,
  6596  		HTTPMethod: "POST",
  6597  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/published",
  6598  		Paginator: &request.Paginator{
  6599  			InputTokens:     []string{"NextToken"},
  6600  			OutputTokens:    []string{"NextToken"},
  6601  			LimitToken:      "MaxResults",
  6602  			TruncationToken: "",
  6603  		},
  6604  	}
  6605  
  6606  	if input == nil {
  6607  		input = &ListPublishedSchemaArnsInput{}
  6608  	}
  6609  
  6610  	output = &ListPublishedSchemaArnsOutput{}
  6611  	req = c.newRequest(op, input, output)
  6612  	return
  6613  }
  6614  
  6615  // ListPublishedSchemaArns API operation for Amazon CloudDirectory.
  6616  //
  6617  // Lists the major version families of each published schema. If a major version
  6618  // ARN is provided as SchemaArn, the minor version revisions in that family
  6619  // are listed instead.
  6620  //
  6621  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6622  // with awserr.Error's Code and Message methods to get detailed information about
  6623  // the error.
  6624  //
  6625  // See the AWS API reference guide for Amazon CloudDirectory's
  6626  // API operation ListPublishedSchemaArns for usage and error information.
  6627  //
  6628  // Returned Error Types:
  6629  //   * InternalServiceException
  6630  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6631  //   be a transient error in which case you can retry your request until it succeeds.
  6632  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6633  //   site to see if there are any operational issues with the service.
  6634  //
  6635  //   * InvalidArnException
  6636  //   Indicates that the provided ARN value is not valid.
  6637  //
  6638  //   * RetryableConflictException
  6639  //   Occurs when a conflict with a previous successful write is detected. For
  6640  //   example, if a write operation occurs on an object and then an attempt is
  6641  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6642  //   may result. This generally occurs when the previous write did not have time
  6643  //   to propagate to the host serving the current request. A retry (with appropriate
  6644  //   backoff logic) is the recommended response to this exception.
  6645  //
  6646  //   * ValidationException
  6647  //   Indicates that your request is malformed in some manner. See the exception
  6648  //   message.
  6649  //
  6650  //   * LimitExceededException
  6651  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6652  //   for more information.
  6653  //
  6654  //   * AccessDeniedException
  6655  //   Access denied or directory not found. Either you don't have permissions for
  6656  //   this directory or the directory does not exist. Try calling ListDirectories
  6657  //   and check your permissions.
  6658  //
  6659  //   * ResourceNotFoundException
  6660  //   The specified resource could not be found.
  6661  //
  6662  //   * InvalidNextTokenException
  6663  //   Indicates that the NextToken value is not valid.
  6664  //
  6665  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
  6666  func (c *CloudDirectory) ListPublishedSchemaArns(input *ListPublishedSchemaArnsInput) (*ListPublishedSchemaArnsOutput, error) {
  6667  	req, out := c.ListPublishedSchemaArnsRequest(input)
  6668  	return out, req.Send()
  6669  }
  6670  
  6671  // ListPublishedSchemaArnsWithContext is the same as ListPublishedSchemaArns with the addition of
  6672  // the ability to pass a context and additional request options.
  6673  //
  6674  // See ListPublishedSchemaArns for details on how to use this API operation.
  6675  //
  6676  // The context must be non-nil and will be used for request cancellation. If
  6677  // the context is nil a panic will occur. In the future the SDK may create
  6678  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6679  // for more information on using Contexts.
  6680  func (c *CloudDirectory) ListPublishedSchemaArnsWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, opts ...request.Option) (*ListPublishedSchemaArnsOutput, error) {
  6681  	req, out := c.ListPublishedSchemaArnsRequest(input)
  6682  	req.SetContext(ctx)
  6683  	req.ApplyOptions(opts...)
  6684  	return out, req.Send()
  6685  }
  6686  
  6687  // ListPublishedSchemaArnsPages iterates over the pages of a ListPublishedSchemaArns operation,
  6688  // calling the "fn" function with the response data for each page. To stop
  6689  // iterating, return false from the fn function.
  6690  //
  6691  // See ListPublishedSchemaArns method for more information on how to use this operation.
  6692  //
  6693  // Note: This operation can generate multiple requests to a service.
  6694  //
  6695  //    // Example iterating over at most 3 pages of a ListPublishedSchemaArns operation.
  6696  //    pageNum := 0
  6697  //    err := client.ListPublishedSchemaArnsPages(params,
  6698  //        func(page *clouddirectory.ListPublishedSchemaArnsOutput, lastPage bool) bool {
  6699  //            pageNum++
  6700  //            fmt.Println(page)
  6701  //            return pageNum <= 3
  6702  //        })
  6703  //
  6704  func (c *CloudDirectory) ListPublishedSchemaArnsPages(input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool) error {
  6705  	return c.ListPublishedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
  6706  }
  6707  
  6708  // ListPublishedSchemaArnsPagesWithContext same as ListPublishedSchemaArnsPages except
  6709  // it takes a Context and allows setting request options on the pages.
  6710  //
  6711  // The context must be non-nil and will be used for request cancellation. If
  6712  // the context is nil a panic will occur. In the future the SDK may create
  6713  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6714  // for more information on using Contexts.
  6715  func (c *CloudDirectory) ListPublishedSchemaArnsPagesWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
  6716  	p := request.Pagination{
  6717  		NewRequest: func() (*request.Request, error) {
  6718  			var inCpy *ListPublishedSchemaArnsInput
  6719  			if input != nil {
  6720  				tmp := *input
  6721  				inCpy = &tmp
  6722  			}
  6723  			req, _ := c.ListPublishedSchemaArnsRequest(inCpy)
  6724  			req.SetContext(ctx)
  6725  			req.ApplyOptions(opts...)
  6726  			return req, nil
  6727  		},
  6728  	}
  6729  
  6730  	for p.Next() {
  6731  		if !fn(p.Page().(*ListPublishedSchemaArnsOutput), !p.HasNextPage()) {
  6732  			break
  6733  		}
  6734  	}
  6735  
  6736  	return p.Err()
  6737  }
  6738  
  6739  const opListTagsForResource = "ListTagsForResource"
  6740  
  6741  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  6742  // client's request for the ListTagsForResource operation. The "output" return
  6743  // value will be populated with the request's response once the request completes
  6744  // successfully.
  6745  //
  6746  // Use "Send" method on the returned Request to send the API call to the service.
  6747  // the "output" return value is not valid until after Send returns without error.
  6748  //
  6749  // See ListTagsForResource for more information on using the ListTagsForResource
  6750  // API call, and error handling.
  6751  //
  6752  // This method is useful when you want to inject custom logic or configuration
  6753  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6754  //
  6755  //
  6756  //    // Example sending a request using the ListTagsForResourceRequest method.
  6757  //    req, resp := client.ListTagsForResourceRequest(params)
  6758  //
  6759  //    err := req.Send()
  6760  //    if err == nil { // resp is now filled
  6761  //        fmt.Println(resp)
  6762  //    }
  6763  //
  6764  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
  6765  func (c *CloudDirectory) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  6766  	op := &request.Operation{
  6767  		Name:       opListTagsForResource,
  6768  		HTTPMethod: "POST",
  6769  		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags",
  6770  		Paginator: &request.Paginator{
  6771  			InputTokens:     []string{"NextToken"},
  6772  			OutputTokens:    []string{"NextToken"},
  6773  			LimitToken:      "MaxResults",
  6774  			TruncationToken: "",
  6775  		},
  6776  	}
  6777  
  6778  	if input == nil {
  6779  		input = &ListTagsForResourceInput{}
  6780  	}
  6781  
  6782  	output = &ListTagsForResourceOutput{}
  6783  	req = c.newRequest(op, input, output)
  6784  	return
  6785  }
  6786  
  6787  // ListTagsForResource API operation for Amazon CloudDirectory.
  6788  //
  6789  // Returns tags for a resource. Tagging is currently supported only for directories
  6790  // with a limit of 50 tags per directory. All 50 tags are returned for a given
  6791  // directory with this API call.
  6792  //
  6793  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6794  // with awserr.Error's Code and Message methods to get detailed information about
  6795  // the error.
  6796  //
  6797  // See the AWS API reference guide for Amazon CloudDirectory's
  6798  // API operation ListTagsForResource for usage and error information.
  6799  //
  6800  // Returned Error Types:
  6801  //   * InternalServiceException
  6802  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6803  //   be a transient error in which case you can retry your request until it succeeds.
  6804  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6805  //   site to see if there are any operational issues with the service.
  6806  //
  6807  //   * InvalidArnException
  6808  //   Indicates that the provided ARN value is not valid.
  6809  //
  6810  //   * RetryableConflictException
  6811  //   Occurs when a conflict with a previous successful write is detected. For
  6812  //   example, if a write operation occurs on an object and then an attempt is
  6813  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6814  //   may result. This generally occurs when the previous write did not have time
  6815  //   to propagate to the host serving the current request. A retry (with appropriate
  6816  //   backoff logic) is the recommended response to this exception.
  6817  //
  6818  //   * ValidationException
  6819  //   Indicates that your request is malformed in some manner. See the exception
  6820  //   message.
  6821  //
  6822  //   * LimitExceededException
  6823  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6824  //   for more information.
  6825  //
  6826  //   * AccessDeniedException
  6827  //   Access denied or directory not found. Either you don't have permissions for
  6828  //   this directory or the directory does not exist. Try calling ListDirectories
  6829  //   and check your permissions.
  6830  //
  6831  //   * ResourceNotFoundException
  6832  //   The specified resource could not be found.
  6833  //
  6834  //   * InvalidTaggingRequestException
  6835  //   Can occur for multiple reasons such as when you tag a resource that doesn’t
  6836  //   exist or if you specify a higher number of tags for a resource than the allowed
  6837  //   limit. Allowed limit is 50 tags per resource.
  6838  //
  6839  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
  6840  func (c *CloudDirectory) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  6841  	req, out := c.ListTagsForResourceRequest(input)
  6842  	return out, req.Send()
  6843  }
  6844  
  6845  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  6846  // the ability to pass a context and additional request options.
  6847  //
  6848  // See ListTagsForResource for details on how to use this API operation.
  6849  //
  6850  // The context must be non-nil and will be used for request cancellation. If
  6851  // the context is nil a panic will occur. In the future the SDK may create
  6852  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6853  // for more information on using Contexts.
  6854  func (c *CloudDirectory) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  6855  	req, out := c.ListTagsForResourceRequest(input)
  6856  	req.SetContext(ctx)
  6857  	req.ApplyOptions(opts...)
  6858  	return out, req.Send()
  6859  }
  6860  
  6861  // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
  6862  // calling the "fn" function with the response data for each page. To stop
  6863  // iterating, return false from the fn function.
  6864  //
  6865  // See ListTagsForResource method for more information on how to use this operation.
  6866  //
  6867  // Note: This operation can generate multiple requests to a service.
  6868  //
  6869  //    // Example iterating over at most 3 pages of a ListTagsForResource operation.
  6870  //    pageNum := 0
  6871  //    err := client.ListTagsForResourcePages(params,
  6872  //        func(page *clouddirectory.ListTagsForResourceOutput, lastPage bool) bool {
  6873  //            pageNum++
  6874  //            fmt.Println(page)
  6875  //            return pageNum <= 3
  6876  //        })
  6877  //
  6878  func (c *CloudDirectory) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
  6879  	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
  6880  }
  6881  
  6882  // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
  6883  // it takes a Context and allows setting request options on the pages.
  6884  //
  6885  // The context must be non-nil and will be used for request cancellation. If
  6886  // the context is nil a panic will occur. In the future the SDK may create
  6887  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6888  // for more information on using Contexts.
  6889  func (c *CloudDirectory) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
  6890  	p := request.Pagination{
  6891  		NewRequest: func() (*request.Request, error) {
  6892  			var inCpy *ListTagsForResourceInput
  6893  			if input != nil {
  6894  				tmp := *input
  6895  				inCpy = &tmp
  6896  			}
  6897  			req, _ := c.ListTagsForResourceRequest(inCpy)
  6898  			req.SetContext(ctx)
  6899  			req.ApplyOptions(opts...)
  6900  			return req, nil
  6901  		},
  6902  	}
  6903  
  6904  	for p.Next() {
  6905  		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
  6906  			break
  6907  		}
  6908  	}
  6909  
  6910  	return p.Err()
  6911  }
  6912  
  6913  const opListTypedLinkFacetAttributes = "ListTypedLinkFacetAttributes"
  6914  
  6915  // ListTypedLinkFacetAttributesRequest generates a "aws/request.Request" representing the
  6916  // client's request for the ListTypedLinkFacetAttributes operation. The "output" return
  6917  // value will be populated with the request's response once the request completes
  6918  // successfully.
  6919  //
  6920  // Use "Send" method on the returned Request to send the API call to the service.
  6921  // the "output" return value is not valid until after Send returns without error.
  6922  //
  6923  // See ListTypedLinkFacetAttributes for more information on using the ListTypedLinkFacetAttributes
  6924  // API call, and error handling.
  6925  //
  6926  // This method is useful when you want to inject custom logic or configuration
  6927  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6928  //
  6929  //
  6930  //    // Example sending a request using the ListTypedLinkFacetAttributesRequest method.
  6931  //    req, resp := client.ListTypedLinkFacetAttributesRequest(params)
  6932  //
  6933  //    err := req.Send()
  6934  //    if err == nil { // resp is now filled
  6935  //        fmt.Println(resp)
  6936  //    }
  6937  //
  6938  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
  6939  func (c *CloudDirectory) ListTypedLinkFacetAttributesRequest(input *ListTypedLinkFacetAttributesInput) (req *request.Request, output *ListTypedLinkFacetAttributesOutput) {
  6940  	op := &request.Operation{
  6941  		Name:       opListTypedLinkFacetAttributes,
  6942  		HTTPMethod: "POST",
  6943  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
  6944  		Paginator: &request.Paginator{
  6945  			InputTokens:     []string{"NextToken"},
  6946  			OutputTokens:    []string{"NextToken"},
  6947  			LimitToken:      "MaxResults",
  6948  			TruncationToken: "",
  6949  		},
  6950  	}
  6951  
  6952  	if input == nil {
  6953  		input = &ListTypedLinkFacetAttributesInput{}
  6954  	}
  6955  
  6956  	output = &ListTypedLinkFacetAttributesOutput{}
  6957  	req = c.newRequest(op, input, output)
  6958  	return
  6959  }
  6960  
  6961  // ListTypedLinkFacetAttributes API operation for Amazon CloudDirectory.
  6962  //
  6963  // Returns a paginated list of all attribute definitions for a particular TypedLinkFacet.
  6964  // For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  6965  //
  6966  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6967  // with awserr.Error's Code and Message methods to get detailed information about
  6968  // the error.
  6969  //
  6970  // See the AWS API reference guide for Amazon CloudDirectory's
  6971  // API operation ListTypedLinkFacetAttributes for usage and error information.
  6972  //
  6973  // Returned Error Types:
  6974  //   * InternalServiceException
  6975  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  6976  //   be a transient error in which case you can retry your request until it succeeds.
  6977  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  6978  //   site to see if there are any operational issues with the service.
  6979  //
  6980  //   * InvalidArnException
  6981  //   Indicates that the provided ARN value is not valid.
  6982  //
  6983  //   * RetryableConflictException
  6984  //   Occurs when a conflict with a previous successful write is detected. For
  6985  //   example, if a write operation occurs on an object and then an attempt is
  6986  //   made to read the object using “SERIALIZABLE” consistency, this exception
  6987  //   may result. This generally occurs when the previous write did not have time
  6988  //   to propagate to the host serving the current request. A retry (with appropriate
  6989  //   backoff logic) is the recommended response to this exception.
  6990  //
  6991  //   * ValidationException
  6992  //   Indicates that your request is malformed in some manner. See the exception
  6993  //   message.
  6994  //
  6995  //   * LimitExceededException
  6996  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  6997  //   for more information.
  6998  //
  6999  //   * AccessDeniedException
  7000  //   Access denied or directory not found. Either you don't have permissions for
  7001  //   this directory or the directory does not exist. Try calling ListDirectories
  7002  //   and check your permissions.
  7003  //
  7004  //   * ResourceNotFoundException
  7005  //   The specified resource could not be found.
  7006  //
  7007  //   * FacetNotFoundException
  7008  //   The specified Facet could not be found.
  7009  //
  7010  //   * InvalidNextTokenException
  7011  //   Indicates that the NextToken value is not valid.
  7012  //
  7013  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
  7014  func (c *CloudDirectory) ListTypedLinkFacetAttributes(input *ListTypedLinkFacetAttributesInput) (*ListTypedLinkFacetAttributesOutput, error) {
  7015  	req, out := c.ListTypedLinkFacetAttributesRequest(input)
  7016  	return out, req.Send()
  7017  }
  7018  
  7019  // ListTypedLinkFacetAttributesWithContext is the same as ListTypedLinkFacetAttributes with the addition of
  7020  // the ability to pass a context and additional request options.
  7021  //
  7022  // See ListTypedLinkFacetAttributes for details on how to use this API operation.
  7023  //
  7024  // The context must be non-nil and will be used for request cancellation. If
  7025  // the context is nil a panic will occur. In the future the SDK may create
  7026  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7027  // for more information on using Contexts.
  7028  func (c *CloudDirectory) ListTypedLinkFacetAttributesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, opts ...request.Option) (*ListTypedLinkFacetAttributesOutput, error) {
  7029  	req, out := c.ListTypedLinkFacetAttributesRequest(input)
  7030  	req.SetContext(ctx)
  7031  	req.ApplyOptions(opts...)
  7032  	return out, req.Send()
  7033  }
  7034  
  7035  // ListTypedLinkFacetAttributesPages iterates over the pages of a ListTypedLinkFacetAttributes operation,
  7036  // calling the "fn" function with the response data for each page. To stop
  7037  // iterating, return false from the fn function.
  7038  //
  7039  // See ListTypedLinkFacetAttributes method for more information on how to use this operation.
  7040  //
  7041  // Note: This operation can generate multiple requests to a service.
  7042  //
  7043  //    // Example iterating over at most 3 pages of a ListTypedLinkFacetAttributes operation.
  7044  //    pageNum := 0
  7045  //    err := client.ListTypedLinkFacetAttributesPages(params,
  7046  //        func(page *clouddirectory.ListTypedLinkFacetAttributesOutput, lastPage bool) bool {
  7047  //            pageNum++
  7048  //            fmt.Println(page)
  7049  //            return pageNum <= 3
  7050  //        })
  7051  //
  7052  func (c *CloudDirectory) ListTypedLinkFacetAttributesPages(input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool) error {
  7053  	return c.ListTypedLinkFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
  7054  }
  7055  
  7056  // ListTypedLinkFacetAttributesPagesWithContext same as ListTypedLinkFacetAttributesPages except
  7057  // it takes a Context and allows setting request options on the pages.
  7058  //
  7059  // The context must be non-nil and will be used for request cancellation. If
  7060  // the context is nil a panic will occur. In the future the SDK may create
  7061  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7062  // for more information on using Contexts.
  7063  func (c *CloudDirectory) ListTypedLinkFacetAttributesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool, opts ...request.Option) error {
  7064  	p := request.Pagination{
  7065  		NewRequest: func() (*request.Request, error) {
  7066  			var inCpy *ListTypedLinkFacetAttributesInput
  7067  			if input != nil {
  7068  				tmp := *input
  7069  				inCpy = &tmp
  7070  			}
  7071  			req, _ := c.ListTypedLinkFacetAttributesRequest(inCpy)
  7072  			req.SetContext(ctx)
  7073  			req.ApplyOptions(opts...)
  7074  			return req, nil
  7075  		},
  7076  	}
  7077  
  7078  	for p.Next() {
  7079  		if !fn(p.Page().(*ListTypedLinkFacetAttributesOutput), !p.HasNextPage()) {
  7080  			break
  7081  		}
  7082  	}
  7083  
  7084  	return p.Err()
  7085  }
  7086  
  7087  const opListTypedLinkFacetNames = "ListTypedLinkFacetNames"
  7088  
  7089  // ListTypedLinkFacetNamesRequest generates a "aws/request.Request" representing the
  7090  // client's request for the ListTypedLinkFacetNames operation. The "output" return
  7091  // value will be populated with the request's response once the request completes
  7092  // successfully.
  7093  //
  7094  // Use "Send" method on the returned Request to send the API call to the service.
  7095  // the "output" return value is not valid until after Send returns without error.
  7096  //
  7097  // See ListTypedLinkFacetNames for more information on using the ListTypedLinkFacetNames
  7098  // API call, and error handling.
  7099  //
  7100  // This method is useful when you want to inject custom logic or configuration
  7101  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7102  //
  7103  //
  7104  //    // Example sending a request using the ListTypedLinkFacetNamesRequest method.
  7105  //    req, resp := client.ListTypedLinkFacetNamesRequest(params)
  7106  //
  7107  //    err := req.Send()
  7108  //    if err == nil { // resp is now filled
  7109  //        fmt.Println(resp)
  7110  //    }
  7111  //
  7112  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
  7113  func (c *CloudDirectory) ListTypedLinkFacetNamesRequest(input *ListTypedLinkFacetNamesInput) (req *request.Request, output *ListTypedLinkFacetNamesOutput) {
  7114  	op := &request.Operation{
  7115  		Name:       opListTypedLinkFacetNames,
  7116  		HTTPMethod: "POST",
  7117  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
  7118  		Paginator: &request.Paginator{
  7119  			InputTokens:     []string{"NextToken"},
  7120  			OutputTokens:    []string{"NextToken"},
  7121  			LimitToken:      "MaxResults",
  7122  			TruncationToken: "",
  7123  		},
  7124  	}
  7125  
  7126  	if input == nil {
  7127  		input = &ListTypedLinkFacetNamesInput{}
  7128  	}
  7129  
  7130  	output = &ListTypedLinkFacetNamesOutput{}
  7131  	req = c.newRequest(op, input, output)
  7132  	return
  7133  }
  7134  
  7135  // ListTypedLinkFacetNames API operation for Amazon CloudDirectory.
  7136  //
  7137  // Returns a paginated list of TypedLink facet names for a particular schema.
  7138  // For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  7139  //
  7140  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7141  // with awserr.Error's Code and Message methods to get detailed information about
  7142  // the error.
  7143  //
  7144  // See the AWS API reference guide for Amazon CloudDirectory's
  7145  // API operation ListTypedLinkFacetNames for usage and error information.
  7146  //
  7147  // Returned Error Types:
  7148  //   * InternalServiceException
  7149  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7150  //   be a transient error in which case you can retry your request until it succeeds.
  7151  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7152  //   site to see if there are any operational issues with the service.
  7153  //
  7154  //   * InvalidArnException
  7155  //   Indicates that the provided ARN value is not valid.
  7156  //
  7157  //   * RetryableConflictException
  7158  //   Occurs when a conflict with a previous successful write is detected. For
  7159  //   example, if a write operation occurs on an object and then an attempt is
  7160  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7161  //   may result. This generally occurs when the previous write did not have time
  7162  //   to propagate to the host serving the current request. A retry (with appropriate
  7163  //   backoff logic) is the recommended response to this exception.
  7164  //
  7165  //   * ValidationException
  7166  //   Indicates that your request is malformed in some manner. See the exception
  7167  //   message.
  7168  //
  7169  //   * LimitExceededException
  7170  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7171  //   for more information.
  7172  //
  7173  //   * AccessDeniedException
  7174  //   Access denied or directory not found. Either you don't have permissions for
  7175  //   this directory or the directory does not exist. Try calling ListDirectories
  7176  //   and check your permissions.
  7177  //
  7178  //   * ResourceNotFoundException
  7179  //   The specified resource could not be found.
  7180  //
  7181  //   * InvalidNextTokenException
  7182  //   Indicates that the NextToken value is not valid.
  7183  //
  7184  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
  7185  func (c *CloudDirectory) ListTypedLinkFacetNames(input *ListTypedLinkFacetNamesInput) (*ListTypedLinkFacetNamesOutput, error) {
  7186  	req, out := c.ListTypedLinkFacetNamesRequest(input)
  7187  	return out, req.Send()
  7188  }
  7189  
  7190  // ListTypedLinkFacetNamesWithContext is the same as ListTypedLinkFacetNames with the addition of
  7191  // the ability to pass a context and additional request options.
  7192  //
  7193  // See ListTypedLinkFacetNames for details on how to use this API operation.
  7194  //
  7195  // The context must be non-nil and will be used for request cancellation. If
  7196  // the context is nil a panic will occur. In the future the SDK may create
  7197  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7198  // for more information on using Contexts.
  7199  func (c *CloudDirectory) ListTypedLinkFacetNamesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, opts ...request.Option) (*ListTypedLinkFacetNamesOutput, error) {
  7200  	req, out := c.ListTypedLinkFacetNamesRequest(input)
  7201  	req.SetContext(ctx)
  7202  	req.ApplyOptions(opts...)
  7203  	return out, req.Send()
  7204  }
  7205  
  7206  // ListTypedLinkFacetNamesPages iterates over the pages of a ListTypedLinkFacetNames operation,
  7207  // calling the "fn" function with the response data for each page. To stop
  7208  // iterating, return false from the fn function.
  7209  //
  7210  // See ListTypedLinkFacetNames method for more information on how to use this operation.
  7211  //
  7212  // Note: This operation can generate multiple requests to a service.
  7213  //
  7214  //    // Example iterating over at most 3 pages of a ListTypedLinkFacetNames operation.
  7215  //    pageNum := 0
  7216  //    err := client.ListTypedLinkFacetNamesPages(params,
  7217  //        func(page *clouddirectory.ListTypedLinkFacetNamesOutput, lastPage bool) bool {
  7218  //            pageNum++
  7219  //            fmt.Println(page)
  7220  //            return pageNum <= 3
  7221  //        })
  7222  //
  7223  func (c *CloudDirectory) ListTypedLinkFacetNamesPages(input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool) error {
  7224  	return c.ListTypedLinkFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
  7225  }
  7226  
  7227  // ListTypedLinkFacetNamesPagesWithContext same as ListTypedLinkFacetNamesPages except
  7228  // it takes a Context and allows setting request options on the pages.
  7229  //
  7230  // The context must be non-nil and will be used for request cancellation. If
  7231  // the context is nil a panic will occur. In the future the SDK may create
  7232  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7233  // for more information on using Contexts.
  7234  func (c *CloudDirectory) ListTypedLinkFacetNamesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool, opts ...request.Option) error {
  7235  	p := request.Pagination{
  7236  		NewRequest: func() (*request.Request, error) {
  7237  			var inCpy *ListTypedLinkFacetNamesInput
  7238  			if input != nil {
  7239  				tmp := *input
  7240  				inCpy = &tmp
  7241  			}
  7242  			req, _ := c.ListTypedLinkFacetNamesRequest(inCpy)
  7243  			req.SetContext(ctx)
  7244  			req.ApplyOptions(opts...)
  7245  			return req, nil
  7246  		},
  7247  	}
  7248  
  7249  	for p.Next() {
  7250  		if !fn(p.Page().(*ListTypedLinkFacetNamesOutput), !p.HasNextPage()) {
  7251  			break
  7252  		}
  7253  	}
  7254  
  7255  	return p.Err()
  7256  }
  7257  
  7258  const opLookupPolicy = "LookupPolicy"
  7259  
  7260  // LookupPolicyRequest generates a "aws/request.Request" representing the
  7261  // client's request for the LookupPolicy operation. The "output" return
  7262  // value will be populated with the request's response once the request completes
  7263  // successfully.
  7264  //
  7265  // Use "Send" method on the returned Request to send the API call to the service.
  7266  // the "output" return value is not valid until after Send returns without error.
  7267  //
  7268  // See LookupPolicy for more information on using the LookupPolicy
  7269  // API call, and error handling.
  7270  //
  7271  // This method is useful when you want to inject custom logic or configuration
  7272  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7273  //
  7274  //
  7275  //    // Example sending a request using the LookupPolicyRequest method.
  7276  //    req, resp := client.LookupPolicyRequest(params)
  7277  //
  7278  //    err := req.Send()
  7279  //    if err == nil { // resp is now filled
  7280  //        fmt.Println(resp)
  7281  //    }
  7282  //
  7283  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
  7284  func (c *CloudDirectory) LookupPolicyRequest(input *LookupPolicyInput) (req *request.Request, output *LookupPolicyOutput) {
  7285  	op := &request.Operation{
  7286  		Name:       opLookupPolicy,
  7287  		HTTPMethod: "POST",
  7288  		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/lookup",
  7289  		Paginator: &request.Paginator{
  7290  			InputTokens:     []string{"NextToken"},
  7291  			OutputTokens:    []string{"NextToken"},
  7292  			LimitToken:      "MaxResults",
  7293  			TruncationToken: "",
  7294  		},
  7295  	}
  7296  
  7297  	if input == nil {
  7298  		input = &LookupPolicyInput{}
  7299  	}
  7300  
  7301  	output = &LookupPolicyOutput{}
  7302  	req = c.newRequest(op, input, output)
  7303  	return
  7304  }
  7305  
  7306  // LookupPolicy API operation for Amazon CloudDirectory.
  7307  //
  7308  // Lists all policies from the root of the Directory to the object specified.
  7309  // If there are no policies present, an empty list is returned. If policies
  7310  // are present, and if some objects don't have the policies attached, it returns
  7311  // the ObjectIdentifier for such objects. If policies are present, it returns
  7312  // ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
  7313  // root from the target object are ignored. For more information, see Policies
  7314  // (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
  7315  //
  7316  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7317  // with awserr.Error's Code and Message methods to get detailed information about
  7318  // the error.
  7319  //
  7320  // See the AWS API reference guide for Amazon CloudDirectory's
  7321  // API operation LookupPolicy for usage and error information.
  7322  //
  7323  // Returned Error Types:
  7324  //   * InternalServiceException
  7325  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7326  //   be a transient error in which case you can retry your request until it succeeds.
  7327  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7328  //   site to see if there are any operational issues with the service.
  7329  //
  7330  //   * InvalidArnException
  7331  //   Indicates that the provided ARN value is not valid.
  7332  //
  7333  //   * RetryableConflictException
  7334  //   Occurs when a conflict with a previous successful write is detected. For
  7335  //   example, if a write operation occurs on an object and then an attempt is
  7336  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7337  //   may result. This generally occurs when the previous write did not have time
  7338  //   to propagate to the host serving the current request. A retry (with appropriate
  7339  //   backoff logic) is the recommended response to this exception.
  7340  //
  7341  //   * ValidationException
  7342  //   Indicates that your request is malformed in some manner. See the exception
  7343  //   message.
  7344  //
  7345  //   * LimitExceededException
  7346  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7347  //   for more information.
  7348  //
  7349  //   * AccessDeniedException
  7350  //   Access denied or directory not found. Either you don't have permissions for
  7351  //   this directory or the directory does not exist. Try calling ListDirectories
  7352  //   and check your permissions.
  7353  //
  7354  //   * DirectoryNotEnabledException
  7355  //   Operations are only permitted on enabled directories.
  7356  //
  7357  //   * InvalidNextTokenException
  7358  //   Indicates that the NextToken value is not valid.
  7359  //
  7360  //   * ResourceNotFoundException
  7361  //   The specified resource could not be found.
  7362  //
  7363  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
  7364  func (c *CloudDirectory) LookupPolicy(input *LookupPolicyInput) (*LookupPolicyOutput, error) {
  7365  	req, out := c.LookupPolicyRequest(input)
  7366  	return out, req.Send()
  7367  }
  7368  
  7369  // LookupPolicyWithContext is the same as LookupPolicy with the addition of
  7370  // the ability to pass a context and additional request options.
  7371  //
  7372  // See LookupPolicy for details on how to use this API operation.
  7373  //
  7374  // The context must be non-nil and will be used for request cancellation. If
  7375  // the context is nil a panic will occur. In the future the SDK may create
  7376  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7377  // for more information on using Contexts.
  7378  func (c *CloudDirectory) LookupPolicyWithContext(ctx aws.Context, input *LookupPolicyInput, opts ...request.Option) (*LookupPolicyOutput, error) {
  7379  	req, out := c.LookupPolicyRequest(input)
  7380  	req.SetContext(ctx)
  7381  	req.ApplyOptions(opts...)
  7382  	return out, req.Send()
  7383  }
  7384  
  7385  // LookupPolicyPages iterates over the pages of a LookupPolicy operation,
  7386  // calling the "fn" function with the response data for each page. To stop
  7387  // iterating, return false from the fn function.
  7388  //
  7389  // See LookupPolicy method for more information on how to use this operation.
  7390  //
  7391  // Note: This operation can generate multiple requests to a service.
  7392  //
  7393  //    // Example iterating over at most 3 pages of a LookupPolicy operation.
  7394  //    pageNum := 0
  7395  //    err := client.LookupPolicyPages(params,
  7396  //        func(page *clouddirectory.LookupPolicyOutput, lastPage bool) bool {
  7397  //            pageNum++
  7398  //            fmt.Println(page)
  7399  //            return pageNum <= 3
  7400  //        })
  7401  //
  7402  func (c *CloudDirectory) LookupPolicyPages(input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool) error {
  7403  	return c.LookupPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
  7404  }
  7405  
  7406  // LookupPolicyPagesWithContext same as LookupPolicyPages except
  7407  // it takes a Context and allows setting request options on the pages.
  7408  //
  7409  // The context must be non-nil and will be used for request cancellation. If
  7410  // the context is nil a panic will occur. In the future the SDK may create
  7411  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7412  // for more information on using Contexts.
  7413  func (c *CloudDirectory) LookupPolicyPagesWithContext(ctx aws.Context, input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool, opts ...request.Option) error {
  7414  	p := request.Pagination{
  7415  		NewRequest: func() (*request.Request, error) {
  7416  			var inCpy *LookupPolicyInput
  7417  			if input != nil {
  7418  				tmp := *input
  7419  				inCpy = &tmp
  7420  			}
  7421  			req, _ := c.LookupPolicyRequest(inCpy)
  7422  			req.SetContext(ctx)
  7423  			req.ApplyOptions(opts...)
  7424  			return req, nil
  7425  		},
  7426  	}
  7427  
  7428  	for p.Next() {
  7429  		if !fn(p.Page().(*LookupPolicyOutput), !p.HasNextPage()) {
  7430  			break
  7431  		}
  7432  	}
  7433  
  7434  	return p.Err()
  7435  }
  7436  
  7437  const opPublishSchema = "PublishSchema"
  7438  
  7439  // PublishSchemaRequest generates a "aws/request.Request" representing the
  7440  // client's request for the PublishSchema operation. The "output" return
  7441  // value will be populated with the request's response once the request completes
  7442  // successfully.
  7443  //
  7444  // Use "Send" method on the returned Request to send the API call to the service.
  7445  // the "output" return value is not valid until after Send returns without error.
  7446  //
  7447  // See PublishSchema for more information on using the PublishSchema
  7448  // API call, and error handling.
  7449  //
  7450  // This method is useful when you want to inject custom logic or configuration
  7451  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7452  //
  7453  //
  7454  //    // Example sending a request using the PublishSchemaRequest method.
  7455  //    req, resp := client.PublishSchemaRequest(params)
  7456  //
  7457  //    err := req.Send()
  7458  //    if err == nil { // resp is now filled
  7459  //        fmt.Println(resp)
  7460  //    }
  7461  //
  7462  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
  7463  func (c *CloudDirectory) PublishSchemaRequest(input *PublishSchemaInput) (req *request.Request, output *PublishSchemaOutput) {
  7464  	op := &request.Operation{
  7465  		Name:       opPublishSchema,
  7466  		HTTPMethod: "PUT",
  7467  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/publish",
  7468  	}
  7469  
  7470  	if input == nil {
  7471  		input = &PublishSchemaInput{}
  7472  	}
  7473  
  7474  	output = &PublishSchemaOutput{}
  7475  	req = c.newRequest(op, input, output)
  7476  	return
  7477  }
  7478  
  7479  // PublishSchema API operation for Amazon CloudDirectory.
  7480  //
  7481  // Publishes a development schema with a major version and a recommended minor
  7482  // version.
  7483  //
  7484  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7485  // with awserr.Error's Code and Message methods to get detailed information about
  7486  // the error.
  7487  //
  7488  // See the AWS API reference guide for Amazon CloudDirectory's
  7489  // API operation PublishSchema for usage and error information.
  7490  //
  7491  // Returned Error Types:
  7492  //   * InternalServiceException
  7493  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7494  //   be a transient error in which case you can retry your request until it succeeds.
  7495  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7496  //   site to see if there are any operational issues with the service.
  7497  //
  7498  //   * InvalidArnException
  7499  //   Indicates that the provided ARN value is not valid.
  7500  //
  7501  //   * RetryableConflictException
  7502  //   Occurs when a conflict with a previous successful write is detected. For
  7503  //   example, if a write operation occurs on an object and then an attempt is
  7504  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7505  //   may result. This generally occurs when the previous write did not have time
  7506  //   to propagate to the host serving the current request. A retry (with appropriate
  7507  //   backoff logic) is the recommended response to this exception.
  7508  //
  7509  //   * ValidationException
  7510  //   Indicates that your request is malformed in some manner. See the exception
  7511  //   message.
  7512  //
  7513  //   * LimitExceededException
  7514  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7515  //   for more information.
  7516  //
  7517  //   * AccessDeniedException
  7518  //   Access denied or directory not found. Either you don't have permissions for
  7519  //   this directory or the directory does not exist. Try calling ListDirectories
  7520  //   and check your permissions.
  7521  //
  7522  //   * ResourceNotFoundException
  7523  //   The specified resource could not be found.
  7524  //
  7525  //   * SchemaAlreadyPublishedException
  7526  //   Indicates that a schema is already published.
  7527  //
  7528  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
  7529  func (c *CloudDirectory) PublishSchema(input *PublishSchemaInput) (*PublishSchemaOutput, error) {
  7530  	req, out := c.PublishSchemaRequest(input)
  7531  	return out, req.Send()
  7532  }
  7533  
  7534  // PublishSchemaWithContext is the same as PublishSchema with the addition of
  7535  // the ability to pass a context and additional request options.
  7536  //
  7537  // See PublishSchema for details on how to use this API operation.
  7538  //
  7539  // The context must be non-nil and will be used for request cancellation. If
  7540  // the context is nil a panic will occur. In the future the SDK may create
  7541  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7542  // for more information on using Contexts.
  7543  func (c *CloudDirectory) PublishSchemaWithContext(ctx aws.Context, input *PublishSchemaInput, opts ...request.Option) (*PublishSchemaOutput, error) {
  7544  	req, out := c.PublishSchemaRequest(input)
  7545  	req.SetContext(ctx)
  7546  	req.ApplyOptions(opts...)
  7547  	return out, req.Send()
  7548  }
  7549  
  7550  const opPutSchemaFromJson = "PutSchemaFromJson"
  7551  
  7552  // PutSchemaFromJsonRequest generates a "aws/request.Request" representing the
  7553  // client's request for the PutSchemaFromJson operation. The "output" return
  7554  // value will be populated with the request's response once the request completes
  7555  // successfully.
  7556  //
  7557  // Use "Send" method on the returned Request to send the API call to the service.
  7558  // the "output" return value is not valid until after Send returns without error.
  7559  //
  7560  // See PutSchemaFromJson for more information on using the PutSchemaFromJson
  7561  // API call, and error handling.
  7562  //
  7563  // This method is useful when you want to inject custom logic or configuration
  7564  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7565  //
  7566  //
  7567  //    // Example sending a request using the PutSchemaFromJsonRequest method.
  7568  //    req, resp := client.PutSchemaFromJsonRequest(params)
  7569  //
  7570  //    err := req.Send()
  7571  //    if err == nil { // resp is now filled
  7572  //        fmt.Println(resp)
  7573  //    }
  7574  //
  7575  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson
  7576  func (c *CloudDirectory) PutSchemaFromJsonRequest(input *PutSchemaFromJsonInput) (req *request.Request, output *PutSchemaFromJsonOutput) {
  7577  	op := &request.Operation{
  7578  		Name:       opPutSchemaFromJson,
  7579  		HTTPMethod: "PUT",
  7580  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
  7581  	}
  7582  
  7583  	if input == nil {
  7584  		input = &PutSchemaFromJsonInput{}
  7585  	}
  7586  
  7587  	output = &PutSchemaFromJsonOutput{}
  7588  	req = c.newRequest(op, input, output)
  7589  	return
  7590  }
  7591  
  7592  // PutSchemaFromJson API operation for Amazon CloudDirectory.
  7593  //
  7594  // Allows a schema to be updated using JSON upload. Only available for development
  7595  // schemas. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
  7596  // for more information.
  7597  //
  7598  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7599  // with awserr.Error's Code and Message methods to get detailed information about
  7600  // the error.
  7601  //
  7602  // See the AWS API reference guide for Amazon CloudDirectory's
  7603  // API operation PutSchemaFromJson for usage and error information.
  7604  //
  7605  // Returned Error Types:
  7606  //   * InternalServiceException
  7607  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7608  //   be a transient error in which case you can retry your request until it succeeds.
  7609  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7610  //   site to see if there are any operational issues with the service.
  7611  //
  7612  //   * InvalidArnException
  7613  //   Indicates that the provided ARN value is not valid.
  7614  //
  7615  //   * RetryableConflictException
  7616  //   Occurs when a conflict with a previous successful write is detected. For
  7617  //   example, if a write operation occurs on an object and then an attempt is
  7618  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7619  //   may result. This generally occurs when the previous write did not have time
  7620  //   to propagate to the host serving the current request. A retry (with appropriate
  7621  //   backoff logic) is the recommended response to this exception.
  7622  //
  7623  //   * ValidationException
  7624  //   Indicates that your request is malformed in some manner. See the exception
  7625  //   message.
  7626  //
  7627  //   * LimitExceededException
  7628  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7629  //   for more information.
  7630  //
  7631  //   * AccessDeniedException
  7632  //   Access denied or directory not found. Either you don't have permissions for
  7633  //   this directory or the directory does not exist. Try calling ListDirectories
  7634  //   and check your permissions.
  7635  //
  7636  //   * InvalidSchemaDocException
  7637  //   Indicates that the provided SchemaDoc value is not valid.
  7638  //
  7639  //   * InvalidRuleException
  7640  //   Occurs when any of the rule parameter keys or values are invalid.
  7641  //
  7642  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson
  7643  func (c *CloudDirectory) PutSchemaFromJson(input *PutSchemaFromJsonInput) (*PutSchemaFromJsonOutput, error) {
  7644  	req, out := c.PutSchemaFromJsonRequest(input)
  7645  	return out, req.Send()
  7646  }
  7647  
  7648  // PutSchemaFromJsonWithContext is the same as PutSchemaFromJson with the addition of
  7649  // the ability to pass a context and additional request options.
  7650  //
  7651  // See PutSchemaFromJson for details on how to use this API operation.
  7652  //
  7653  // The context must be non-nil and will be used for request cancellation. If
  7654  // the context is nil a panic will occur. In the future the SDK may create
  7655  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7656  // for more information on using Contexts.
  7657  func (c *CloudDirectory) PutSchemaFromJsonWithContext(ctx aws.Context, input *PutSchemaFromJsonInput, opts ...request.Option) (*PutSchemaFromJsonOutput, error) {
  7658  	req, out := c.PutSchemaFromJsonRequest(input)
  7659  	req.SetContext(ctx)
  7660  	req.ApplyOptions(opts...)
  7661  	return out, req.Send()
  7662  }
  7663  
  7664  const opRemoveFacetFromObject = "RemoveFacetFromObject"
  7665  
  7666  // RemoveFacetFromObjectRequest generates a "aws/request.Request" representing the
  7667  // client's request for the RemoveFacetFromObject operation. The "output" return
  7668  // value will be populated with the request's response once the request completes
  7669  // successfully.
  7670  //
  7671  // Use "Send" method on the returned Request to send the API call to the service.
  7672  // the "output" return value is not valid until after Send returns without error.
  7673  //
  7674  // See RemoveFacetFromObject for more information on using the RemoveFacetFromObject
  7675  // API call, and error handling.
  7676  //
  7677  // This method is useful when you want to inject custom logic or configuration
  7678  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7679  //
  7680  //
  7681  //    // Example sending a request using the RemoveFacetFromObjectRequest method.
  7682  //    req, resp := client.RemoveFacetFromObjectRequest(params)
  7683  //
  7684  //    err := req.Send()
  7685  //    if err == nil { // resp is now filled
  7686  //        fmt.Println(resp)
  7687  //    }
  7688  //
  7689  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
  7690  func (c *CloudDirectory) RemoveFacetFromObjectRequest(input *RemoveFacetFromObjectInput) (req *request.Request, output *RemoveFacetFromObjectOutput) {
  7691  	op := &request.Operation{
  7692  		Name:       opRemoveFacetFromObject,
  7693  		HTTPMethod: "PUT",
  7694  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets/delete",
  7695  	}
  7696  
  7697  	if input == nil {
  7698  		input = &RemoveFacetFromObjectInput{}
  7699  	}
  7700  
  7701  	output = &RemoveFacetFromObjectOutput{}
  7702  	req = c.newRequest(op, input, output)
  7703  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7704  	return
  7705  }
  7706  
  7707  // RemoveFacetFromObject API operation for Amazon CloudDirectory.
  7708  //
  7709  // Removes the specified facet from the specified object.
  7710  //
  7711  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7712  // with awserr.Error's Code and Message methods to get detailed information about
  7713  // the error.
  7714  //
  7715  // See the AWS API reference guide for Amazon CloudDirectory's
  7716  // API operation RemoveFacetFromObject for usage and error information.
  7717  //
  7718  // Returned Error Types:
  7719  //   * InternalServiceException
  7720  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7721  //   be a transient error in which case you can retry your request until it succeeds.
  7722  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7723  //   site to see if there are any operational issues with the service.
  7724  //
  7725  //   * InvalidArnException
  7726  //   Indicates that the provided ARN value is not valid.
  7727  //
  7728  //   * RetryableConflictException
  7729  //   Occurs when a conflict with a previous successful write is detected. For
  7730  //   example, if a write operation occurs on an object and then an attempt is
  7731  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7732  //   may result. This generally occurs when the previous write did not have time
  7733  //   to propagate to the host serving the current request. A retry (with appropriate
  7734  //   backoff logic) is the recommended response to this exception.
  7735  //
  7736  //   * ValidationException
  7737  //   Indicates that your request is malformed in some manner. See the exception
  7738  //   message.
  7739  //
  7740  //   * LimitExceededException
  7741  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7742  //   for more information.
  7743  //
  7744  //   * AccessDeniedException
  7745  //   Access denied or directory not found. Either you don't have permissions for
  7746  //   this directory or the directory does not exist. Try calling ListDirectories
  7747  //   and check your permissions.
  7748  //
  7749  //   * DirectoryNotEnabledException
  7750  //   Operations are only permitted on enabled directories.
  7751  //
  7752  //   * ResourceNotFoundException
  7753  //   The specified resource could not be found.
  7754  //
  7755  //   * FacetValidationException
  7756  //   The Facet that you provided was not well formed or could not be validated
  7757  //   with the schema.
  7758  //
  7759  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
  7760  func (c *CloudDirectory) RemoveFacetFromObject(input *RemoveFacetFromObjectInput) (*RemoveFacetFromObjectOutput, error) {
  7761  	req, out := c.RemoveFacetFromObjectRequest(input)
  7762  	return out, req.Send()
  7763  }
  7764  
  7765  // RemoveFacetFromObjectWithContext is the same as RemoveFacetFromObject with the addition of
  7766  // the ability to pass a context and additional request options.
  7767  //
  7768  // See RemoveFacetFromObject for details on how to use this API operation.
  7769  //
  7770  // The context must be non-nil and will be used for request cancellation. If
  7771  // the context is nil a panic will occur. In the future the SDK may create
  7772  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7773  // for more information on using Contexts.
  7774  func (c *CloudDirectory) RemoveFacetFromObjectWithContext(ctx aws.Context, input *RemoveFacetFromObjectInput, opts ...request.Option) (*RemoveFacetFromObjectOutput, error) {
  7775  	req, out := c.RemoveFacetFromObjectRequest(input)
  7776  	req.SetContext(ctx)
  7777  	req.ApplyOptions(opts...)
  7778  	return out, req.Send()
  7779  }
  7780  
  7781  const opTagResource = "TagResource"
  7782  
  7783  // TagResourceRequest generates a "aws/request.Request" representing the
  7784  // client's request for the TagResource operation. The "output" return
  7785  // value will be populated with the request's response once the request completes
  7786  // successfully.
  7787  //
  7788  // Use "Send" method on the returned Request to send the API call to the service.
  7789  // the "output" return value is not valid until after Send returns without error.
  7790  //
  7791  // See TagResource for more information on using the TagResource
  7792  // API call, and error handling.
  7793  //
  7794  // This method is useful when you want to inject custom logic or configuration
  7795  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7796  //
  7797  //
  7798  //    // Example sending a request using the TagResourceRequest method.
  7799  //    req, resp := client.TagResourceRequest(params)
  7800  //
  7801  //    err := req.Send()
  7802  //    if err == nil { // resp is now filled
  7803  //        fmt.Println(resp)
  7804  //    }
  7805  //
  7806  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
  7807  func (c *CloudDirectory) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  7808  	op := &request.Operation{
  7809  		Name:       opTagResource,
  7810  		HTTPMethod: "PUT",
  7811  		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/add",
  7812  	}
  7813  
  7814  	if input == nil {
  7815  		input = &TagResourceInput{}
  7816  	}
  7817  
  7818  	output = &TagResourceOutput{}
  7819  	req = c.newRequest(op, input, output)
  7820  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7821  	return
  7822  }
  7823  
  7824  // TagResource API operation for Amazon CloudDirectory.
  7825  //
  7826  // An API operation for adding tags to a resource.
  7827  //
  7828  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7829  // with awserr.Error's Code and Message methods to get detailed information about
  7830  // the error.
  7831  //
  7832  // See the AWS API reference guide for Amazon CloudDirectory's
  7833  // API operation TagResource for usage and error information.
  7834  //
  7835  // Returned Error Types:
  7836  //   * InternalServiceException
  7837  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7838  //   be a transient error in which case you can retry your request until it succeeds.
  7839  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7840  //   site to see if there are any operational issues with the service.
  7841  //
  7842  //   * InvalidArnException
  7843  //   Indicates that the provided ARN value is not valid.
  7844  //
  7845  //   * RetryableConflictException
  7846  //   Occurs when a conflict with a previous successful write is detected. For
  7847  //   example, if a write operation occurs on an object and then an attempt is
  7848  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7849  //   may result. This generally occurs when the previous write did not have time
  7850  //   to propagate to the host serving the current request. A retry (with appropriate
  7851  //   backoff logic) is the recommended response to this exception.
  7852  //
  7853  //   * ValidationException
  7854  //   Indicates that your request is malformed in some manner. See the exception
  7855  //   message.
  7856  //
  7857  //   * LimitExceededException
  7858  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7859  //   for more information.
  7860  //
  7861  //   * AccessDeniedException
  7862  //   Access denied or directory not found. Either you don't have permissions for
  7863  //   this directory or the directory does not exist. Try calling ListDirectories
  7864  //   and check your permissions.
  7865  //
  7866  //   * ResourceNotFoundException
  7867  //   The specified resource could not be found.
  7868  //
  7869  //   * InvalidTaggingRequestException
  7870  //   Can occur for multiple reasons such as when you tag a resource that doesn’t
  7871  //   exist or if you specify a higher number of tags for a resource than the allowed
  7872  //   limit. Allowed limit is 50 tags per resource.
  7873  //
  7874  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
  7875  func (c *CloudDirectory) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  7876  	req, out := c.TagResourceRequest(input)
  7877  	return out, req.Send()
  7878  }
  7879  
  7880  // TagResourceWithContext is the same as TagResource with the addition of
  7881  // the ability to pass a context and additional request options.
  7882  //
  7883  // See TagResource for details on how to use this API operation.
  7884  //
  7885  // The context must be non-nil and will be used for request cancellation. If
  7886  // the context is nil a panic will occur. In the future the SDK may create
  7887  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7888  // for more information on using Contexts.
  7889  func (c *CloudDirectory) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  7890  	req, out := c.TagResourceRequest(input)
  7891  	req.SetContext(ctx)
  7892  	req.ApplyOptions(opts...)
  7893  	return out, req.Send()
  7894  }
  7895  
  7896  const opUntagResource = "UntagResource"
  7897  
  7898  // UntagResourceRequest generates a "aws/request.Request" representing the
  7899  // client's request for the UntagResource operation. The "output" return
  7900  // value will be populated with the request's response once the request completes
  7901  // successfully.
  7902  //
  7903  // Use "Send" method on the returned Request to send the API call to the service.
  7904  // the "output" return value is not valid until after Send returns without error.
  7905  //
  7906  // See UntagResource for more information on using the UntagResource
  7907  // API call, and error handling.
  7908  //
  7909  // This method is useful when you want to inject custom logic or configuration
  7910  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7911  //
  7912  //
  7913  //    // Example sending a request using the UntagResourceRequest method.
  7914  //    req, resp := client.UntagResourceRequest(params)
  7915  //
  7916  //    err := req.Send()
  7917  //    if err == nil { // resp is now filled
  7918  //        fmt.Println(resp)
  7919  //    }
  7920  //
  7921  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
  7922  func (c *CloudDirectory) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  7923  	op := &request.Operation{
  7924  		Name:       opUntagResource,
  7925  		HTTPMethod: "PUT",
  7926  		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/remove",
  7927  	}
  7928  
  7929  	if input == nil {
  7930  		input = &UntagResourceInput{}
  7931  	}
  7932  
  7933  	output = &UntagResourceOutput{}
  7934  	req = c.newRequest(op, input, output)
  7935  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7936  	return
  7937  }
  7938  
  7939  // UntagResource API operation for Amazon CloudDirectory.
  7940  //
  7941  // An API operation for removing tags from a resource.
  7942  //
  7943  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7944  // with awserr.Error's Code and Message methods to get detailed information about
  7945  // the error.
  7946  //
  7947  // See the AWS API reference guide for Amazon CloudDirectory's
  7948  // API operation UntagResource for usage and error information.
  7949  //
  7950  // Returned Error Types:
  7951  //   * InternalServiceException
  7952  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  7953  //   be a transient error in which case you can retry your request until it succeeds.
  7954  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  7955  //   site to see if there are any operational issues with the service.
  7956  //
  7957  //   * InvalidArnException
  7958  //   Indicates that the provided ARN value is not valid.
  7959  //
  7960  //   * RetryableConflictException
  7961  //   Occurs when a conflict with a previous successful write is detected. For
  7962  //   example, if a write operation occurs on an object and then an attempt is
  7963  //   made to read the object using “SERIALIZABLE” consistency, this exception
  7964  //   may result. This generally occurs when the previous write did not have time
  7965  //   to propagate to the host serving the current request. A retry (with appropriate
  7966  //   backoff logic) is the recommended response to this exception.
  7967  //
  7968  //   * ValidationException
  7969  //   Indicates that your request is malformed in some manner. See the exception
  7970  //   message.
  7971  //
  7972  //   * LimitExceededException
  7973  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  7974  //   for more information.
  7975  //
  7976  //   * AccessDeniedException
  7977  //   Access denied or directory not found. Either you don't have permissions for
  7978  //   this directory or the directory does not exist. Try calling ListDirectories
  7979  //   and check your permissions.
  7980  //
  7981  //   * ResourceNotFoundException
  7982  //   The specified resource could not be found.
  7983  //
  7984  //   * InvalidTaggingRequestException
  7985  //   Can occur for multiple reasons such as when you tag a resource that doesn’t
  7986  //   exist or if you specify a higher number of tags for a resource than the allowed
  7987  //   limit. Allowed limit is 50 tags per resource.
  7988  //
  7989  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
  7990  func (c *CloudDirectory) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  7991  	req, out := c.UntagResourceRequest(input)
  7992  	return out, req.Send()
  7993  }
  7994  
  7995  // UntagResourceWithContext is the same as UntagResource with the addition of
  7996  // the ability to pass a context and additional request options.
  7997  //
  7998  // See UntagResource for details on how to use this API operation.
  7999  //
  8000  // The context must be non-nil and will be used for request cancellation. If
  8001  // the context is nil a panic will occur. In the future the SDK may create
  8002  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8003  // for more information on using Contexts.
  8004  func (c *CloudDirectory) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  8005  	req, out := c.UntagResourceRequest(input)
  8006  	req.SetContext(ctx)
  8007  	req.ApplyOptions(opts...)
  8008  	return out, req.Send()
  8009  }
  8010  
  8011  const opUpdateFacet = "UpdateFacet"
  8012  
  8013  // UpdateFacetRequest generates a "aws/request.Request" representing the
  8014  // client's request for the UpdateFacet operation. The "output" return
  8015  // value will be populated with the request's response once the request completes
  8016  // successfully.
  8017  //
  8018  // Use "Send" method on the returned Request to send the API call to the service.
  8019  // the "output" return value is not valid until after Send returns without error.
  8020  //
  8021  // See UpdateFacet for more information on using the UpdateFacet
  8022  // API call, and error handling.
  8023  //
  8024  // This method is useful when you want to inject custom logic or configuration
  8025  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8026  //
  8027  //
  8028  //    // Example sending a request using the UpdateFacetRequest method.
  8029  //    req, resp := client.UpdateFacetRequest(params)
  8030  //
  8031  //    err := req.Send()
  8032  //    if err == nil { // resp is now filled
  8033  //        fmt.Println(resp)
  8034  //    }
  8035  //
  8036  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
  8037  func (c *CloudDirectory) UpdateFacetRequest(input *UpdateFacetInput) (req *request.Request, output *UpdateFacetOutput) {
  8038  	op := &request.Operation{
  8039  		Name:       opUpdateFacet,
  8040  		HTTPMethod: "PUT",
  8041  		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
  8042  	}
  8043  
  8044  	if input == nil {
  8045  		input = &UpdateFacetInput{}
  8046  	}
  8047  
  8048  	output = &UpdateFacetOutput{}
  8049  	req = c.newRequest(op, input, output)
  8050  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  8051  	return
  8052  }
  8053  
  8054  // UpdateFacet API operation for Amazon CloudDirectory.
  8055  //
  8056  // Does the following:
  8057  //
  8058  // Adds new Attributes, Rules, or ObjectTypes.
  8059  //
  8060  // Updates existing Attributes, Rules, or ObjectTypes.
  8061  //
  8062  // Deletes existing Attributes, Rules, or ObjectTypes.
  8063  //
  8064  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8065  // with awserr.Error's Code and Message methods to get detailed information about
  8066  // the error.
  8067  //
  8068  // See the AWS API reference guide for Amazon CloudDirectory's
  8069  // API operation UpdateFacet for usage and error information.
  8070  //
  8071  // Returned Error Types:
  8072  //   * InternalServiceException
  8073  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8074  //   be a transient error in which case you can retry your request until it succeeds.
  8075  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8076  //   site to see if there are any operational issues with the service.
  8077  //
  8078  //   * InvalidArnException
  8079  //   Indicates that the provided ARN value is not valid.
  8080  //
  8081  //   * RetryableConflictException
  8082  //   Occurs when a conflict with a previous successful write is detected. For
  8083  //   example, if a write operation occurs on an object and then an attempt is
  8084  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8085  //   may result. This generally occurs when the previous write did not have time
  8086  //   to propagate to the host serving the current request. A retry (with appropriate
  8087  //   backoff logic) is the recommended response to this exception.
  8088  //
  8089  //   * ValidationException
  8090  //   Indicates that your request is malformed in some manner. See the exception
  8091  //   message.
  8092  //
  8093  //   * LimitExceededException
  8094  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8095  //   for more information.
  8096  //
  8097  //   * AccessDeniedException
  8098  //   Access denied or directory not found. Either you don't have permissions for
  8099  //   this directory or the directory does not exist. Try calling ListDirectories
  8100  //   and check your permissions.
  8101  //
  8102  //   * InvalidFacetUpdateException
  8103  //   An attempt to modify a Facet resulted in an invalid schema exception.
  8104  //
  8105  //   * FacetValidationException
  8106  //   The Facet that you provided was not well formed or could not be validated
  8107  //   with the schema.
  8108  //
  8109  //   * ResourceNotFoundException
  8110  //   The specified resource could not be found.
  8111  //
  8112  //   * FacetNotFoundException
  8113  //   The specified Facet could not be found.
  8114  //
  8115  //   * InvalidRuleException
  8116  //   Occurs when any of the rule parameter keys or values are invalid.
  8117  //
  8118  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
  8119  func (c *CloudDirectory) UpdateFacet(input *UpdateFacetInput) (*UpdateFacetOutput, error) {
  8120  	req, out := c.UpdateFacetRequest(input)
  8121  	return out, req.Send()
  8122  }
  8123  
  8124  // UpdateFacetWithContext is the same as UpdateFacet with the addition of
  8125  // the ability to pass a context and additional request options.
  8126  //
  8127  // See UpdateFacet for details on how to use this API operation.
  8128  //
  8129  // The context must be non-nil and will be used for request cancellation. If
  8130  // the context is nil a panic will occur. In the future the SDK may create
  8131  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8132  // for more information on using Contexts.
  8133  func (c *CloudDirectory) UpdateFacetWithContext(ctx aws.Context, input *UpdateFacetInput, opts ...request.Option) (*UpdateFacetOutput, error) {
  8134  	req, out := c.UpdateFacetRequest(input)
  8135  	req.SetContext(ctx)
  8136  	req.ApplyOptions(opts...)
  8137  	return out, req.Send()
  8138  }
  8139  
  8140  const opUpdateLinkAttributes = "UpdateLinkAttributes"
  8141  
  8142  // UpdateLinkAttributesRequest generates a "aws/request.Request" representing the
  8143  // client's request for the UpdateLinkAttributes operation. The "output" return
  8144  // value will be populated with the request's response once the request completes
  8145  // successfully.
  8146  //
  8147  // Use "Send" method on the returned Request to send the API call to the service.
  8148  // the "output" return value is not valid until after Send returns without error.
  8149  //
  8150  // See UpdateLinkAttributes for more information on using the UpdateLinkAttributes
  8151  // API call, and error handling.
  8152  //
  8153  // This method is useful when you want to inject custom logic or configuration
  8154  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8155  //
  8156  //
  8157  //    // Example sending a request using the UpdateLinkAttributesRequest method.
  8158  //    req, resp := client.UpdateLinkAttributesRequest(params)
  8159  //
  8160  //    err := req.Send()
  8161  //    if err == nil { // resp is now filled
  8162  //        fmt.Println(resp)
  8163  //    }
  8164  //
  8165  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
  8166  func (c *CloudDirectory) UpdateLinkAttributesRequest(input *UpdateLinkAttributesInput) (req *request.Request, output *UpdateLinkAttributesOutput) {
  8167  	op := &request.Operation{
  8168  		Name:       opUpdateLinkAttributes,
  8169  		HTTPMethod: "POST",
  8170  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/update",
  8171  	}
  8172  
  8173  	if input == nil {
  8174  		input = &UpdateLinkAttributesInput{}
  8175  	}
  8176  
  8177  	output = &UpdateLinkAttributesOutput{}
  8178  	req = c.newRequest(op, input, output)
  8179  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  8180  	return
  8181  }
  8182  
  8183  // UpdateLinkAttributes API operation for Amazon CloudDirectory.
  8184  //
  8185  // Updates a given typed link’s attributes. Attributes to be updated must
  8186  // not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder.
  8187  //
  8188  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8189  // with awserr.Error's Code and Message methods to get detailed information about
  8190  // the error.
  8191  //
  8192  // See the AWS API reference guide for Amazon CloudDirectory's
  8193  // API operation UpdateLinkAttributes for usage and error information.
  8194  //
  8195  // Returned Error Types:
  8196  //   * InternalServiceException
  8197  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8198  //   be a transient error in which case you can retry your request until it succeeds.
  8199  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8200  //   site to see if there are any operational issues with the service.
  8201  //
  8202  //   * InvalidArnException
  8203  //   Indicates that the provided ARN value is not valid.
  8204  //
  8205  //   * RetryableConflictException
  8206  //   Occurs when a conflict with a previous successful write is detected. For
  8207  //   example, if a write operation occurs on an object and then an attempt is
  8208  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8209  //   may result. This generally occurs when the previous write did not have time
  8210  //   to propagate to the host serving the current request. A retry (with appropriate
  8211  //   backoff logic) is the recommended response to this exception.
  8212  //
  8213  //   * ValidationException
  8214  //   Indicates that your request is malformed in some manner. See the exception
  8215  //   message.
  8216  //
  8217  //   * LimitExceededException
  8218  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8219  //   for more information.
  8220  //
  8221  //   * AccessDeniedException
  8222  //   Access denied or directory not found. Either you don't have permissions for
  8223  //   this directory or the directory does not exist. Try calling ListDirectories
  8224  //   and check your permissions.
  8225  //
  8226  //   * DirectoryNotEnabledException
  8227  //   Operations are only permitted on enabled directories.
  8228  //
  8229  //   * ResourceNotFoundException
  8230  //   The specified resource could not be found.
  8231  //
  8232  //   * FacetValidationException
  8233  //   The Facet that you provided was not well formed or could not be validated
  8234  //   with the schema.
  8235  //
  8236  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
  8237  func (c *CloudDirectory) UpdateLinkAttributes(input *UpdateLinkAttributesInput) (*UpdateLinkAttributesOutput, error) {
  8238  	req, out := c.UpdateLinkAttributesRequest(input)
  8239  	return out, req.Send()
  8240  }
  8241  
  8242  // UpdateLinkAttributesWithContext is the same as UpdateLinkAttributes with the addition of
  8243  // the ability to pass a context and additional request options.
  8244  //
  8245  // See UpdateLinkAttributes for details on how to use this API operation.
  8246  //
  8247  // The context must be non-nil and will be used for request cancellation. If
  8248  // the context is nil a panic will occur. In the future the SDK may create
  8249  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8250  // for more information on using Contexts.
  8251  func (c *CloudDirectory) UpdateLinkAttributesWithContext(ctx aws.Context, input *UpdateLinkAttributesInput, opts ...request.Option) (*UpdateLinkAttributesOutput, error) {
  8252  	req, out := c.UpdateLinkAttributesRequest(input)
  8253  	req.SetContext(ctx)
  8254  	req.ApplyOptions(opts...)
  8255  	return out, req.Send()
  8256  }
  8257  
  8258  const opUpdateObjectAttributes = "UpdateObjectAttributes"
  8259  
  8260  // UpdateObjectAttributesRequest generates a "aws/request.Request" representing the
  8261  // client's request for the UpdateObjectAttributes operation. The "output" return
  8262  // value will be populated with the request's response once the request completes
  8263  // successfully.
  8264  //
  8265  // Use "Send" method on the returned Request to send the API call to the service.
  8266  // the "output" return value is not valid until after Send returns without error.
  8267  //
  8268  // See UpdateObjectAttributes for more information on using the UpdateObjectAttributes
  8269  // API call, and error handling.
  8270  //
  8271  // This method is useful when you want to inject custom logic or configuration
  8272  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8273  //
  8274  //
  8275  //    // Example sending a request using the UpdateObjectAttributesRequest method.
  8276  //    req, resp := client.UpdateObjectAttributesRequest(params)
  8277  //
  8278  //    err := req.Send()
  8279  //    if err == nil { // resp is now filled
  8280  //        fmt.Println(resp)
  8281  //    }
  8282  //
  8283  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
  8284  func (c *CloudDirectory) UpdateObjectAttributesRequest(input *UpdateObjectAttributesInput) (req *request.Request, output *UpdateObjectAttributesOutput) {
  8285  	op := &request.Operation{
  8286  		Name:       opUpdateObjectAttributes,
  8287  		HTTPMethod: "PUT",
  8288  		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/update",
  8289  	}
  8290  
  8291  	if input == nil {
  8292  		input = &UpdateObjectAttributesInput{}
  8293  	}
  8294  
  8295  	output = &UpdateObjectAttributesOutput{}
  8296  	req = c.newRequest(op, input, output)
  8297  	return
  8298  }
  8299  
  8300  // UpdateObjectAttributes API operation for Amazon CloudDirectory.
  8301  //
  8302  // Updates a given object's attributes.
  8303  //
  8304  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8305  // with awserr.Error's Code and Message methods to get detailed information about
  8306  // the error.
  8307  //
  8308  // See the AWS API reference guide for Amazon CloudDirectory's
  8309  // API operation UpdateObjectAttributes for usage and error information.
  8310  //
  8311  // Returned Error Types:
  8312  //   * InternalServiceException
  8313  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8314  //   be a transient error in which case you can retry your request until it succeeds.
  8315  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8316  //   site to see if there are any operational issues with the service.
  8317  //
  8318  //   * InvalidArnException
  8319  //   Indicates that the provided ARN value is not valid.
  8320  //
  8321  //   * RetryableConflictException
  8322  //   Occurs when a conflict with a previous successful write is detected. For
  8323  //   example, if a write operation occurs on an object and then an attempt is
  8324  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8325  //   may result. This generally occurs when the previous write did not have time
  8326  //   to propagate to the host serving the current request. A retry (with appropriate
  8327  //   backoff logic) is the recommended response to this exception.
  8328  //
  8329  //   * ValidationException
  8330  //   Indicates that your request is malformed in some manner. See the exception
  8331  //   message.
  8332  //
  8333  //   * LimitExceededException
  8334  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8335  //   for more information.
  8336  //
  8337  //   * AccessDeniedException
  8338  //   Access denied or directory not found. Either you don't have permissions for
  8339  //   this directory or the directory does not exist. Try calling ListDirectories
  8340  //   and check your permissions.
  8341  //
  8342  //   * DirectoryNotEnabledException
  8343  //   Operations are only permitted on enabled directories.
  8344  //
  8345  //   * ResourceNotFoundException
  8346  //   The specified resource could not be found.
  8347  //
  8348  //   * LinkNameAlreadyInUseException
  8349  //   Indicates that a link could not be created due to a naming conflict. Choose
  8350  //   a different name and then try again.
  8351  //
  8352  //   * FacetValidationException
  8353  //   The Facet that you provided was not well formed or could not be validated
  8354  //   with the schema.
  8355  //
  8356  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
  8357  func (c *CloudDirectory) UpdateObjectAttributes(input *UpdateObjectAttributesInput) (*UpdateObjectAttributesOutput, error) {
  8358  	req, out := c.UpdateObjectAttributesRequest(input)
  8359  	return out, req.Send()
  8360  }
  8361  
  8362  // UpdateObjectAttributesWithContext is the same as UpdateObjectAttributes with the addition of
  8363  // the ability to pass a context and additional request options.
  8364  //
  8365  // See UpdateObjectAttributes for details on how to use this API operation.
  8366  //
  8367  // The context must be non-nil and will be used for request cancellation. If
  8368  // the context is nil a panic will occur. In the future the SDK may create
  8369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8370  // for more information on using Contexts.
  8371  func (c *CloudDirectory) UpdateObjectAttributesWithContext(ctx aws.Context, input *UpdateObjectAttributesInput, opts ...request.Option) (*UpdateObjectAttributesOutput, error) {
  8372  	req, out := c.UpdateObjectAttributesRequest(input)
  8373  	req.SetContext(ctx)
  8374  	req.ApplyOptions(opts...)
  8375  	return out, req.Send()
  8376  }
  8377  
  8378  const opUpdateSchema = "UpdateSchema"
  8379  
  8380  // UpdateSchemaRequest generates a "aws/request.Request" representing the
  8381  // client's request for the UpdateSchema operation. The "output" return
  8382  // value will be populated with the request's response once the request completes
  8383  // successfully.
  8384  //
  8385  // Use "Send" method on the returned Request to send the API call to the service.
  8386  // the "output" return value is not valid until after Send returns without error.
  8387  //
  8388  // See UpdateSchema for more information on using the UpdateSchema
  8389  // API call, and error handling.
  8390  //
  8391  // This method is useful when you want to inject custom logic or configuration
  8392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8393  //
  8394  //
  8395  //    // Example sending a request using the UpdateSchemaRequest method.
  8396  //    req, resp := client.UpdateSchemaRequest(params)
  8397  //
  8398  //    err := req.Send()
  8399  //    if err == nil { // resp is now filled
  8400  //        fmt.Println(resp)
  8401  //    }
  8402  //
  8403  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
  8404  func (c *CloudDirectory) UpdateSchemaRequest(input *UpdateSchemaInput) (req *request.Request, output *UpdateSchemaOutput) {
  8405  	op := &request.Operation{
  8406  		Name:       opUpdateSchema,
  8407  		HTTPMethod: "PUT",
  8408  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/update",
  8409  	}
  8410  
  8411  	if input == nil {
  8412  		input = &UpdateSchemaInput{}
  8413  	}
  8414  
  8415  	output = &UpdateSchemaOutput{}
  8416  	req = c.newRequest(op, input, output)
  8417  	return
  8418  }
  8419  
  8420  // UpdateSchema API operation for Amazon CloudDirectory.
  8421  //
  8422  // Updates the schema name with a new name. Only development schema names can
  8423  // be updated.
  8424  //
  8425  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8426  // with awserr.Error's Code and Message methods to get detailed information about
  8427  // the error.
  8428  //
  8429  // See the AWS API reference guide for Amazon CloudDirectory's
  8430  // API operation UpdateSchema for usage and error information.
  8431  //
  8432  // Returned Error Types:
  8433  //   * InternalServiceException
  8434  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8435  //   be a transient error in which case you can retry your request until it succeeds.
  8436  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8437  //   site to see if there are any operational issues with the service.
  8438  //
  8439  //   * InvalidArnException
  8440  //   Indicates that the provided ARN value is not valid.
  8441  //
  8442  //   * RetryableConflictException
  8443  //   Occurs when a conflict with a previous successful write is detected. For
  8444  //   example, if a write operation occurs on an object and then an attempt is
  8445  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8446  //   may result. This generally occurs when the previous write did not have time
  8447  //   to propagate to the host serving the current request. A retry (with appropriate
  8448  //   backoff logic) is the recommended response to this exception.
  8449  //
  8450  //   * ValidationException
  8451  //   Indicates that your request is malformed in some manner. See the exception
  8452  //   message.
  8453  //
  8454  //   * LimitExceededException
  8455  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8456  //   for more information.
  8457  //
  8458  //   * AccessDeniedException
  8459  //   Access denied or directory not found. Either you don't have permissions for
  8460  //   this directory or the directory does not exist. Try calling ListDirectories
  8461  //   and check your permissions.
  8462  //
  8463  //   * ResourceNotFoundException
  8464  //   The specified resource could not be found.
  8465  //
  8466  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
  8467  func (c *CloudDirectory) UpdateSchema(input *UpdateSchemaInput) (*UpdateSchemaOutput, error) {
  8468  	req, out := c.UpdateSchemaRequest(input)
  8469  	return out, req.Send()
  8470  }
  8471  
  8472  // UpdateSchemaWithContext is the same as UpdateSchema with the addition of
  8473  // the ability to pass a context and additional request options.
  8474  //
  8475  // See UpdateSchema for details on how to use this API operation.
  8476  //
  8477  // The context must be non-nil and will be used for request cancellation. If
  8478  // the context is nil a panic will occur. In the future the SDK may create
  8479  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8480  // for more information on using Contexts.
  8481  func (c *CloudDirectory) UpdateSchemaWithContext(ctx aws.Context, input *UpdateSchemaInput, opts ...request.Option) (*UpdateSchemaOutput, error) {
  8482  	req, out := c.UpdateSchemaRequest(input)
  8483  	req.SetContext(ctx)
  8484  	req.ApplyOptions(opts...)
  8485  	return out, req.Send()
  8486  }
  8487  
  8488  const opUpdateTypedLinkFacet = "UpdateTypedLinkFacet"
  8489  
  8490  // UpdateTypedLinkFacetRequest generates a "aws/request.Request" representing the
  8491  // client's request for the UpdateTypedLinkFacet operation. The "output" return
  8492  // value will be populated with the request's response once the request completes
  8493  // successfully.
  8494  //
  8495  // Use "Send" method on the returned Request to send the API call to the service.
  8496  // the "output" return value is not valid until after Send returns without error.
  8497  //
  8498  // See UpdateTypedLinkFacet for more information on using the UpdateTypedLinkFacet
  8499  // API call, and error handling.
  8500  //
  8501  // This method is useful when you want to inject custom logic or configuration
  8502  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8503  //
  8504  //
  8505  //    // Example sending a request using the UpdateTypedLinkFacetRequest method.
  8506  //    req, resp := client.UpdateTypedLinkFacetRequest(params)
  8507  //
  8508  //    err := req.Send()
  8509  //    if err == nil { // resp is now filled
  8510  //        fmt.Println(resp)
  8511  //    }
  8512  //
  8513  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
  8514  func (c *CloudDirectory) UpdateTypedLinkFacetRequest(input *UpdateTypedLinkFacetInput) (req *request.Request, output *UpdateTypedLinkFacetOutput) {
  8515  	op := &request.Operation{
  8516  		Name:       opUpdateTypedLinkFacet,
  8517  		HTTPMethod: "PUT",
  8518  		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet",
  8519  	}
  8520  
  8521  	if input == nil {
  8522  		input = &UpdateTypedLinkFacetInput{}
  8523  	}
  8524  
  8525  	output = &UpdateTypedLinkFacetOutput{}
  8526  	req = c.newRequest(op, input, output)
  8527  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  8528  	return
  8529  }
  8530  
  8531  // UpdateTypedLinkFacet API operation for Amazon CloudDirectory.
  8532  //
  8533  // Updates a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
  8534  //
  8535  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8536  // with awserr.Error's Code and Message methods to get detailed information about
  8537  // the error.
  8538  //
  8539  // See the AWS API reference guide for Amazon CloudDirectory's
  8540  // API operation UpdateTypedLinkFacet for usage and error information.
  8541  //
  8542  // Returned Error Types:
  8543  //   * InternalServiceException
  8544  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8545  //   be a transient error in which case you can retry your request until it succeeds.
  8546  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8547  //   site to see if there are any operational issues with the service.
  8548  //
  8549  //   * InvalidArnException
  8550  //   Indicates that the provided ARN value is not valid.
  8551  //
  8552  //   * RetryableConflictException
  8553  //   Occurs when a conflict with a previous successful write is detected. For
  8554  //   example, if a write operation occurs on an object and then an attempt is
  8555  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8556  //   may result. This generally occurs when the previous write did not have time
  8557  //   to propagate to the host serving the current request. A retry (with appropriate
  8558  //   backoff logic) is the recommended response to this exception.
  8559  //
  8560  //   * ValidationException
  8561  //   Indicates that your request is malformed in some manner. See the exception
  8562  //   message.
  8563  //
  8564  //   * LimitExceededException
  8565  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8566  //   for more information.
  8567  //
  8568  //   * AccessDeniedException
  8569  //   Access denied or directory not found. Either you don't have permissions for
  8570  //   this directory or the directory does not exist. Try calling ListDirectories
  8571  //   and check your permissions.
  8572  //
  8573  //   * FacetValidationException
  8574  //   The Facet that you provided was not well formed or could not be validated
  8575  //   with the schema.
  8576  //
  8577  //   * InvalidFacetUpdateException
  8578  //   An attempt to modify a Facet resulted in an invalid schema exception.
  8579  //
  8580  //   * ResourceNotFoundException
  8581  //   The specified resource could not be found.
  8582  //
  8583  //   * FacetNotFoundException
  8584  //   The specified Facet could not be found.
  8585  //
  8586  //   * InvalidRuleException
  8587  //   Occurs when any of the rule parameter keys or values are invalid.
  8588  //
  8589  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
  8590  func (c *CloudDirectory) UpdateTypedLinkFacet(input *UpdateTypedLinkFacetInput) (*UpdateTypedLinkFacetOutput, error) {
  8591  	req, out := c.UpdateTypedLinkFacetRequest(input)
  8592  	return out, req.Send()
  8593  }
  8594  
  8595  // UpdateTypedLinkFacetWithContext is the same as UpdateTypedLinkFacet with the addition of
  8596  // the ability to pass a context and additional request options.
  8597  //
  8598  // See UpdateTypedLinkFacet for details on how to use this API operation.
  8599  //
  8600  // The context must be non-nil and will be used for request cancellation. If
  8601  // the context is nil a panic will occur. In the future the SDK may create
  8602  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8603  // for more information on using Contexts.
  8604  func (c *CloudDirectory) UpdateTypedLinkFacetWithContext(ctx aws.Context, input *UpdateTypedLinkFacetInput, opts ...request.Option) (*UpdateTypedLinkFacetOutput, error) {
  8605  	req, out := c.UpdateTypedLinkFacetRequest(input)
  8606  	req.SetContext(ctx)
  8607  	req.ApplyOptions(opts...)
  8608  	return out, req.Send()
  8609  }
  8610  
  8611  const opUpgradeAppliedSchema = "UpgradeAppliedSchema"
  8612  
  8613  // UpgradeAppliedSchemaRequest generates a "aws/request.Request" representing the
  8614  // client's request for the UpgradeAppliedSchema operation. The "output" return
  8615  // value will be populated with the request's response once the request completes
  8616  // successfully.
  8617  //
  8618  // Use "Send" method on the returned Request to send the API call to the service.
  8619  // the "output" return value is not valid until after Send returns without error.
  8620  //
  8621  // See UpgradeAppliedSchema for more information on using the UpgradeAppliedSchema
  8622  // API call, and error handling.
  8623  //
  8624  // This method is useful when you want to inject custom logic or configuration
  8625  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8626  //
  8627  //
  8628  //    // Example sending a request using the UpgradeAppliedSchemaRequest method.
  8629  //    req, resp := client.UpgradeAppliedSchemaRequest(params)
  8630  //
  8631  //    err := req.Send()
  8632  //    if err == nil { // resp is now filled
  8633  //        fmt.Println(resp)
  8634  //    }
  8635  //
  8636  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
  8637  func (c *CloudDirectory) UpgradeAppliedSchemaRequest(input *UpgradeAppliedSchemaInput) (req *request.Request, output *UpgradeAppliedSchemaOutput) {
  8638  	op := &request.Operation{
  8639  		Name:       opUpgradeAppliedSchema,
  8640  		HTTPMethod: "PUT",
  8641  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
  8642  	}
  8643  
  8644  	if input == nil {
  8645  		input = &UpgradeAppliedSchemaInput{}
  8646  	}
  8647  
  8648  	output = &UpgradeAppliedSchemaOutput{}
  8649  	req = c.newRequest(op, input, output)
  8650  	return
  8651  }
  8652  
  8653  // UpgradeAppliedSchema API operation for Amazon CloudDirectory.
  8654  //
  8655  // Upgrades a single directory in-place using the PublishedSchemaArn with schema
  8656  // updates found in MinorVersion. Backwards-compatible minor version upgrades
  8657  // are instantaneously available for readers on all objects in the directory.
  8658  // Note: This is a synchronous API call and upgrades only one schema on a given
  8659  // directory per call. To upgrade multiple directories from one schema, you
  8660  // would need to call this API on each directory.
  8661  //
  8662  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8663  // with awserr.Error's Code and Message methods to get detailed information about
  8664  // the error.
  8665  //
  8666  // See the AWS API reference guide for Amazon CloudDirectory's
  8667  // API operation UpgradeAppliedSchema for usage and error information.
  8668  //
  8669  // Returned Error Types:
  8670  //   * InternalServiceException
  8671  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8672  //   be a transient error in which case you can retry your request until it succeeds.
  8673  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8674  //   site to see if there are any operational issues with the service.
  8675  //
  8676  //   * InvalidArnException
  8677  //   Indicates that the provided ARN value is not valid.
  8678  //
  8679  //   * RetryableConflictException
  8680  //   Occurs when a conflict with a previous successful write is detected. For
  8681  //   example, if a write operation occurs on an object and then an attempt is
  8682  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8683  //   may result. This generally occurs when the previous write did not have time
  8684  //   to propagate to the host serving the current request. A retry (with appropriate
  8685  //   backoff logic) is the recommended response to this exception.
  8686  //
  8687  //   * ValidationException
  8688  //   Indicates that your request is malformed in some manner. See the exception
  8689  //   message.
  8690  //
  8691  //   * IncompatibleSchemaException
  8692  //   Indicates a failure occurred while performing a check for backward compatibility
  8693  //   between the specified schema and the schema that is currently applied to
  8694  //   the directory.
  8695  //
  8696  //   * AccessDeniedException
  8697  //   Access denied or directory not found. Either you don't have permissions for
  8698  //   this directory or the directory does not exist. Try calling ListDirectories
  8699  //   and check your permissions.
  8700  //
  8701  //   * ResourceNotFoundException
  8702  //   The specified resource could not be found.
  8703  //
  8704  //   * InvalidAttachmentException
  8705  //   Indicates that an attempt to make an attachment was invalid. For example,
  8706  //   attaching two nodes with a link type that is not applicable to the nodes
  8707  //   or attempting to apply a schema to a directory a second time.
  8708  //
  8709  //   * SchemaAlreadyExistsException
  8710  //   Indicates that a schema could not be created due to a naming conflict. Please
  8711  //   select a different name and then try again.
  8712  //
  8713  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
  8714  func (c *CloudDirectory) UpgradeAppliedSchema(input *UpgradeAppliedSchemaInput) (*UpgradeAppliedSchemaOutput, error) {
  8715  	req, out := c.UpgradeAppliedSchemaRequest(input)
  8716  	return out, req.Send()
  8717  }
  8718  
  8719  // UpgradeAppliedSchemaWithContext is the same as UpgradeAppliedSchema with the addition of
  8720  // the ability to pass a context and additional request options.
  8721  //
  8722  // See UpgradeAppliedSchema for details on how to use this API operation.
  8723  //
  8724  // The context must be non-nil and will be used for request cancellation. If
  8725  // the context is nil a panic will occur. In the future the SDK may create
  8726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8727  // for more information on using Contexts.
  8728  func (c *CloudDirectory) UpgradeAppliedSchemaWithContext(ctx aws.Context, input *UpgradeAppliedSchemaInput, opts ...request.Option) (*UpgradeAppliedSchemaOutput, error) {
  8729  	req, out := c.UpgradeAppliedSchemaRequest(input)
  8730  	req.SetContext(ctx)
  8731  	req.ApplyOptions(opts...)
  8732  	return out, req.Send()
  8733  }
  8734  
  8735  const opUpgradePublishedSchema = "UpgradePublishedSchema"
  8736  
  8737  // UpgradePublishedSchemaRequest generates a "aws/request.Request" representing the
  8738  // client's request for the UpgradePublishedSchema operation. The "output" return
  8739  // value will be populated with the request's response once the request completes
  8740  // successfully.
  8741  //
  8742  // Use "Send" method on the returned Request to send the API call to the service.
  8743  // the "output" return value is not valid until after Send returns without error.
  8744  //
  8745  // See UpgradePublishedSchema for more information on using the UpgradePublishedSchema
  8746  // API call, and error handling.
  8747  //
  8748  // This method is useful when you want to inject custom logic or configuration
  8749  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8750  //
  8751  //
  8752  //    // Example sending a request using the UpgradePublishedSchemaRequest method.
  8753  //    req, resp := client.UpgradePublishedSchemaRequest(params)
  8754  //
  8755  //    err := req.Send()
  8756  //    if err == nil { // resp is now filled
  8757  //        fmt.Println(resp)
  8758  //    }
  8759  //
  8760  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
  8761  func (c *CloudDirectory) UpgradePublishedSchemaRequest(input *UpgradePublishedSchemaInput) (req *request.Request, output *UpgradePublishedSchemaOutput) {
  8762  	op := &request.Operation{
  8763  		Name:       opUpgradePublishedSchema,
  8764  		HTTPMethod: "PUT",
  8765  		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
  8766  	}
  8767  
  8768  	if input == nil {
  8769  		input = &UpgradePublishedSchemaInput{}
  8770  	}
  8771  
  8772  	output = &UpgradePublishedSchemaOutput{}
  8773  	req = c.newRequest(op, input, output)
  8774  	return
  8775  }
  8776  
  8777  // UpgradePublishedSchema API operation for Amazon CloudDirectory.
  8778  //
  8779  // Upgrades a published schema under a new minor version revision using the
  8780  // current contents of DevelopmentSchemaArn.
  8781  //
  8782  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8783  // with awserr.Error's Code and Message methods to get detailed information about
  8784  // the error.
  8785  //
  8786  // See the AWS API reference guide for Amazon CloudDirectory's
  8787  // API operation UpgradePublishedSchema for usage and error information.
  8788  //
  8789  // Returned Error Types:
  8790  //   * InternalServiceException
  8791  //   Indicates a problem that must be resolved by Amazon Web Services. This might
  8792  //   be a transient error in which case you can retry your request until it succeeds.
  8793  //   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
  8794  //   site to see if there are any operational issues with the service.
  8795  //
  8796  //   * InvalidArnException
  8797  //   Indicates that the provided ARN value is not valid.
  8798  //
  8799  //   * RetryableConflictException
  8800  //   Occurs when a conflict with a previous successful write is detected. For
  8801  //   example, if a write operation occurs on an object and then an attempt is
  8802  //   made to read the object using “SERIALIZABLE” consistency, this exception
  8803  //   may result. This generally occurs when the previous write did not have time
  8804  //   to propagate to the host serving the current request. A retry (with appropriate
  8805  //   backoff logic) is the recommended response to this exception.
  8806  //
  8807  //   * ValidationException
  8808  //   Indicates that your request is malformed in some manner. See the exception
  8809  //   message.
  8810  //
  8811  //   * IncompatibleSchemaException
  8812  //   Indicates a failure occurred while performing a check for backward compatibility
  8813  //   between the specified schema and the schema that is currently applied to
  8814  //   the directory.
  8815  //
  8816  //   * AccessDeniedException
  8817  //   Access denied or directory not found. Either you don't have permissions for
  8818  //   this directory or the directory does not exist. Try calling ListDirectories
  8819  //   and check your permissions.
  8820  //
  8821  //   * ResourceNotFoundException
  8822  //   The specified resource could not be found.
  8823  //
  8824  //   * InvalidAttachmentException
  8825  //   Indicates that an attempt to make an attachment was invalid. For example,
  8826  //   attaching two nodes with a link type that is not applicable to the nodes
  8827  //   or attempting to apply a schema to a directory a second time.
  8828  //
  8829  //   * LimitExceededException
  8830  //   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
  8831  //   for more information.
  8832  //
  8833  // See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
  8834  func (c *CloudDirectory) UpgradePublishedSchema(input *UpgradePublishedSchemaInput) (*UpgradePublishedSchemaOutput, error) {
  8835  	req, out := c.UpgradePublishedSchemaRequest(input)
  8836  	return out, req.Send()
  8837  }
  8838  
  8839  // UpgradePublishedSchemaWithContext is the same as UpgradePublishedSchema with the addition of
  8840  // the ability to pass a context and additional request options.
  8841  //
  8842  // See UpgradePublishedSchema for details on how to use this API operation.
  8843  //
  8844  // The context must be non-nil and will be used for request cancellation. If
  8845  // the context is nil a panic will occur. In the future the SDK may create
  8846  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8847  // for more information on using Contexts.
  8848  func (c *CloudDirectory) UpgradePublishedSchemaWithContext(ctx aws.Context, input *UpgradePublishedSchemaInput, opts ...request.Option) (*UpgradePublishedSchemaOutput, error) {
  8849  	req, out := c.UpgradePublishedSchemaRequest(input)
  8850  	req.SetContext(ctx)
  8851  	req.ApplyOptions(opts...)
  8852  	return out, req.Send()
  8853  }
  8854  
  8855  // Access denied or directory not found. Either you don't have permissions for
  8856  // this directory or the directory does not exist. Try calling ListDirectories
  8857  // and check your permissions.
  8858  type AccessDeniedException struct {
  8859  	_            struct{}                  `type:"structure"`
  8860  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8861  
  8862  	Message_ *string `locationName:"Message" type:"string"`
  8863  }
  8864  
  8865  // String returns the string representation.
  8866  //
  8867  // API parameter values that are decorated as "sensitive" in the API will not
  8868  // be included in the string output. The member name will be present, but the
  8869  // value will be replaced with "sensitive".
  8870  func (s AccessDeniedException) String() string {
  8871  	return awsutil.Prettify(s)
  8872  }
  8873  
  8874  // GoString returns the string representation.
  8875  //
  8876  // API parameter values that are decorated as "sensitive" in the API will not
  8877  // be included in the string output. The member name will be present, but the
  8878  // value will be replaced with "sensitive".
  8879  func (s AccessDeniedException) GoString() string {
  8880  	return s.String()
  8881  }
  8882  
  8883  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  8884  	return &AccessDeniedException{
  8885  		RespMetadata: v,
  8886  	}
  8887  }
  8888  
  8889  // Code returns the exception type name.
  8890  func (s *AccessDeniedException) Code() string {
  8891  	return "AccessDeniedException"
  8892  }
  8893  
  8894  // Message returns the exception's message.
  8895  func (s *AccessDeniedException) Message() string {
  8896  	if s.Message_ != nil {
  8897  		return *s.Message_
  8898  	}
  8899  	return ""
  8900  }
  8901  
  8902  // OrigErr always returns nil, satisfies awserr.Error interface.
  8903  func (s *AccessDeniedException) OrigErr() error {
  8904  	return nil
  8905  }
  8906  
  8907  func (s *AccessDeniedException) Error() string {
  8908  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8909  }
  8910  
  8911  // Status code returns the HTTP status code for the request's response error.
  8912  func (s *AccessDeniedException) StatusCode() int {
  8913  	return s.RespMetadata.StatusCode
  8914  }
  8915  
  8916  // RequestID returns the service's response RequestID for request.
  8917  func (s *AccessDeniedException) RequestID() string {
  8918  	return s.RespMetadata.RequestID
  8919  }
  8920  
  8921  type AddFacetToObjectInput struct {
  8922  	_ struct{} `type:"structure"`
  8923  
  8924  	// The Amazon Resource Name (ARN) that is associated with the Directory where
  8925  	// the object resides. For more information, see arns.
  8926  	//
  8927  	// DirectoryArn is a required field
  8928  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  8929  
  8930  	// Attributes on the facet that you are adding to the object.
  8931  	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
  8932  
  8933  	// A reference to the object you are adding the specified facet to.
  8934  	//
  8935  	// ObjectReference is a required field
  8936  	ObjectReference *ObjectReference `type:"structure" required:"true"`
  8937  
  8938  	// Identifiers for the facet that you are adding to the object. See SchemaFacet
  8939  	// for details.
  8940  	//
  8941  	// SchemaFacet is a required field
  8942  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
  8943  }
  8944  
  8945  // String returns the string representation.
  8946  //
  8947  // API parameter values that are decorated as "sensitive" in the API will not
  8948  // be included in the string output. The member name will be present, but the
  8949  // value will be replaced with "sensitive".
  8950  func (s AddFacetToObjectInput) String() string {
  8951  	return awsutil.Prettify(s)
  8952  }
  8953  
  8954  // GoString returns the string representation.
  8955  //
  8956  // API parameter values that are decorated as "sensitive" in the API will not
  8957  // be included in the string output. The member name will be present, but the
  8958  // value will be replaced with "sensitive".
  8959  func (s AddFacetToObjectInput) GoString() string {
  8960  	return s.String()
  8961  }
  8962  
  8963  // Validate inspects the fields of the type to determine if they are valid.
  8964  func (s *AddFacetToObjectInput) Validate() error {
  8965  	invalidParams := request.ErrInvalidParams{Context: "AddFacetToObjectInput"}
  8966  	if s.DirectoryArn == nil {
  8967  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  8968  	}
  8969  	if s.ObjectReference == nil {
  8970  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
  8971  	}
  8972  	if s.SchemaFacet == nil {
  8973  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
  8974  	}
  8975  	if s.ObjectAttributeList != nil {
  8976  		for i, v := range s.ObjectAttributeList {
  8977  			if v == nil {
  8978  				continue
  8979  			}
  8980  			if err := v.Validate(); err != nil {
  8981  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
  8982  			}
  8983  		}
  8984  	}
  8985  	if s.SchemaFacet != nil {
  8986  		if err := s.SchemaFacet.Validate(); err != nil {
  8987  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
  8988  		}
  8989  	}
  8990  
  8991  	if invalidParams.Len() > 0 {
  8992  		return invalidParams
  8993  	}
  8994  	return nil
  8995  }
  8996  
  8997  // SetDirectoryArn sets the DirectoryArn field's value.
  8998  func (s *AddFacetToObjectInput) SetDirectoryArn(v string) *AddFacetToObjectInput {
  8999  	s.DirectoryArn = &v
  9000  	return s
  9001  }
  9002  
  9003  // SetObjectAttributeList sets the ObjectAttributeList field's value.
  9004  func (s *AddFacetToObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *AddFacetToObjectInput {
  9005  	s.ObjectAttributeList = v
  9006  	return s
  9007  }
  9008  
  9009  // SetObjectReference sets the ObjectReference field's value.
  9010  func (s *AddFacetToObjectInput) SetObjectReference(v *ObjectReference) *AddFacetToObjectInput {
  9011  	s.ObjectReference = v
  9012  	return s
  9013  }
  9014  
  9015  // SetSchemaFacet sets the SchemaFacet field's value.
  9016  func (s *AddFacetToObjectInput) SetSchemaFacet(v *SchemaFacet) *AddFacetToObjectInput {
  9017  	s.SchemaFacet = v
  9018  	return s
  9019  }
  9020  
  9021  type AddFacetToObjectOutput struct {
  9022  	_ struct{} `type:"structure" nopayload:"true"`
  9023  }
  9024  
  9025  // String returns the string representation.
  9026  //
  9027  // API parameter values that are decorated as "sensitive" in the API will not
  9028  // be included in the string output. The member name will be present, but the
  9029  // value will be replaced with "sensitive".
  9030  func (s AddFacetToObjectOutput) String() string {
  9031  	return awsutil.Prettify(s)
  9032  }
  9033  
  9034  // GoString returns the string representation.
  9035  //
  9036  // API parameter values that are decorated as "sensitive" in the API will not
  9037  // be included in the string output. The member name will be present, but the
  9038  // value will be replaced with "sensitive".
  9039  func (s AddFacetToObjectOutput) GoString() string {
  9040  	return s.String()
  9041  }
  9042  
  9043  type ApplySchemaInput struct {
  9044  	_ struct{} `type:"structure"`
  9045  
  9046  	// The Amazon Resource Name (ARN) that is associated with the Directory into
  9047  	// which the schema is copied. For more information, see arns.
  9048  	//
  9049  	// DirectoryArn is a required field
  9050  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  9051  
  9052  	// Published schema Amazon Resource Name (ARN) that needs to be copied. For
  9053  	// more information, see arns.
  9054  	//
  9055  	// PublishedSchemaArn is a required field
  9056  	PublishedSchemaArn *string `type:"string" required:"true"`
  9057  }
  9058  
  9059  // String returns the string representation.
  9060  //
  9061  // API parameter values that are decorated as "sensitive" in the API will not
  9062  // be included in the string output. The member name will be present, but the
  9063  // value will be replaced with "sensitive".
  9064  func (s ApplySchemaInput) String() string {
  9065  	return awsutil.Prettify(s)
  9066  }
  9067  
  9068  // GoString returns the string representation.
  9069  //
  9070  // API parameter values that are decorated as "sensitive" in the API will not
  9071  // be included in the string output. The member name will be present, but the
  9072  // value will be replaced with "sensitive".
  9073  func (s ApplySchemaInput) GoString() string {
  9074  	return s.String()
  9075  }
  9076  
  9077  // Validate inspects the fields of the type to determine if they are valid.
  9078  func (s *ApplySchemaInput) Validate() error {
  9079  	invalidParams := request.ErrInvalidParams{Context: "ApplySchemaInput"}
  9080  	if s.DirectoryArn == nil {
  9081  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  9082  	}
  9083  	if s.PublishedSchemaArn == nil {
  9084  		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
  9085  	}
  9086  
  9087  	if invalidParams.Len() > 0 {
  9088  		return invalidParams
  9089  	}
  9090  	return nil
  9091  }
  9092  
  9093  // SetDirectoryArn sets the DirectoryArn field's value.
  9094  func (s *ApplySchemaInput) SetDirectoryArn(v string) *ApplySchemaInput {
  9095  	s.DirectoryArn = &v
  9096  	return s
  9097  }
  9098  
  9099  // SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
  9100  func (s *ApplySchemaInput) SetPublishedSchemaArn(v string) *ApplySchemaInput {
  9101  	s.PublishedSchemaArn = &v
  9102  	return s
  9103  }
  9104  
  9105  type ApplySchemaOutput struct {
  9106  	_ struct{} `type:"structure"`
  9107  
  9108  	// The applied schema ARN that is associated with the copied schema in the Directory.
  9109  	// You can use this ARN to describe the schema information applied on this directory.
  9110  	// For more information, see arns.
  9111  	AppliedSchemaArn *string `type:"string"`
  9112  
  9113  	// The ARN that is associated with the Directory. For more information, see
  9114  	// arns.
  9115  	DirectoryArn *string `type:"string"`
  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 ApplySchemaOutput) 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 ApplySchemaOutput) GoString() string {
  9133  	return s.String()
  9134  }
  9135  
  9136  // SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
  9137  func (s *ApplySchemaOutput) SetAppliedSchemaArn(v string) *ApplySchemaOutput {
  9138  	s.AppliedSchemaArn = &v
  9139  	return s
  9140  }
  9141  
  9142  // SetDirectoryArn sets the DirectoryArn field's value.
  9143  func (s *ApplySchemaOutput) SetDirectoryArn(v string) *ApplySchemaOutput {
  9144  	s.DirectoryArn = &v
  9145  	return s
  9146  }
  9147  
  9148  type AttachObjectInput struct {
  9149  	_ struct{} `type:"structure"`
  9150  
  9151  	// The child object reference to be attached to the object.
  9152  	//
  9153  	// ChildReference is a required field
  9154  	ChildReference *ObjectReference `type:"structure" required:"true"`
  9155  
  9156  	// Amazon Resource Name (ARN) that is associated with the Directory where both
  9157  	// objects reside. For more information, see arns.
  9158  	//
  9159  	// DirectoryArn is a required field
  9160  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  9161  
  9162  	// The link name with which the child object is attached to the parent.
  9163  	//
  9164  	// LinkName is a required field
  9165  	LinkName *string `min:"1" type:"string" required:"true"`
  9166  
  9167  	// The parent object reference.
  9168  	//
  9169  	// ParentReference is a required field
  9170  	ParentReference *ObjectReference `type:"structure" required:"true"`
  9171  }
  9172  
  9173  // String returns the string representation.
  9174  //
  9175  // API parameter values that are decorated as "sensitive" in the API will not
  9176  // be included in the string output. The member name will be present, but the
  9177  // value will be replaced with "sensitive".
  9178  func (s AttachObjectInput) String() string {
  9179  	return awsutil.Prettify(s)
  9180  }
  9181  
  9182  // GoString returns the string representation.
  9183  //
  9184  // API parameter values that are decorated as "sensitive" in the API will not
  9185  // be included in the string output. The member name will be present, but the
  9186  // value will be replaced with "sensitive".
  9187  func (s AttachObjectInput) GoString() string {
  9188  	return s.String()
  9189  }
  9190  
  9191  // Validate inspects the fields of the type to determine if they are valid.
  9192  func (s *AttachObjectInput) Validate() error {
  9193  	invalidParams := request.ErrInvalidParams{Context: "AttachObjectInput"}
  9194  	if s.ChildReference == nil {
  9195  		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
  9196  	}
  9197  	if s.DirectoryArn == nil {
  9198  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  9199  	}
  9200  	if s.LinkName == nil {
  9201  		invalidParams.Add(request.NewErrParamRequired("LinkName"))
  9202  	}
  9203  	if s.LinkName != nil && len(*s.LinkName) < 1 {
  9204  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
  9205  	}
  9206  	if s.ParentReference == nil {
  9207  		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
  9208  	}
  9209  
  9210  	if invalidParams.Len() > 0 {
  9211  		return invalidParams
  9212  	}
  9213  	return nil
  9214  }
  9215  
  9216  // SetChildReference sets the ChildReference field's value.
  9217  func (s *AttachObjectInput) SetChildReference(v *ObjectReference) *AttachObjectInput {
  9218  	s.ChildReference = v
  9219  	return s
  9220  }
  9221  
  9222  // SetDirectoryArn sets the DirectoryArn field's value.
  9223  func (s *AttachObjectInput) SetDirectoryArn(v string) *AttachObjectInput {
  9224  	s.DirectoryArn = &v
  9225  	return s
  9226  }
  9227  
  9228  // SetLinkName sets the LinkName field's value.
  9229  func (s *AttachObjectInput) SetLinkName(v string) *AttachObjectInput {
  9230  	s.LinkName = &v
  9231  	return s
  9232  }
  9233  
  9234  // SetParentReference sets the ParentReference field's value.
  9235  func (s *AttachObjectInput) SetParentReference(v *ObjectReference) *AttachObjectInput {
  9236  	s.ParentReference = v
  9237  	return s
  9238  }
  9239  
  9240  type AttachObjectOutput struct {
  9241  	_ struct{} `type:"structure"`
  9242  
  9243  	// The attached ObjectIdentifier, which is the child ObjectIdentifier.
  9244  	AttachedObjectIdentifier *string `type:"string"`
  9245  }
  9246  
  9247  // String returns the string representation.
  9248  //
  9249  // API parameter values that are decorated as "sensitive" in the API will not
  9250  // be included in the string output. The member name will be present, but the
  9251  // value will be replaced with "sensitive".
  9252  func (s AttachObjectOutput) String() string {
  9253  	return awsutil.Prettify(s)
  9254  }
  9255  
  9256  // GoString returns the string representation.
  9257  //
  9258  // API parameter values that are decorated as "sensitive" in the API will not
  9259  // be included in the string output. The member name will be present, but the
  9260  // value will be replaced with "sensitive".
  9261  func (s AttachObjectOutput) GoString() string {
  9262  	return s.String()
  9263  }
  9264  
  9265  // SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
  9266  func (s *AttachObjectOutput) SetAttachedObjectIdentifier(v string) *AttachObjectOutput {
  9267  	s.AttachedObjectIdentifier = &v
  9268  	return s
  9269  }
  9270  
  9271  type AttachPolicyInput struct {
  9272  	_ struct{} `type:"structure"`
  9273  
  9274  	// The Amazon Resource Name (ARN) that is associated with the Directory where
  9275  	// both objects reside. For more information, see arns.
  9276  	//
  9277  	// DirectoryArn is a required field
  9278  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  9279  
  9280  	// The reference that identifies the object to which the policy will be attached.
  9281  	//
  9282  	// ObjectReference is a required field
  9283  	ObjectReference *ObjectReference `type:"structure" required:"true"`
  9284  
  9285  	// The reference that is associated with the policy object.
  9286  	//
  9287  	// PolicyReference is a required field
  9288  	PolicyReference *ObjectReference `type:"structure" required:"true"`
  9289  }
  9290  
  9291  // String returns the string representation.
  9292  //
  9293  // API parameter values that are decorated as "sensitive" in the API will not
  9294  // be included in the string output. The member name will be present, but the
  9295  // value will be replaced with "sensitive".
  9296  func (s AttachPolicyInput) String() string {
  9297  	return awsutil.Prettify(s)
  9298  }
  9299  
  9300  // GoString returns the string representation.
  9301  //
  9302  // API parameter values that are decorated as "sensitive" in the API will not
  9303  // be included in the string output. The member name will be present, but the
  9304  // value will be replaced with "sensitive".
  9305  func (s AttachPolicyInput) GoString() string {
  9306  	return s.String()
  9307  }
  9308  
  9309  // Validate inspects the fields of the type to determine if they are valid.
  9310  func (s *AttachPolicyInput) Validate() error {
  9311  	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
  9312  	if s.DirectoryArn == nil {
  9313  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  9314  	}
  9315  	if s.ObjectReference == nil {
  9316  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
  9317  	}
  9318  	if s.PolicyReference == nil {
  9319  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
  9320  	}
  9321  
  9322  	if invalidParams.Len() > 0 {
  9323  		return invalidParams
  9324  	}
  9325  	return nil
  9326  }
  9327  
  9328  // SetDirectoryArn sets the DirectoryArn field's value.
  9329  func (s *AttachPolicyInput) SetDirectoryArn(v string) *AttachPolicyInput {
  9330  	s.DirectoryArn = &v
  9331  	return s
  9332  }
  9333  
  9334  // SetObjectReference sets the ObjectReference field's value.
  9335  func (s *AttachPolicyInput) SetObjectReference(v *ObjectReference) *AttachPolicyInput {
  9336  	s.ObjectReference = v
  9337  	return s
  9338  }
  9339  
  9340  // SetPolicyReference sets the PolicyReference field's value.
  9341  func (s *AttachPolicyInput) SetPolicyReference(v *ObjectReference) *AttachPolicyInput {
  9342  	s.PolicyReference = v
  9343  	return s
  9344  }
  9345  
  9346  type AttachPolicyOutput struct {
  9347  	_ struct{} `type:"structure" nopayload:"true"`
  9348  }
  9349  
  9350  // String returns the string representation.
  9351  //
  9352  // API parameter values that are decorated as "sensitive" in the API will not
  9353  // be included in the string output. The member name will be present, but the
  9354  // value will be replaced with "sensitive".
  9355  func (s AttachPolicyOutput) String() string {
  9356  	return awsutil.Prettify(s)
  9357  }
  9358  
  9359  // GoString returns the string representation.
  9360  //
  9361  // API parameter values that are decorated as "sensitive" in the API will not
  9362  // be included in the string output. The member name will be present, but the
  9363  // value will be replaced with "sensitive".
  9364  func (s AttachPolicyOutput) GoString() string {
  9365  	return s.String()
  9366  }
  9367  
  9368  type AttachToIndexInput struct {
  9369  	_ struct{} `type:"structure"`
  9370  
  9371  	// The Amazon Resource Name (ARN) of the directory where the object and index
  9372  	// exist.
  9373  	//
  9374  	// DirectoryArn is a required field
  9375  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  9376  
  9377  	// A reference to the index that you are attaching the object to.
  9378  	//
  9379  	// IndexReference is a required field
  9380  	IndexReference *ObjectReference `type:"structure" required:"true"`
  9381  
  9382  	// A reference to the object that you are attaching to the index.
  9383  	//
  9384  	// TargetReference is a required field
  9385  	TargetReference *ObjectReference `type:"structure" required:"true"`
  9386  }
  9387  
  9388  // String returns the string representation.
  9389  //
  9390  // API parameter values that are decorated as "sensitive" in the API will not
  9391  // be included in the string output. The member name will be present, but the
  9392  // value will be replaced with "sensitive".
  9393  func (s AttachToIndexInput) String() string {
  9394  	return awsutil.Prettify(s)
  9395  }
  9396  
  9397  // GoString returns the string representation.
  9398  //
  9399  // API parameter values that are decorated as "sensitive" in the API will not
  9400  // be included in the string output. The member name will be present, but the
  9401  // value will be replaced with "sensitive".
  9402  func (s AttachToIndexInput) GoString() string {
  9403  	return s.String()
  9404  }
  9405  
  9406  // Validate inspects the fields of the type to determine if they are valid.
  9407  func (s *AttachToIndexInput) Validate() error {
  9408  	invalidParams := request.ErrInvalidParams{Context: "AttachToIndexInput"}
  9409  	if s.DirectoryArn == nil {
  9410  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  9411  	}
  9412  	if s.IndexReference == nil {
  9413  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
  9414  	}
  9415  	if s.TargetReference == nil {
  9416  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
  9417  	}
  9418  
  9419  	if invalidParams.Len() > 0 {
  9420  		return invalidParams
  9421  	}
  9422  	return nil
  9423  }
  9424  
  9425  // SetDirectoryArn sets the DirectoryArn field's value.
  9426  func (s *AttachToIndexInput) SetDirectoryArn(v string) *AttachToIndexInput {
  9427  	s.DirectoryArn = &v
  9428  	return s
  9429  }
  9430  
  9431  // SetIndexReference sets the IndexReference field's value.
  9432  func (s *AttachToIndexInput) SetIndexReference(v *ObjectReference) *AttachToIndexInput {
  9433  	s.IndexReference = v
  9434  	return s
  9435  }
  9436  
  9437  // SetTargetReference sets the TargetReference field's value.
  9438  func (s *AttachToIndexInput) SetTargetReference(v *ObjectReference) *AttachToIndexInput {
  9439  	s.TargetReference = v
  9440  	return s
  9441  }
  9442  
  9443  type AttachToIndexOutput struct {
  9444  	_ struct{} `type:"structure"`
  9445  
  9446  	// The ObjectIdentifier of the object that was attached to the index.
  9447  	AttachedObjectIdentifier *string `type:"string"`
  9448  }
  9449  
  9450  // String returns the string representation.
  9451  //
  9452  // API parameter values that are decorated as "sensitive" in the API will not
  9453  // be included in the string output. The member name will be present, but the
  9454  // value will be replaced with "sensitive".
  9455  func (s AttachToIndexOutput) String() string {
  9456  	return awsutil.Prettify(s)
  9457  }
  9458  
  9459  // GoString returns the string representation.
  9460  //
  9461  // API parameter values that are decorated as "sensitive" in the API will not
  9462  // be included in the string output. The member name will be present, but the
  9463  // value will be replaced with "sensitive".
  9464  func (s AttachToIndexOutput) GoString() string {
  9465  	return s.String()
  9466  }
  9467  
  9468  // SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
  9469  func (s *AttachToIndexOutput) SetAttachedObjectIdentifier(v string) *AttachToIndexOutput {
  9470  	s.AttachedObjectIdentifier = &v
  9471  	return s
  9472  }
  9473  
  9474  type AttachTypedLinkInput struct {
  9475  	_ struct{} `type:"structure"`
  9476  
  9477  	// A set of attributes that are associated with the typed link.
  9478  	//
  9479  	// Attributes is a required field
  9480  	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
  9481  
  9482  	// The Amazon Resource Name (ARN) of the directory where you want to attach
  9483  	// the typed link.
  9484  	//
  9485  	// DirectoryArn is a required field
  9486  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
  9487  
  9488  	// Identifies the source object that the typed link will attach to.
  9489  	//
  9490  	// SourceObjectReference is a required field
  9491  	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
  9492  
  9493  	// Identifies the target object that the typed link will attach to.
  9494  	//
  9495  	// TargetObjectReference is a required field
  9496  	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
  9497  
  9498  	// Identifies the typed link facet that is associated with the typed link.
  9499  	//
  9500  	// TypedLinkFacet is a required field
  9501  	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
  9502  }
  9503  
  9504  // String returns the string representation.
  9505  //
  9506  // API parameter values that are decorated as "sensitive" in the API will not
  9507  // be included in the string output. The member name will be present, but the
  9508  // value will be replaced with "sensitive".
  9509  func (s AttachTypedLinkInput) String() string {
  9510  	return awsutil.Prettify(s)
  9511  }
  9512  
  9513  // GoString returns the string representation.
  9514  //
  9515  // API parameter values that are decorated as "sensitive" in the API will not
  9516  // be included in the string output. The member name will be present, but the
  9517  // value will be replaced with "sensitive".
  9518  func (s AttachTypedLinkInput) GoString() string {
  9519  	return s.String()
  9520  }
  9521  
  9522  // Validate inspects the fields of the type to determine if they are valid.
  9523  func (s *AttachTypedLinkInput) Validate() error {
  9524  	invalidParams := request.ErrInvalidParams{Context: "AttachTypedLinkInput"}
  9525  	if s.Attributes == nil {
  9526  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
  9527  	}
  9528  	if s.DirectoryArn == nil {
  9529  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
  9530  	}
  9531  	if s.SourceObjectReference == nil {
  9532  		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
  9533  	}
  9534  	if s.TargetObjectReference == nil {
  9535  		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
  9536  	}
  9537  	if s.TypedLinkFacet == nil {
  9538  		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
  9539  	}
  9540  	if s.Attributes != nil {
  9541  		for i, v := range s.Attributes {
  9542  			if v == nil {
  9543  				continue
  9544  			}
  9545  			if err := v.Validate(); err != nil {
  9546  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
  9547  			}
  9548  		}
  9549  	}
  9550  	if s.TypedLinkFacet != nil {
  9551  		if err := s.TypedLinkFacet.Validate(); err != nil {
  9552  			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
  9553  		}
  9554  	}
  9555  
  9556  	if invalidParams.Len() > 0 {
  9557  		return invalidParams
  9558  	}
  9559  	return nil
  9560  }
  9561  
  9562  // SetAttributes sets the Attributes field's value.
  9563  func (s *AttachTypedLinkInput) SetAttributes(v []*AttributeNameAndValue) *AttachTypedLinkInput {
  9564  	s.Attributes = v
  9565  	return s
  9566  }
  9567  
  9568  // SetDirectoryArn sets the DirectoryArn field's value.
  9569  func (s *AttachTypedLinkInput) SetDirectoryArn(v string) *AttachTypedLinkInput {
  9570  	s.DirectoryArn = &v
  9571  	return s
  9572  }
  9573  
  9574  // SetSourceObjectReference sets the SourceObjectReference field's value.
  9575  func (s *AttachTypedLinkInput) SetSourceObjectReference(v *ObjectReference) *AttachTypedLinkInput {
  9576  	s.SourceObjectReference = v
  9577  	return s
  9578  }
  9579  
  9580  // SetTargetObjectReference sets the TargetObjectReference field's value.
  9581  func (s *AttachTypedLinkInput) SetTargetObjectReference(v *ObjectReference) *AttachTypedLinkInput {
  9582  	s.TargetObjectReference = v
  9583  	return s
  9584  }
  9585  
  9586  // SetTypedLinkFacet sets the TypedLinkFacet field's value.
  9587  func (s *AttachTypedLinkInput) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *AttachTypedLinkInput {
  9588  	s.TypedLinkFacet = v
  9589  	return s
  9590  }
  9591  
  9592  type AttachTypedLinkOutput struct {
  9593  	_ struct{} `type:"structure"`
  9594  
  9595  	// Returns a typed link specifier as output.
  9596  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
  9597  }
  9598  
  9599  // String returns the string representation.
  9600  //
  9601  // API parameter values that are decorated as "sensitive" in the API will not
  9602  // be included in the string output. The member name will be present, but the
  9603  // value will be replaced with "sensitive".
  9604  func (s AttachTypedLinkOutput) String() string {
  9605  	return awsutil.Prettify(s)
  9606  }
  9607  
  9608  // GoString returns the string representation.
  9609  //
  9610  // API parameter values that are decorated as "sensitive" in the API will not
  9611  // be included in the string output. The member name will be present, but the
  9612  // value will be replaced with "sensitive".
  9613  func (s AttachTypedLinkOutput) GoString() string {
  9614  	return s.String()
  9615  }
  9616  
  9617  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
  9618  func (s *AttachTypedLinkOutput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *AttachTypedLinkOutput {
  9619  	s.TypedLinkSpecifier = v
  9620  	return s
  9621  }
  9622  
  9623  // A unique identifier for an attribute.
  9624  type AttributeKey struct {
  9625  	_ struct{} `type:"structure"`
  9626  
  9627  	// The name of the facet that the attribute exists within.
  9628  	//
  9629  	// FacetName is a required field
  9630  	FacetName *string `min:"1" type:"string" required:"true"`
  9631  
  9632  	// The name of the attribute.
  9633  	//
  9634  	// Name is a required field
  9635  	Name *string `min:"1" type:"string" required:"true"`
  9636  
  9637  	// The Amazon Resource Name (ARN) of the schema that contains the facet and
  9638  	// attribute.
  9639  	//
  9640  	// SchemaArn is a required field
  9641  	SchemaArn *string `type:"string" required:"true"`
  9642  }
  9643  
  9644  // String returns the string representation.
  9645  //
  9646  // API parameter values that are decorated as "sensitive" in the API will not
  9647  // be included in the string output. The member name will be present, but the
  9648  // value will be replaced with "sensitive".
  9649  func (s AttributeKey) String() string {
  9650  	return awsutil.Prettify(s)
  9651  }
  9652  
  9653  // GoString returns the string representation.
  9654  //
  9655  // API parameter values that are decorated as "sensitive" in the API will not
  9656  // be included in the string output. The member name will be present, but the
  9657  // value will be replaced with "sensitive".
  9658  func (s AttributeKey) GoString() string {
  9659  	return s.String()
  9660  }
  9661  
  9662  // Validate inspects the fields of the type to determine if they are valid.
  9663  func (s *AttributeKey) Validate() error {
  9664  	invalidParams := request.ErrInvalidParams{Context: "AttributeKey"}
  9665  	if s.FacetName == nil {
  9666  		invalidParams.Add(request.NewErrParamRequired("FacetName"))
  9667  	}
  9668  	if s.FacetName != nil && len(*s.FacetName) < 1 {
  9669  		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
  9670  	}
  9671  	if s.Name == nil {
  9672  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9673  	}
  9674  	if s.Name != nil && len(*s.Name) < 1 {
  9675  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  9676  	}
  9677  	if s.SchemaArn == nil {
  9678  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
  9679  	}
  9680  
  9681  	if invalidParams.Len() > 0 {
  9682  		return invalidParams
  9683  	}
  9684  	return nil
  9685  }
  9686  
  9687  // SetFacetName sets the FacetName field's value.
  9688  func (s *AttributeKey) SetFacetName(v string) *AttributeKey {
  9689  	s.FacetName = &v
  9690  	return s
  9691  }
  9692  
  9693  // SetName sets the Name field's value.
  9694  func (s *AttributeKey) SetName(v string) *AttributeKey {
  9695  	s.Name = &v
  9696  	return s
  9697  }
  9698  
  9699  // SetSchemaArn sets the SchemaArn field's value.
  9700  func (s *AttributeKey) SetSchemaArn(v string) *AttributeKey {
  9701  	s.SchemaArn = &v
  9702  	return s
  9703  }
  9704  
  9705  // The combination of an attribute key and an attribute value.
  9706  type AttributeKeyAndValue struct {
  9707  	_ struct{} `type:"structure"`
  9708  
  9709  	// The key of the attribute.
  9710  	//
  9711  	// Key is a required field
  9712  	Key *AttributeKey `type:"structure" required:"true"`
  9713  
  9714  	// The value of the attribute.
  9715  	//
  9716  	// Value is a required field
  9717  	Value *TypedAttributeValue `type:"structure" required:"true"`
  9718  }
  9719  
  9720  // String returns the string representation.
  9721  //
  9722  // API parameter values that are decorated as "sensitive" in the API will not
  9723  // be included in the string output. The member name will be present, but the
  9724  // value will be replaced with "sensitive".
  9725  func (s AttributeKeyAndValue) String() string {
  9726  	return awsutil.Prettify(s)
  9727  }
  9728  
  9729  // GoString returns the string representation.
  9730  //
  9731  // API parameter values that are decorated as "sensitive" in the API will not
  9732  // be included in the string output. The member name will be present, but the
  9733  // value will be replaced with "sensitive".
  9734  func (s AttributeKeyAndValue) GoString() string {
  9735  	return s.String()
  9736  }
  9737  
  9738  // Validate inspects the fields of the type to determine if they are valid.
  9739  func (s *AttributeKeyAndValue) Validate() error {
  9740  	invalidParams := request.ErrInvalidParams{Context: "AttributeKeyAndValue"}
  9741  	if s.Key == nil {
  9742  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9743  	}
  9744  	if s.Value == nil {
  9745  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9746  	}
  9747  	if s.Key != nil {
  9748  		if err := s.Key.Validate(); err != nil {
  9749  			invalidParams.AddNested("Key", err.(request.ErrInvalidParams))
  9750  		}
  9751  	}
  9752  
  9753  	if invalidParams.Len() > 0 {
  9754  		return invalidParams
  9755  	}
  9756  	return nil
  9757  }
  9758  
  9759  // SetKey sets the Key field's value.
  9760  func (s *AttributeKeyAndValue) SetKey(v *AttributeKey) *AttributeKeyAndValue {
  9761  	s.Key = v
  9762  	return s
  9763  }
  9764  
  9765  // SetValue sets the Value field's value.
  9766  func (s *AttributeKeyAndValue) SetValue(v *TypedAttributeValue) *AttributeKeyAndValue {
  9767  	s.Value = v
  9768  	return s
  9769  }
  9770  
  9771  // Identifies the attribute name and value for a typed link.
  9772  type AttributeNameAndValue struct {
  9773  	_ struct{} `type:"structure"`
  9774  
  9775  	// The attribute name of the typed link.
  9776  	//
  9777  	// AttributeName is a required field
  9778  	AttributeName *string `min:"1" type:"string" required:"true"`
  9779  
  9780  	// The value for the typed link.
  9781  	//
  9782  	// Value is a required field
  9783  	Value *TypedAttributeValue `type:"structure" required:"true"`
  9784  }
  9785  
  9786  // String returns the string representation.
  9787  //
  9788  // API parameter values that are decorated as "sensitive" in the API will not
  9789  // be included in the string output. The member name will be present, but the
  9790  // value will be replaced with "sensitive".
  9791  func (s AttributeNameAndValue) String() string {
  9792  	return awsutil.Prettify(s)
  9793  }
  9794  
  9795  // GoString returns the string representation.
  9796  //
  9797  // API parameter values that are decorated as "sensitive" in the API will not
  9798  // be included in the string output. The member name will be present, but the
  9799  // value will be replaced with "sensitive".
  9800  func (s AttributeNameAndValue) GoString() string {
  9801  	return s.String()
  9802  }
  9803  
  9804  // Validate inspects the fields of the type to determine if they are valid.
  9805  func (s *AttributeNameAndValue) Validate() error {
  9806  	invalidParams := request.ErrInvalidParams{Context: "AttributeNameAndValue"}
  9807  	if s.AttributeName == nil {
  9808  		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
  9809  	}
  9810  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
  9811  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
  9812  	}
  9813  	if s.Value == nil {
  9814  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9815  	}
  9816  
  9817  	if invalidParams.Len() > 0 {
  9818  		return invalidParams
  9819  	}
  9820  	return nil
  9821  }
  9822  
  9823  // SetAttributeName sets the AttributeName field's value.
  9824  func (s *AttributeNameAndValue) SetAttributeName(v string) *AttributeNameAndValue {
  9825  	s.AttributeName = &v
  9826  	return s
  9827  }
  9828  
  9829  // SetValue sets the Value field's value.
  9830  func (s *AttributeNameAndValue) SetValue(v *TypedAttributeValue) *AttributeNameAndValue {
  9831  	s.Value = v
  9832  	return s
  9833  }
  9834  
  9835  // Represents the output of a batch add facet to object operation.
  9836  type BatchAddFacetToObject struct {
  9837  	_ struct{} `type:"structure"`
  9838  
  9839  	// The attributes to set on the object.
  9840  	//
  9841  	// ObjectAttributeList is a required field
  9842  	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
  9843  
  9844  	// A reference to the object being mutated.
  9845  	//
  9846  	// ObjectReference is a required field
  9847  	ObjectReference *ObjectReference `type:"structure" required:"true"`
  9848  
  9849  	// Represents the facet being added to the object.
  9850  	//
  9851  	// SchemaFacet is a required field
  9852  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
  9853  }
  9854  
  9855  // String returns the string representation.
  9856  //
  9857  // API parameter values that are decorated as "sensitive" in the API will not
  9858  // be included in the string output. The member name will be present, but the
  9859  // value will be replaced with "sensitive".
  9860  func (s BatchAddFacetToObject) String() string {
  9861  	return awsutil.Prettify(s)
  9862  }
  9863  
  9864  // GoString returns the string representation.
  9865  //
  9866  // API parameter values that are decorated as "sensitive" in the API will not
  9867  // be included in the string output. The member name will be present, but the
  9868  // value will be replaced with "sensitive".
  9869  func (s BatchAddFacetToObject) GoString() string {
  9870  	return s.String()
  9871  }
  9872  
  9873  // Validate inspects the fields of the type to determine if they are valid.
  9874  func (s *BatchAddFacetToObject) Validate() error {
  9875  	invalidParams := request.ErrInvalidParams{Context: "BatchAddFacetToObject"}
  9876  	if s.ObjectAttributeList == nil {
  9877  		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
  9878  	}
  9879  	if s.ObjectReference == nil {
  9880  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
  9881  	}
  9882  	if s.SchemaFacet == nil {
  9883  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
  9884  	}
  9885  	if s.ObjectAttributeList != nil {
  9886  		for i, v := range s.ObjectAttributeList {
  9887  			if v == nil {
  9888  				continue
  9889  			}
  9890  			if err := v.Validate(); err != nil {
  9891  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
  9892  			}
  9893  		}
  9894  	}
  9895  	if s.SchemaFacet != nil {
  9896  		if err := s.SchemaFacet.Validate(); err != nil {
  9897  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
  9898  		}
  9899  	}
  9900  
  9901  	if invalidParams.Len() > 0 {
  9902  		return invalidParams
  9903  	}
  9904  	return nil
  9905  }
  9906  
  9907  // SetObjectAttributeList sets the ObjectAttributeList field's value.
  9908  func (s *BatchAddFacetToObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchAddFacetToObject {
  9909  	s.ObjectAttributeList = v
  9910  	return s
  9911  }
  9912  
  9913  // SetObjectReference sets the ObjectReference field's value.
  9914  func (s *BatchAddFacetToObject) SetObjectReference(v *ObjectReference) *BatchAddFacetToObject {
  9915  	s.ObjectReference = v
  9916  	return s
  9917  }
  9918  
  9919  // SetSchemaFacet sets the SchemaFacet field's value.
  9920  func (s *BatchAddFacetToObject) SetSchemaFacet(v *SchemaFacet) *BatchAddFacetToObject {
  9921  	s.SchemaFacet = v
  9922  	return s
  9923  }
  9924  
  9925  // The result of a batch add facet to object operation.
  9926  type BatchAddFacetToObjectResponse struct {
  9927  	_ struct{} `type:"structure" nopayload:"true"`
  9928  }
  9929  
  9930  // String returns the string representation.
  9931  //
  9932  // API parameter values that are decorated as "sensitive" in the API will not
  9933  // be included in the string output. The member name will be present, but the
  9934  // value will be replaced with "sensitive".
  9935  func (s BatchAddFacetToObjectResponse) String() string {
  9936  	return awsutil.Prettify(s)
  9937  }
  9938  
  9939  // GoString returns the string representation.
  9940  //
  9941  // API parameter values that are decorated as "sensitive" in the API will not
  9942  // be included in the string output. The member name will be present, but the
  9943  // value will be replaced with "sensitive".
  9944  func (s BatchAddFacetToObjectResponse) GoString() string {
  9945  	return s.String()
  9946  }
  9947  
  9948  // Represents the output of an AttachObject operation.
  9949  type BatchAttachObject struct {
  9950  	_ struct{} `type:"structure"`
  9951  
  9952  	// The child object reference that is to be attached to the object.
  9953  	//
  9954  	// ChildReference is a required field
  9955  	ChildReference *ObjectReference `type:"structure" required:"true"`
  9956  
  9957  	// The name of the link.
  9958  	//
  9959  	// LinkName is a required field
  9960  	LinkName *string `min:"1" type:"string" required:"true"`
  9961  
  9962  	// The parent object reference.
  9963  	//
  9964  	// ParentReference is a required field
  9965  	ParentReference *ObjectReference `type:"structure" required:"true"`
  9966  }
  9967  
  9968  // String returns the string representation.
  9969  //
  9970  // API parameter values that are decorated as "sensitive" in the API will not
  9971  // be included in the string output. The member name will be present, but the
  9972  // value will be replaced with "sensitive".
  9973  func (s BatchAttachObject) String() string {
  9974  	return awsutil.Prettify(s)
  9975  }
  9976  
  9977  // GoString returns the string representation.
  9978  //
  9979  // API parameter values that are decorated as "sensitive" in the API will not
  9980  // be included in the string output. The member name will be present, but the
  9981  // value will be replaced with "sensitive".
  9982  func (s BatchAttachObject) GoString() string {
  9983  	return s.String()
  9984  }
  9985  
  9986  // Validate inspects the fields of the type to determine if they are valid.
  9987  func (s *BatchAttachObject) Validate() error {
  9988  	invalidParams := request.ErrInvalidParams{Context: "BatchAttachObject"}
  9989  	if s.ChildReference == nil {
  9990  		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
  9991  	}
  9992  	if s.LinkName == nil {
  9993  		invalidParams.Add(request.NewErrParamRequired("LinkName"))
  9994  	}
  9995  	if s.LinkName != nil && len(*s.LinkName) < 1 {
  9996  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
  9997  	}
  9998  	if s.ParentReference == nil {
  9999  		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
 10000  	}
 10001  
 10002  	if invalidParams.Len() > 0 {
 10003  		return invalidParams
 10004  	}
 10005  	return nil
 10006  }
 10007  
 10008  // SetChildReference sets the ChildReference field's value.
 10009  func (s *BatchAttachObject) SetChildReference(v *ObjectReference) *BatchAttachObject {
 10010  	s.ChildReference = v
 10011  	return s
 10012  }
 10013  
 10014  // SetLinkName sets the LinkName field's value.
 10015  func (s *BatchAttachObject) SetLinkName(v string) *BatchAttachObject {
 10016  	s.LinkName = &v
 10017  	return s
 10018  }
 10019  
 10020  // SetParentReference sets the ParentReference field's value.
 10021  func (s *BatchAttachObject) SetParentReference(v *ObjectReference) *BatchAttachObject {
 10022  	s.ParentReference = v
 10023  	return s
 10024  }
 10025  
 10026  // Represents the output batch AttachObject response operation.
 10027  type BatchAttachObjectResponse struct {
 10028  	_ struct{} `type:"structure"`
 10029  
 10030  	// The ObjectIdentifier of the object that has been attached.
 10031  	AttachedObjectIdentifier *string `locationName:"attachedObjectIdentifier" type:"string"`
 10032  }
 10033  
 10034  // String returns the string representation.
 10035  //
 10036  // API parameter values that are decorated as "sensitive" in the API will not
 10037  // be included in the string output. The member name will be present, but the
 10038  // value will be replaced with "sensitive".
 10039  func (s BatchAttachObjectResponse) String() string {
 10040  	return awsutil.Prettify(s)
 10041  }
 10042  
 10043  // GoString returns the string representation.
 10044  //
 10045  // API parameter values that are decorated as "sensitive" in the API will not
 10046  // be included in the string output. The member name will be present, but the
 10047  // value will be replaced with "sensitive".
 10048  func (s BatchAttachObjectResponse) GoString() string {
 10049  	return s.String()
 10050  }
 10051  
 10052  // SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
 10053  func (s *BatchAttachObjectResponse) SetAttachedObjectIdentifier(v string) *BatchAttachObjectResponse {
 10054  	s.AttachedObjectIdentifier = &v
 10055  	return s
 10056  }
 10057  
 10058  // Attaches a policy object to a regular object inside a BatchRead operation.
 10059  // For more information, see AttachPolicy and BatchReadRequest$Operations.
 10060  type BatchAttachPolicy struct {
 10061  	_ struct{} `type:"structure"`
 10062  
 10063  	// The reference that identifies the object to which the policy will be attached.
 10064  	//
 10065  	// ObjectReference is a required field
 10066  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 10067  
 10068  	// The reference that is associated with the policy object.
 10069  	//
 10070  	// PolicyReference is a required field
 10071  	PolicyReference *ObjectReference `type:"structure" required:"true"`
 10072  }
 10073  
 10074  // String returns the string representation.
 10075  //
 10076  // API parameter values that are decorated as "sensitive" in the API will not
 10077  // be included in the string output. The member name will be present, but the
 10078  // value will be replaced with "sensitive".
 10079  func (s BatchAttachPolicy) String() string {
 10080  	return awsutil.Prettify(s)
 10081  }
 10082  
 10083  // GoString returns the string representation.
 10084  //
 10085  // API parameter values that are decorated as "sensitive" in the API will not
 10086  // be included in the string output. The member name will be present, but the
 10087  // value will be replaced with "sensitive".
 10088  func (s BatchAttachPolicy) GoString() string {
 10089  	return s.String()
 10090  }
 10091  
 10092  // Validate inspects the fields of the type to determine if they are valid.
 10093  func (s *BatchAttachPolicy) Validate() error {
 10094  	invalidParams := request.ErrInvalidParams{Context: "BatchAttachPolicy"}
 10095  	if s.ObjectReference == nil {
 10096  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 10097  	}
 10098  	if s.PolicyReference == nil {
 10099  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
 10100  	}
 10101  
 10102  	if invalidParams.Len() > 0 {
 10103  		return invalidParams
 10104  	}
 10105  	return nil
 10106  }
 10107  
 10108  // SetObjectReference sets the ObjectReference field's value.
 10109  func (s *BatchAttachPolicy) SetObjectReference(v *ObjectReference) *BatchAttachPolicy {
 10110  	s.ObjectReference = v
 10111  	return s
 10112  }
 10113  
 10114  // SetPolicyReference sets the PolicyReference field's value.
 10115  func (s *BatchAttachPolicy) SetPolicyReference(v *ObjectReference) *BatchAttachPolicy {
 10116  	s.PolicyReference = v
 10117  	return s
 10118  }
 10119  
 10120  // Represents the output of an AttachPolicy response operation.
 10121  type BatchAttachPolicyResponse struct {
 10122  	_ struct{} `type:"structure" nopayload:"true"`
 10123  }
 10124  
 10125  // String returns the string representation.
 10126  //
 10127  // API parameter values that are decorated as "sensitive" in the API will not
 10128  // be included in the string output. The member name will be present, but the
 10129  // value will be replaced with "sensitive".
 10130  func (s BatchAttachPolicyResponse) String() string {
 10131  	return awsutil.Prettify(s)
 10132  }
 10133  
 10134  // GoString returns the string representation.
 10135  //
 10136  // API parameter values that are decorated as "sensitive" in the API will not
 10137  // be included in the string output. The member name will be present, but the
 10138  // value will be replaced with "sensitive".
 10139  func (s BatchAttachPolicyResponse) GoString() string {
 10140  	return s.String()
 10141  }
 10142  
 10143  // Attaches the specified object to the specified index inside a BatchRead operation.
 10144  // For more information, see AttachToIndex and BatchReadRequest$Operations.
 10145  type BatchAttachToIndex struct {
 10146  	_ struct{} `type:"structure"`
 10147  
 10148  	// A reference to the index that you are attaching the object to.
 10149  	//
 10150  	// IndexReference is a required field
 10151  	IndexReference *ObjectReference `type:"structure" required:"true"`
 10152  
 10153  	// A reference to the object that you are attaching to the index.
 10154  	//
 10155  	// TargetReference is a required field
 10156  	TargetReference *ObjectReference `type:"structure" required:"true"`
 10157  }
 10158  
 10159  // String returns the string representation.
 10160  //
 10161  // API parameter values that are decorated as "sensitive" in the API will not
 10162  // be included in the string output. The member name will be present, but the
 10163  // value will be replaced with "sensitive".
 10164  func (s BatchAttachToIndex) String() string {
 10165  	return awsutil.Prettify(s)
 10166  }
 10167  
 10168  // GoString returns the string representation.
 10169  //
 10170  // API parameter values that are decorated as "sensitive" in the API will not
 10171  // be included in the string output. The member name will be present, but the
 10172  // value will be replaced with "sensitive".
 10173  func (s BatchAttachToIndex) GoString() string {
 10174  	return s.String()
 10175  }
 10176  
 10177  // Validate inspects the fields of the type to determine if they are valid.
 10178  func (s *BatchAttachToIndex) Validate() error {
 10179  	invalidParams := request.ErrInvalidParams{Context: "BatchAttachToIndex"}
 10180  	if s.IndexReference == nil {
 10181  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
 10182  	}
 10183  	if s.TargetReference == nil {
 10184  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
 10185  	}
 10186  
 10187  	if invalidParams.Len() > 0 {
 10188  		return invalidParams
 10189  	}
 10190  	return nil
 10191  }
 10192  
 10193  // SetIndexReference sets the IndexReference field's value.
 10194  func (s *BatchAttachToIndex) SetIndexReference(v *ObjectReference) *BatchAttachToIndex {
 10195  	s.IndexReference = v
 10196  	return s
 10197  }
 10198  
 10199  // SetTargetReference sets the TargetReference field's value.
 10200  func (s *BatchAttachToIndex) SetTargetReference(v *ObjectReference) *BatchAttachToIndex {
 10201  	s.TargetReference = v
 10202  	return s
 10203  }
 10204  
 10205  // Represents the output of a AttachToIndex response operation.
 10206  type BatchAttachToIndexResponse struct {
 10207  	_ struct{} `type:"structure"`
 10208  
 10209  	// The ObjectIdentifier of the object that was attached to the index.
 10210  	AttachedObjectIdentifier *string `type:"string"`
 10211  }
 10212  
 10213  // String returns the string representation.
 10214  //
 10215  // API parameter values that are decorated as "sensitive" in the API will not
 10216  // be included in the string output. The member name will be present, but the
 10217  // value will be replaced with "sensitive".
 10218  func (s BatchAttachToIndexResponse) String() string {
 10219  	return awsutil.Prettify(s)
 10220  }
 10221  
 10222  // GoString returns the string representation.
 10223  //
 10224  // API parameter values that are decorated as "sensitive" in the API will not
 10225  // be included in the string output. The member name will be present, but the
 10226  // value will be replaced with "sensitive".
 10227  func (s BatchAttachToIndexResponse) GoString() string {
 10228  	return s.String()
 10229  }
 10230  
 10231  // SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
 10232  func (s *BatchAttachToIndexResponse) SetAttachedObjectIdentifier(v string) *BatchAttachToIndexResponse {
 10233  	s.AttachedObjectIdentifier = &v
 10234  	return s
 10235  }
 10236  
 10237  // Attaches a typed link to a specified source and target object inside a BatchRead
 10238  // operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.
 10239  type BatchAttachTypedLink struct {
 10240  	_ struct{} `type:"structure"`
 10241  
 10242  	// A set of attributes that are associated with the typed link.
 10243  	//
 10244  	// Attributes is a required field
 10245  	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
 10246  
 10247  	// Identifies the source object that the typed link will attach to.
 10248  	//
 10249  	// SourceObjectReference is a required field
 10250  	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
 10251  
 10252  	// Identifies the target object that the typed link will attach to.
 10253  	//
 10254  	// TargetObjectReference is a required field
 10255  	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
 10256  
 10257  	// Identifies the typed link facet that is associated with the typed link.
 10258  	//
 10259  	// TypedLinkFacet is a required field
 10260  	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
 10261  }
 10262  
 10263  // String returns the string representation.
 10264  //
 10265  // API parameter values that are decorated as "sensitive" in the API will not
 10266  // be included in the string output. The member name will be present, but the
 10267  // value will be replaced with "sensitive".
 10268  func (s BatchAttachTypedLink) String() string {
 10269  	return awsutil.Prettify(s)
 10270  }
 10271  
 10272  // GoString returns the string representation.
 10273  //
 10274  // API parameter values that are decorated as "sensitive" in the API will not
 10275  // be included in the string output. The member name will be present, but the
 10276  // value will be replaced with "sensitive".
 10277  func (s BatchAttachTypedLink) GoString() string {
 10278  	return s.String()
 10279  }
 10280  
 10281  // Validate inspects the fields of the type to determine if they are valid.
 10282  func (s *BatchAttachTypedLink) Validate() error {
 10283  	invalidParams := request.ErrInvalidParams{Context: "BatchAttachTypedLink"}
 10284  	if s.Attributes == nil {
 10285  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
 10286  	}
 10287  	if s.SourceObjectReference == nil {
 10288  		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
 10289  	}
 10290  	if s.TargetObjectReference == nil {
 10291  		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
 10292  	}
 10293  	if s.TypedLinkFacet == nil {
 10294  		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
 10295  	}
 10296  	if s.Attributes != nil {
 10297  		for i, v := range s.Attributes {
 10298  			if v == nil {
 10299  				continue
 10300  			}
 10301  			if err := v.Validate(); err != nil {
 10302  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 10303  			}
 10304  		}
 10305  	}
 10306  	if s.TypedLinkFacet != nil {
 10307  		if err := s.TypedLinkFacet.Validate(); err != nil {
 10308  			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
 10309  		}
 10310  	}
 10311  
 10312  	if invalidParams.Len() > 0 {
 10313  		return invalidParams
 10314  	}
 10315  	return nil
 10316  }
 10317  
 10318  // SetAttributes sets the Attributes field's value.
 10319  func (s *BatchAttachTypedLink) SetAttributes(v []*AttributeNameAndValue) *BatchAttachTypedLink {
 10320  	s.Attributes = v
 10321  	return s
 10322  }
 10323  
 10324  // SetSourceObjectReference sets the SourceObjectReference field's value.
 10325  func (s *BatchAttachTypedLink) SetSourceObjectReference(v *ObjectReference) *BatchAttachTypedLink {
 10326  	s.SourceObjectReference = v
 10327  	return s
 10328  }
 10329  
 10330  // SetTargetObjectReference sets the TargetObjectReference field's value.
 10331  func (s *BatchAttachTypedLink) SetTargetObjectReference(v *ObjectReference) *BatchAttachTypedLink {
 10332  	s.TargetObjectReference = v
 10333  	return s
 10334  }
 10335  
 10336  // SetTypedLinkFacet sets the TypedLinkFacet field's value.
 10337  func (s *BatchAttachTypedLink) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *BatchAttachTypedLink {
 10338  	s.TypedLinkFacet = v
 10339  	return s
 10340  }
 10341  
 10342  // Represents the output of a AttachTypedLink response operation.
 10343  type BatchAttachTypedLinkResponse struct {
 10344  	_ struct{} `type:"structure"`
 10345  
 10346  	// Returns a typed link specifier as output.
 10347  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
 10348  }
 10349  
 10350  // String returns the string representation.
 10351  //
 10352  // API parameter values that are decorated as "sensitive" in the API will not
 10353  // be included in the string output. The member name will be present, but the
 10354  // value will be replaced with "sensitive".
 10355  func (s BatchAttachTypedLinkResponse) String() string {
 10356  	return awsutil.Prettify(s)
 10357  }
 10358  
 10359  // GoString returns the string representation.
 10360  //
 10361  // API parameter values that are decorated as "sensitive" in the API will not
 10362  // be included in the string output. The member name will be present, but the
 10363  // value will be replaced with "sensitive".
 10364  func (s BatchAttachTypedLinkResponse) GoString() string {
 10365  	return s.String()
 10366  }
 10367  
 10368  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 10369  func (s *BatchAttachTypedLinkResponse) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchAttachTypedLinkResponse {
 10370  	s.TypedLinkSpecifier = v
 10371  	return s
 10372  }
 10373  
 10374  // Creates an index object inside of a BatchRead operation. For more information,
 10375  // see CreateIndex and BatchReadRequest$Operations.
 10376  type BatchCreateIndex struct {
 10377  	_ struct{} `type:"structure"`
 10378  
 10379  	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
 10380  	// for more information.
 10381  	BatchReferenceName *string `type:"string"`
 10382  
 10383  	// Indicates whether the attribute that is being indexed has unique values or
 10384  	// not.
 10385  	//
 10386  	// IsUnique is a required field
 10387  	IsUnique *bool `type:"boolean" required:"true"`
 10388  
 10389  	// The name of the link between the parent object and the index object.
 10390  	LinkName *string `min:"1" type:"string"`
 10391  
 10392  	// Specifies the attributes that should be indexed on. Currently only a single
 10393  	// attribute is supported.
 10394  	//
 10395  	// OrderedIndexedAttributeList is a required field
 10396  	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
 10397  
 10398  	// A reference to the parent object that contains the index object.
 10399  	ParentReference *ObjectReference `type:"structure"`
 10400  }
 10401  
 10402  // String returns the string representation.
 10403  //
 10404  // API parameter values that are decorated as "sensitive" in the API will not
 10405  // be included in the string output. The member name will be present, but the
 10406  // value will be replaced with "sensitive".
 10407  func (s BatchCreateIndex) String() string {
 10408  	return awsutil.Prettify(s)
 10409  }
 10410  
 10411  // GoString returns the string representation.
 10412  //
 10413  // API parameter values that are decorated as "sensitive" in the API will not
 10414  // be included in the string output. The member name will be present, but the
 10415  // value will be replaced with "sensitive".
 10416  func (s BatchCreateIndex) GoString() string {
 10417  	return s.String()
 10418  }
 10419  
 10420  // Validate inspects the fields of the type to determine if they are valid.
 10421  func (s *BatchCreateIndex) Validate() error {
 10422  	invalidParams := request.ErrInvalidParams{Context: "BatchCreateIndex"}
 10423  	if s.IsUnique == nil {
 10424  		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
 10425  	}
 10426  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 10427  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 10428  	}
 10429  	if s.OrderedIndexedAttributeList == nil {
 10430  		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
 10431  	}
 10432  	if s.OrderedIndexedAttributeList != nil {
 10433  		for i, v := range s.OrderedIndexedAttributeList {
 10434  			if v == nil {
 10435  				continue
 10436  			}
 10437  			if err := v.Validate(); err != nil {
 10438  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
 10439  			}
 10440  		}
 10441  	}
 10442  
 10443  	if invalidParams.Len() > 0 {
 10444  		return invalidParams
 10445  	}
 10446  	return nil
 10447  }
 10448  
 10449  // SetBatchReferenceName sets the BatchReferenceName field's value.
 10450  func (s *BatchCreateIndex) SetBatchReferenceName(v string) *BatchCreateIndex {
 10451  	s.BatchReferenceName = &v
 10452  	return s
 10453  }
 10454  
 10455  // SetIsUnique sets the IsUnique field's value.
 10456  func (s *BatchCreateIndex) SetIsUnique(v bool) *BatchCreateIndex {
 10457  	s.IsUnique = &v
 10458  	return s
 10459  }
 10460  
 10461  // SetLinkName sets the LinkName field's value.
 10462  func (s *BatchCreateIndex) SetLinkName(v string) *BatchCreateIndex {
 10463  	s.LinkName = &v
 10464  	return s
 10465  }
 10466  
 10467  // SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
 10468  func (s *BatchCreateIndex) SetOrderedIndexedAttributeList(v []*AttributeKey) *BatchCreateIndex {
 10469  	s.OrderedIndexedAttributeList = v
 10470  	return s
 10471  }
 10472  
 10473  // SetParentReference sets the ParentReference field's value.
 10474  func (s *BatchCreateIndex) SetParentReference(v *ObjectReference) *BatchCreateIndex {
 10475  	s.ParentReference = v
 10476  	return s
 10477  }
 10478  
 10479  // Represents the output of a CreateIndex response operation.
 10480  type BatchCreateIndexResponse struct {
 10481  	_ struct{} `type:"structure"`
 10482  
 10483  	// The ObjectIdentifier of the index created by this operation.
 10484  	ObjectIdentifier *string `type:"string"`
 10485  }
 10486  
 10487  // String returns the string representation.
 10488  //
 10489  // API parameter values that are decorated as "sensitive" in the API will not
 10490  // be included in the string output. The member name will be present, but the
 10491  // value will be replaced with "sensitive".
 10492  func (s BatchCreateIndexResponse) String() string {
 10493  	return awsutil.Prettify(s)
 10494  }
 10495  
 10496  // GoString returns the string representation.
 10497  //
 10498  // API parameter values that are decorated as "sensitive" in the API will not
 10499  // be included in the string output. The member name will be present, but the
 10500  // value will be replaced with "sensitive".
 10501  func (s BatchCreateIndexResponse) GoString() string {
 10502  	return s.String()
 10503  }
 10504  
 10505  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 10506  func (s *BatchCreateIndexResponse) SetObjectIdentifier(v string) *BatchCreateIndexResponse {
 10507  	s.ObjectIdentifier = &v
 10508  	return s
 10509  }
 10510  
 10511  // Represents the output of a CreateObject operation.
 10512  type BatchCreateObject struct {
 10513  	_ struct{} `type:"structure"`
 10514  
 10515  	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
 10516  	// for more information.
 10517  	BatchReferenceName *string `type:"string"`
 10518  
 10519  	// The name of the link.
 10520  	LinkName *string `min:"1" type:"string"`
 10521  
 10522  	// An attribute map, which contains an attribute ARN as the key and attribute
 10523  	// value as the map value.
 10524  	//
 10525  	// ObjectAttributeList is a required field
 10526  	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
 10527  
 10528  	// If specified, the parent reference to which this object will be attached.
 10529  	ParentReference *ObjectReference `type:"structure"`
 10530  
 10531  	// A list of FacetArns that will be associated with the object. For more information,
 10532  	// see arns.
 10533  	//
 10534  	// SchemaFacet is a required field
 10535  	SchemaFacet []*SchemaFacet `type:"list" required:"true"`
 10536  }
 10537  
 10538  // String returns the string representation.
 10539  //
 10540  // API parameter values that are decorated as "sensitive" in the API will not
 10541  // be included in the string output. The member name will be present, but the
 10542  // value will be replaced with "sensitive".
 10543  func (s BatchCreateObject) String() string {
 10544  	return awsutil.Prettify(s)
 10545  }
 10546  
 10547  // GoString returns the string representation.
 10548  //
 10549  // API parameter values that are decorated as "sensitive" in the API will not
 10550  // be included in the string output. The member name will be present, but the
 10551  // value will be replaced with "sensitive".
 10552  func (s BatchCreateObject) GoString() string {
 10553  	return s.String()
 10554  }
 10555  
 10556  // Validate inspects the fields of the type to determine if they are valid.
 10557  func (s *BatchCreateObject) Validate() error {
 10558  	invalidParams := request.ErrInvalidParams{Context: "BatchCreateObject"}
 10559  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 10560  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 10561  	}
 10562  	if s.ObjectAttributeList == nil {
 10563  		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
 10564  	}
 10565  	if s.SchemaFacet == nil {
 10566  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
 10567  	}
 10568  	if s.ObjectAttributeList != nil {
 10569  		for i, v := range s.ObjectAttributeList {
 10570  			if v == nil {
 10571  				continue
 10572  			}
 10573  			if err := v.Validate(); err != nil {
 10574  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
 10575  			}
 10576  		}
 10577  	}
 10578  	if s.SchemaFacet != nil {
 10579  		for i, v := range s.SchemaFacet {
 10580  			if v == nil {
 10581  				continue
 10582  			}
 10583  			if err := v.Validate(); err != nil {
 10584  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacet", i), err.(request.ErrInvalidParams))
 10585  			}
 10586  		}
 10587  	}
 10588  
 10589  	if invalidParams.Len() > 0 {
 10590  		return invalidParams
 10591  	}
 10592  	return nil
 10593  }
 10594  
 10595  // SetBatchReferenceName sets the BatchReferenceName field's value.
 10596  func (s *BatchCreateObject) SetBatchReferenceName(v string) *BatchCreateObject {
 10597  	s.BatchReferenceName = &v
 10598  	return s
 10599  }
 10600  
 10601  // SetLinkName sets the LinkName field's value.
 10602  func (s *BatchCreateObject) SetLinkName(v string) *BatchCreateObject {
 10603  	s.LinkName = &v
 10604  	return s
 10605  }
 10606  
 10607  // SetObjectAttributeList sets the ObjectAttributeList field's value.
 10608  func (s *BatchCreateObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchCreateObject {
 10609  	s.ObjectAttributeList = v
 10610  	return s
 10611  }
 10612  
 10613  // SetParentReference sets the ParentReference field's value.
 10614  func (s *BatchCreateObject) SetParentReference(v *ObjectReference) *BatchCreateObject {
 10615  	s.ParentReference = v
 10616  	return s
 10617  }
 10618  
 10619  // SetSchemaFacet sets the SchemaFacet field's value.
 10620  func (s *BatchCreateObject) SetSchemaFacet(v []*SchemaFacet) *BatchCreateObject {
 10621  	s.SchemaFacet = v
 10622  	return s
 10623  }
 10624  
 10625  // Represents the output of a CreateObject response operation.
 10626  type BatchCreateObjectResponse struct {
 10627  	_ struct{} `type:"structure"`
 10628  
 10629  	// The ID that is associated with the object.
 10630  	ObjectIdentifier *string `type:"string"`
 10631  }
 10632  
 10633  // String returns the string representation.
 10634  //
 10635  // API parameter values that are decorated as "sensitive" in the API will not
 10636  // be included in the string output. The member name will be present, but the
 10637  // value will be replaced with "sensitive".
 10638  func (s BatchCreateObjectResponse) String() string {
 10639  	return awsutil.Prettify(s)
 10640  }
 10641  
 10642  // GoString returns the string representation.
 10643  //
 10644  // API parameter values that are decorated as "sensitive" in the API will not
 10645  // be included in the string output. The member name will be present, but the
 10646  // value will be replaced with "sensitive".
 10647  func (s BatchCreateObjectResponse) GoString() string {
 10648  	return s.String()
 10649  }
 10650  
 10651  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 10652  func (s *BatchCreateObjectResponse) SetObjectIdentifier(v string) *BatchCreateObjectResponse {
 10653  	s.ObjectIdentifier = &v
 10654  	return s
 10655  }
 10656  
 10657  // Represents the output of a DeleteObject operation.
 10658  type BatchDeleteObject struct {
 10659  	_ struct{} `type:"structure"`
 10660  
 10661  	// The reference that identifies the object.
 10662  	//
 10663  	// ObjectReference is a required field
 10664  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 10665  }
 10666  
 10667  // String returns the string representation.
 10668  //
 10669  // API parameter values that are decorated as "sensitive" in the API will not
 10670  // be included in the string output. The member name will be present, but the
 10671  // value will be replaced with "sensitive".
 10672  func (s BatchDeleteObject) String() string {
 10673  	return awsutil.Prettify(s)
 10674  }
 10675  
 10676  // GoString returns the string representation.
 10677  //
 10678  // API parameter values that are decorated as "sensitive" in the API will not
 10679  // be included in the string output. The member name will be present, but the
 10680  // value will be replaced with "sensitive".
 10681  func (s BatchDeleteObject) GoString() string {
 10682  	return s.String()
 10683  }
 10684  
 10685  // Validate inspects the fields of the type to determine if they are valid.
 10686  func (s *BatchDeleteObject) Validate() error {
 10687  	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteObject"}
 10688  	if s.ObjectReference == nil {
 10689  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 10690  	}
 10691  
 10692  	if invalidParams.Len() > 0 {
 10693  		return invalidParams
 10694  	}
 10695  	return nil
 10696  }
 10697  
 10698  // SetObjectReference sets the ObjectReference field's value.
 10699  func (s *BatchDeleteObject) SetObjectReference(v *ObjectReference) *BatchDeleteObject {
 10700  	s.ObjectReference = v
 10701  	return s
 10702  }
 10703  
 10704  // Represents the output of a DeleteObject response operation.
 10705  type BatchDeleteObjectResponse struct {
 10706  	_ struct{} `type:"structure" nopayload:"true"`
 10707  }
 10708  
 10709  // String returns the string representation.
 10710  //
 10711  // API parameter values that are decorated as "sensitive" in the API will not
 10712  // be included in the string output. The member name will be present, but the
 10713  // value will be replaced with "sensitive".
 10714  func (s BatchDeleteObjectResponse) String() string {
 10715  	return awsutil.Prettify(s)
 10716  }
 10717  
 10718  // GoString returns the string representation.
 10719  //
 10720  // API parameter values that are decorated as "sensitive" in the API will not
 10721  // be included in the string output. The member name will be present, but the
 10722  // value will be replaced with "sensitive".
 10723  func (s BatchDeleteObjectResponse) GoString() string {
 10724  	return s.String()
 10725  }
 10726  
 10727  // Detaches the specified object from the specified index inside a BatchRead
 10728  // operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.
 10729  type BatchDetachFromIndex struct {
 10730  	_ struct{} `type:"structure"`
 10731  
 10732  	// A reference to the index object.
 10733  	//
 10734  	// IndexReference is a required field
 10735  	IndexReference *ObjectReference `type:"structure" required:"true"`
 10736  
 10737  	// A reference to the object being detached from the index.
 10738  	//
 10739  	// TargetReference is a required field
 10740  	TargetReference *ObjectReference `type:"structure" required:"true"`
 10741  }
 10742  
 10743  // String returns the string representation.
 10744  //
 10745  // API parameter values that are decorated as "sensitive" in the API will not
 10746  // be included in the string output. The member name will be present, but the
 10747  // value will be replaced with "sensitive".
 10748  func (s BatchDetachFromIndex) String() string {
 10749  	return awsutil.Prettify(s)
 10750  }
 10751  
 10752  // GoString returns the string representation.
 10753  //
 10754  // API parameter values that are decorated as "sensitive" in the API will not
 10755  // be included in the string output. The member name will be present, but the
 10756  // value will be replaced with "sensitive".
 10757  func (s BatchDetachFromIndex) GoString() string {
 10758  	return s.String()
 10759  }
 10760  
 10761  // Validate inspects the fields of the type to determine if they are valid.
 10762  func (s *BatchDetachFromIndex) Validate() error {
 10763  	invalidParams := request.ErrInvalidParams{Context: "BatchDetachFromIndex"}
 10764  	if s.IndexReference == nil {
 10765  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
 10766  	}
 10767  	if s.TargetReference == nil {
 10768  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
 10769  	}
 10770  
 10771  	if invalidParams.Len() > 0 {
 10772  		return invalidParams
 10773  	}
 10774  	return nil
 10775  }
 10776  
 10777  // SetIndexReference sets the IndexReference field's value.
 10778  func (s *BatchDetachFromIndex) SetIndexReference(v *ObjectReference) *BatchDetachFromIndex {
 10779  	s.IndexReference = v
 10780  	return s
 10781  }
 10782  
 10783  // SetTargetReference sets the TargetReference field's value.
 10784  func (s *BatchDetachFromIndex) SetTargetReference(v *ObjectReference) *BatchDetachFromIndex {
 10785  	s.TargetReference = v
 10786  	return s
 10787  }
 10788  
 10789  // Represents the output of a DetachFromIndex response operation.
 10790  type BatchDetachFromIndexResponse struct {
 10791  	_ struct{} `type:"structure"`
 10792  
 10793  	// The ObjectIdentifier of the object that was detached from the index.
 10794  	DetachedObjectIdentifier *string `type:"string"`
 10795  }
 10796  
 10797  // String returns the string representation.
 10798  //
 10799  // API parameter values that are decorated as "sensitive" in the API will not
 10800  // be included in the string output. The member name will be present, but the
 10801  // value will be replaced with "sensitive".
 10802  func (s BatchDetachFromIndexResponse) String() string {
 10803  	return awsutil.Prettify(s)
 10804  }
 10805  
 10806  // GoString returns the string representation.
 10807  //
 10808  // API parameter values that are decorated as "sensitive" in the API will not
 10809  // be included in the string output. The member name will be present, but the
 10810  // value will be replaced with "sensitive".
 10811  func (s BatchDetachFromIndexResponse) GoString() string {
 10812  	return s.String()
 10813  }
 10814  
 10815  // SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
 10816  func (s *BatchDetachFromIndexResponse) SetDetachedObjectIdentifier(v string) *BatchDetachFromIndexResponse {
 10817  	s.DetachedObjectIdentifier = &v
 10818  	return s
 10819  }
 10820  
 10821  // Represents the output of a DetachObject operation.
 10822  type BatchDetachObject struct {
 10823  	_ struct{} `type:"structure"`
 10824  
 10825  	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
 10826  	// for more information.
 10827  	BatchReferenceName *string `type:"string"`
 10828  
 10829  	// The name of the link.
 10830  	//
 10831  	// LinkName is a required field
 10832  	LinkName *string `min:"1" type:"string" required:"true"`
 10833  
 10834  	// Parent reference from which the object with the specified link name is detached.
 10835  	//
 10836  	// ParentReference is a required field
 10837  	ParentReference *ObjectReference `type:"structure" required:"true"`
 10838  }
 10839  
 10840  // String returns the string representation.
 10841  //
 10842  // API parameter values that are decorated as "sensitive" in the API will not
 10843  // be included in the string output. The member name will be present, but the
 10844  // value will be replaced with "sensitive".
 10845  func (s BatchDetachObject) String() string {
 10846  	return awsutil.Prettify(s)
 10847  }
 10848  
 10849  // GoString returns the string representation.
 10850  //
 10851  // API parameter values that are decorated as "sensitive" in the API will not
 10852  // be included in the string output. The member name will be present, but the
 10853  // value will be replaced with "sensitive".
 10854  func (s BatchDetachObject) GoString() string {
 10855  	return s.String()
 10856  }
 10857  
 10858  // Validate inspects the fields of the type to determine if they are valid.
 10859  func (s *BatchDetachObject) Validate() error {
 10860  	invalidParams := request.ErrInvalidParams{Context: "BatchDetachObject"}
 10861  	if s.LinkName == nil {
 10862  		invalidParams.Add(request.NewErrParamRequired("LinkName"))
 10863  	}
 10864  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 10865  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 10866  	}
 10867  	if s.ParentReference == nil {
 10868  		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
 10869  	}
 10870  
 10871  	if invalidParams.Len() > 0 {
 10872  		return invalidParams
 10873  	}
 10874  	return nil
 10875  }
 10876  
 10877  // SetBatchReferenceName sets the BatchReferenceName field's value.
 10878  func (s *BatchDetachObject) SetBatchReferenceName(v string) *BatchDetachObject {
 10879  	s.BatchReferenceName = &v
 10880  	return s
 10881  }
 10882  
 10883  // SetLinkName sets the LinkName field's value.
 10884  func (s *BatchDetachObject) SetLinkName(v string) *BatchDetachObject {
 10885  	s.LinkName = &v
 10886  	return s
 10887  }
 10888  
 10889  // SetParentReference sets the ParentReference field's value.
 10890  func (s *BatchDetachObject) SetParentReference(v *ObjectReference) *BatchDetachObject {
 10891  	s.ParentReference = v
 10892  	return s
 10893  }
 10894  
 10895  // Represents the output of a DetachObject response operation.
 10896  type BatchDetachObjectResponse struct {
 10897  	_ struct{} `type:"structure"`
 10898  
 10899  	// The ObjectIdentifier of the detached object.
 10900  	DetachedObjectIdentifier *string `locationName:"detachedObjectIdentifier" type:"string"`
 10901  }
 10902  
 10903  // String returns the string representation.
 10904  //
 10905  // API parameter values that are decorated as "sensitive" in the API will not
 10906  // be included in the string output. The member name will be present, but the
 10907  // value will be replaced with "sensitive".
 10908  func (s BatchDetachObjectResponse) String() string {
 10909  	return awsutil.Prettify(s)
 10910  }
 10911  
 10912  // GoString returns the string representation.
 10913  //
 10914  // API parameter values that are decorated as "sensitive" in the API will not
 10915  // be included in the string output. The member name will be present, but the
 10916  // value will be replaced with "sensitive".
 10917  func (s BatchDetachObjectResponse) GoString() string {
 10918  	return s.String()
 10919  }
 10920  
 10921  // SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
 10922  func (s *BatchDetachObjectResponse) SetDetachedObjectIdentifier(v string) *BatchDetachObjectResponse {
 10923  	s.DetachedObjectIdentifier = &v
 10924  	return s
 10925  }
 10926  
 10927  // Detaches the specified policy from the specified directory inside a BatchWrite
 10928  // operation. For more information, see DetachPolicy and BatchWriteRequest$Operations.
 10929  type BatchDetachPolicy struct {
 10930  	_ struct{} `type:"structure"`
 10931  
 10932  	// Reference that identifies the object whose policy object will be detached.
 10933  	//
 10934  	// ObjectReference is a required field
 10935  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 10936  
 10937  	// Reference that identifies the policy object.
 10938  	//
 10939  	// PolicyReference is a required field
 10940  	PolicyReference *ObjectReference `type:"structure" required:"true"`
 10941  }
 10942  
 10943  // String returns the string representation.
 10944  //
 10945  // API parameter values that are decorated as "sensitive" in the API will not
 10946  // be included in the string output. The member name will be present, but the
 10947  // value will be replaced with "sensitive".
 10948  func (s BatchDetachPolicy) String() string {
 10949  	return awsutil.Prettify(s)
 10950  }
 10951  
 10952  // GoString returns the string representation.
 10953  //
 10954  // API parameter values that are decorated as "sensitive" in the API will not
 10955  // be included in the string output. The member name will be present, but the
 10956  // value will be replaced with "sensitive".
 10957  func (s BatchDetachPolicy) GoString() string {
 10958  	return s.String()
 10959  }
 10960  
 10961  // Validate inspects the fields of the type to determine if they are valid.
 10962  func (s *BatchDetachPolicy) Validate() error {
 10963  	invalidParams := request.ErrInvalidParams{Context: "BatchDetachPolicy"}
 10964  	if s.ObjectReference == nil {
 10965  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 10966  	}
 10967  	if s.PolicyReference == nil {
 10968  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
 10969  	}
 10970  
 10971  	if invalidParams.Len() > 0 {
 10972  		return invalidParams
 10973  	}
 10974  	return nil
 10975  }
 10976  
 10977  // SetObjectReference sets the ObjectReference field's value.
 10978  func (s *BatchDetachPolicy) SetObjectReference(v *ObjectReference) *BatchDetachPolicy {
 10979  	s.ObjectReference = v
 10980  	return s
 10981  }
 10982  
 10983  // SetPolicyReference sets the PolicyReference field's value.
 10984  func (s *BatchDetachPolicy) SetPolicyReference(v *ObjectReference) *BatchDetachPolicy {
 10985  	s.PolicyReference = v
 10986  	return s
 10987  }
 10988  
 10989  // Represents the output of a DetachPolicy response operation.
 10990  type BatchDetachPolicyResponse struct {
 10991  	_ struct{} `type:"structure" nopayload:"true"`
 10992  }
 10993  
 10994  // String returns the string representation.
 10995  //
 10996  // API parameter values that are decorated as "sensitive" in the API will not
 10997  // be included in the string output. The member name will be present, but the
 10998  // value will be replaced with "sensitive".
 10999  func (s BatchDetachPolicyResponse) String() string {
 11000  	return awsutil.Prettify(s)
 11001  }
 11002  
 11003  // GoString returns the string representation.
 11004  //
 11005  // API parameter values that are decorated as "sensitive" in the API will not
 11006  // be included in the string output. The member name will be present, but the
 11007  // value will be replaced with "sensitive".
 11008  func (s BatchDetachPolicyResponse) GoString() string {
 11009  	return s.String()
 11010  }
 11011  
 11012  // Detaches a typed link from a specified source and target object inside a
 11013  // BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.
 11014  type BatchDetachTypedLink struct {
 11015  	_ struct{} `type:"structure"`
 11016  
 11017  	// Used to accept a typed link specifier as input.
 11018  	//
 11019  	// TypedLinkSpecifier is a required field
 11020  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 11021  }
 11022  
 11023  // String returns the string representation.
 11024  //
 11025  // API parameter values that are decorated as "sensitive" in the API will not
 11026  // be included in the string output. The member name will be present, but the
 11027  // value will be replaced with "sensitive".
 11028  func (s BatchDetachTypedLink) String() string {
 11029  	return awsutil.Prettify(s)
 11030  }
 11031  
 11032  // GoString returns the string representation.
 11033  //
 11034  // API parameter values that are decorated as "sensitive" in the API will not
 11035  // be included in the string output. The member name will be present, but the
 11036  // value will be replaced with "sensitive".
 11037  func (s BatchDetachTypedLink) GoString() string {
 11038  	return s.String()
 11039  }
 11040  
 11041  // Validate inspects the fields of the type to determine if they are valid.
 11042  func (s *BatchDetachTypedLink) Validate() error {
 11043  	invalidParams := request.ErrInvalidParams{Context: "BatchDetachTypedLink"}
 11044  	if s.TypedLinkSpecifier == nil {
 11045  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 11046  	}
 11047  	if s.TypedLinkSpecifier != nil {
 11048  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 11049  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 11050  		}
 11051  	}
 11052  
 11053  	if invalidParams.Len() > 0 {
 11054  		return invalidParams
 11055  	}
 11056  	return nil
 11057  }
 11058  
 11059  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 11060  func (s *BatchDetachTypedLink) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchDetachTypedLink {
 11061  	s.TypedLinkSpecifier = v
 11062  	return s
 11063  }
 11064  
 11065  // Represents the output of a DetachTypedLink response operation.
 11066  type BatchDetachTypedLinkResponse struct {
 11067  	_ struct{} `type:"structure" nopayload:"true"`
 11068  }
 11069  
 11070  // String returns the string representation.
 11071  //
 11072  // API parameter values that are decorated as "sensitive" in the API will not
 11073  // be included in the string output. The member name will be present, but the
 11074  // value will be replaced with "sensitive".
 11075  func (s BatchDetachTypedLinkResponse) String() string {
 11076  	return awsutil.Prettify(s)
 11077  }
 11078  
 11079  // GoString returns the string representation.
 11080  //
 11081  // API parameter values that are decorated as "sensitive" in the API will not
 11082  // be included in the string output. The member name will be present, but the
 11083  // value will be replaced with "sensitive".
 11084  func (s BatchDetachTypedLinkResponse) GoString() string {
 11085  	return s.String()
 11086  }
 11087  
 11088  // Retrieves attributes that are associated with a typed link inside a BatchRead
 11089  // operation. For more information, see GetLinkAttributes and BatchReadRequest$Operations.
 11090  type BatchGetLinkAttributes struct {
 11091  	_ struct{} `type:"structure"`
 11092  
 11093  	// A list of attribute names whose values will be retrieved.
 11094  	//
 11095  	// AttributeNames is a required field
 11096  	AttributeNames []*string `type:"list" required:"true"`
 11097  
 11098  	// Allows a typed link specifier to be accepted as input.
 11099  	//
 11100  	// TypedLinkSpecifier is a required field
 11101  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 11102  }
 11103  
 11104  // String returns the string representation.
 11105  //
 11106  // API parameter values that are decorated as "sensitive" in the API will not
 11107  // be included in the string output. The member name will be present, but the
 11108  // value will be replaced with "sensitive".
 11109  func (s BatchGetLinkAttributes) String() string {
 11110  	return awsutil.Prettify(s)
 11111  }
 11112  
 11113  // GoString returns the string representation.
 11114  //
 11115  // API parameter values that are decorated as "sensitive" in the API will not
 11116  // be included in the string output. The member name will be present, but the
 11117  // value will be replaced with "sensitive".
 11118  func (s BatchGetLinkAttributes) GoString() string {
 11119  	return s.String()
 11120  }
 11121  
 11122  // Validate inspects the fields of the type to determine if they are valid.
 11123  func (s *BatchGetLinkAttributes) Validate() error {
 11124  	invalidParams := request.ErrInvalidParams{Context: "BatchGetLinkAttributes"}
 11125  	if s.AttributeNames == nil {
 11126  		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
 11127  	}
 11128  	if s.TypedLinkSpecifier == nil {
 11129  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 11130  	}
 11131  	if s.TypedLinkSpecifier != nil {
 11132  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 11133  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 11134  		}
 11135  	}
 11136  
 11137  	if invalidParams.Len() > 0 {
 11138  		return invalidParams
 11139  	}
 11140  	return nil
 11141  }
 11142  
 11143  // SetAttributeNames sets the AttributeNames field's value.
 11144  func (s *BatchGetLinkAttributes) SetAttributeNames(v []*string) *BatchGetLinkAttributes {
 11145  	s.AttributeNames = v
 11146  	return s
 11147  }
 11148  
 11149  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 11150  func (s *BatchGetLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchGetLinkAttributes {
 11151  	s.TypedLinkSpecifier = v
 11152  	return s
 11153  }
 11154  
 11155  // Represents the output of a GetLinkAttributes response operation.
 11156  type BatchGetLinkAttributesResponse struct {
 11157  	_ struct{} `type:"structure"`
 11158  
 11159  	// The attributes that are associated with the typed link.
 11160  	Attributes []*AttributeKeyAndValue `type:"list"`
 11161  }
 11162  
 11163  // String returns the string representation.
 11164  //
 11165  // API parameter values that are decorated as "sensitive" in the API will not
 11166  // be included in the string output. The member name will be present, but the
 11167  // value will be replaced with "sensitive".
 11168  func (s BatchGetLinkAttributesResponse) String() string {
 11169  	return awsutil.Prettify(s)
 11170  }
 11171  
 11172  // GoString returns the string representation.
 11173  //
 11174  // API parameter values that are decorated as "sensitive" in the API will not
 11175  // be included in the string output. The member name will be present, but the
 11176  // value will be replaced with "sensitive".
 11177  func (s BatchGetLinkAttributesResponse) GoString() string {
 11178  	return s.String()
 11179  }
 11180  
 11181  // SetAttributes sets the Attributes field's value.
 11182  func (s *BatchGetLinkAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetLinkAttributesResponse {
 11183  	s.Attributes = v
 11184  	return s
 11185  }
 11186  
 11187  // Retrieves attributes within a facet that are associated with an object inside
 11188  // an BatchRead operation. For more information, see GetObjectAttributes and
 11189  // BatchReadRequest$Operations.
 11190  type BatchGetObjectAttributes struct {
 11191  	_ struct{} `type:"structure"`
 11192  
 11193  	// List of attribute names whose values will be retrieved.
 11194  	//
 11195  	// AttributeNames is a required field
 11196  	AttributeNames []*string `type:"list" required:"true"`
 11197  
 11198  	// Reference that identifies the object whose attributes will be retrieved.
 11199  	//
 11200  	// ObjectReference is a required field
 11201  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 11202  
 11203  	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
 11204  	// for details.
 11205  	//
 11206  	// SchemaFacet is a required field
 11207  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
 11208  }
 11209  
 11210  // String returns the string representation.
 11211  //
 11212  // API parameter values that are decorated as "sensitive" in the API will not
 11213  // be included in the string output. The member name will be present, but the
 11214  // value will be replaced with "sensitive".
 11215  func (s BatchGetObjectAttributes) String() string {
 11216  	return awsutil.Prettify(s)
 11217  }
 11218  
 11219  // GoString returns the string representation.
 11220  //
 11221  // API parameter values that are decorated as "sensitive" in the API will not
 11222  // be included in the string output. The member name will be present, but the
 11223  // value will be replaced with "sensitive".
 11224  func (s BatchGetObjectAttributes) GoString() string {
 11225  	return s.String()
 11226  }
 11227  
 11228  // Validate inspects the fields of the type to determine if they are valid.
 11229  func (s *BatchGetObjectAttributes) Validate() error {
 11230  	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectAttributes"}
 11231  	if s.AttributeNames == nil {
 11232  		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
 11233  	}
 11234  	if s.ObjectReference == nil {
 11235  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 11236  	}
 11237  	if s.SchemaFacet == nil {
 11238  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
 11239  	}
 11240  	if s.SchemaFacet != nil {
 11241  		if err := s.SchemaFacet.Validate(); err != nil {
 11242  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
 11243  		}
 11244  	}
 11245  
 11246  	if invalidParams.Len() > 0 {
 11247  		return invalidParams
 11248  	}
 11249  	return nil
 11250  }
 11251  
 11252  // SetAttributeNames sets the AttributeNames field's value.
 11253  func (s *BatchGetObjectAttributes) SetAttributeNames(v []*string) *BatchGetObjectAttributes {
 11254  	s.AttributeNames = v
 11255  	return s
 11256  }
 11257  
 11258  // SetObjectReference sets the ObjectReference field's value.
 11259  func (s *BatchGetObjectAttributes) SetObjectReference(v *ObjectReference) *BatchGetObjectAttributes {
 11260  	s.ObjectReference = v
 11261  	return s
 11262  }
 11263  
 11264  // SetSchemaFacet sets the SchemaFacet field's value.
 11265  func (s *BatchGetObjectAttributes) SetSchemaFacet(v *SchemaFacet) *BatchGetObjectAttributes {
 11266  	s.SchemaFacet = v
 11267  	return s
 11268  }
 11269  
 11270  // Represents the output of a GetObjectAttributes response operation.
 11271  type BatchGetObjectAttributesResponse struct {
 11272  	_ struct{} `type:"structure"`
 11273  
 11274  	// The attribute values that are associated with an object.
 11275  	Attributes []*AttributeKeyAndValue `type:"list"`
 11276  }
 11277  
 11278  // String returns the string representation.
 11279  //
 11280  // API parameter values that are decorated as "sensitive" in the API will not
 11281  // be included in the string output. The member name will be present, but the
 11282  // value will be replaced with "sensitive".
 11283  func (s BatchGetObjectAttributesResponse) String() string {
 11284  	return awsutil.Prettify(s)
 11285  }
 11286  
 11287  // GoString returns the string representation.
 11288  //
 11289  // API parameter values that are decorated as "sensitive" in the API will not
 11290  // be included in the string output. The member name will be present, but the
 11291  // value will be replaced with "sensitive".
 11292  func (s BatchGetObjectAttributesResponse) GoString() string {
 11293  	return s.String()
 11294  }
 11295  
 11296  // SetAttributes sets the Attributes field's value.
 11297  func (s *BatchGetObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetObjectAttributesResponse {
 11298  	s.Attributes = v
 11299  	return s
 11300  }
 11301  
 11302  // Retrieves metadata about an object inside a BatchRead operation. For more
 11303  // information, see GetObjectInformation and BatchReadRequest$Operations.
 11304  type BatchGetObjectInformation struct {
 11305  	_ struct{} `type:"structure"`
 11306  
 11307  	// A reference to the object.
 11308  	//
 11309  	// ObjectReference is a required field
 11310  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 11311  }
 11312  
 11313  // String returns the string representation.
 11314  //
 11315  // API parameter values that are decorated as "sensitive" in the API will not
 11316  // be included in the string output. The member name will be present, but the
 11317  // value will be replaced with "sensitive".
 11318  func (s BatchGetObjectInformation) String() string {
 11319  	return awsutil.Prettify(s)
 11320  }
 11321  
 11322  // GoString returns the string representation.
 11323  //
 11324  // API parameter values that are decorated as "sensitive" in the API will not
 11325  // be included in the string output. The member name will be present, but the
 11326  // value will be replaced with "sensitive".
 11327  func (s BatchGetObjectInformation) GoString() string {
 11328  	return s.String()
 11329  }
 11330  
 11331  // Validate inspects the fields of the type to determine if they are valid.
 11332  func (s *BatchGetObjectInformation) Validate() error {
 11333  	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectInformation"}
 11334  	if s.ObjectReference == nil {
 11335  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 11336  	}
 11337  
 11338  	if invalidParams.Len() > 0 {
 11339  		return invalidParams
 11340  	}
 11341  	return nil
 11342  }
 11343  
 11344  // SetObjectReference sets the ObjectReference field's value.
 11345  func (s *BatchGetObjectInformation) SetObjectReference(v *ObjectReference) *BatchGetObjectInformation {
 11346  	s.ObjectReference = v
 11347  	return s
 11348  }
 11349  
 11350  // Represents the output of a GetObjectInformation response operation.
 11351  type BatchGetObjectInformationResponse struct {
 11352  	_ struct{} `type:"structure"`
 11353  
 11354  	// The ObjectIdentifier of the specified object.
 11355  	ObjectIdentifier *string `type:"string"`
 11356  
 11357  	// The facets attached to the specified object.
 11358  	SchemaFacets []*SchemaFacet `type:"list"`
 11359  }
 11360  
 11361  // String returns the string representation.
 11362  //
 11363  // API parameter values that are decorated as "sensitive" in the API will not
 11364  // be included in the string output. The member name will be present, but the
 11365  // value will be replaced with "sensitive".
 11366  func (s BatchGetObjectInformationResponse) String() string {
 11367  	return awsutil.Prettify(s)
 11368  }
 11369  
 11370  // GoString returns the string representation.
 11371  //
 11372  // API parameter values that are decorated as "sensitive" in the API will not
 11373  // be included in the string output. The member name will be present, but the
 11374  // value will be replaced with "sensitive".
 11375  func (s BatchGetObjectInformationResponse) GoString() string {
 11376  	return s.String()
 11377  }
 11378  
 11379  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 11380  func (s *BatchGetObjectInformationResponse) SetObjectIdentifier(v string) *BatchGetObjectInformationResponse {
 11381  	s.ObjectIdentifier = &v
 11382  	return s
 11383  }
 11384  
 11385  // SetSchemaFacets sets the SchemaFacets field's value.
 11386  func (s *BatchGetObjectInformationResponse) SetSchemaFacets(v []*SchemaFacet) *BatchGetObjectInformationResponse {
 11387  	s.SchemaFacets = v
 11388  	return s
 11389  }
 11390  
 11391  // Lists indices attached to an object inside a BatchRead operation. For more
 11392  // information, see ListAttachedIndices and BatchReadRequest$Operations.
 11393  type BatchListAttachedIndices struct {
 11394  	_ struct{} `type:"structure"`
 11395  
 11396  	// The maximum number of results to retrieve.
 11397  	MaxResults *int64 `min:"1" type:"integer"`
 11398  
 11399  	// The pagination token.
 11400  	NextToken *string `type:"string"`
 11401  
 11402  	// A reference to the object that has indices attached.
 11403  	//
 11404  	// TargetReference is a required field
 11405  	TargetReference *ObjectReference `type:"structure" required:"true"`
 11406  }
 11407  
 11408  // String returns the string representation.
 11409  //
 11410  // API parameter values that are decorated as "sensitive" in the API will not
 11411  // be included in the string output. The member name will be present, but the
 11412  // value will be replaced with "sensitive".
 11413  func (s BatchListAttachedIndices) String() string {
 11414  	return awsutil.Prettify(s)
 11415  }
 11416  
 11417  // GoString returns the string representation.
 11418  //
 11419  // API parameter values that are decorated as "sensitive" in the API will not
 11420  // be included in the string output. The member name will be present, but the
 11421  // value will be replaced with "sensitive".
 11422  func (s BatchListAttachedIndices) GoString() string {
 11423  	return s.String()
 11424  }
 11425  
 11426  // Validate inspects the fields of the type to determine if they are valid.
 11427  func (s *BatchListAttachedIndices) Validate() error {
 11428  	invalidParams := request.ErrInvalidParams{Context: "BatchListAttachedIndices"}
 11429  	if s.MaxResults != nil && *s.MaxResults < 1 {
 11430  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 11431  	}
 11432  	if s.TargetReference == nil {
 11433  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
 11434  	}
 11435  
 11436  	if invalidParams.Len() > 0 {
 11437  		return invalidParams
 11438  	}
 11439  	return nil
 11440  }
 11441  
 11442  // SetMaxResults sets the MaxResults field's value.
 11443  func (s *BatchListAttachedIndices) SetMaxResults(v int64) *BatchListAttachedIndices {
 11444  	s.MaxResults = &v
 11445  	return s
 11446  }
 11447  
 11448  // SetNextToken sets the NextToken field's value.
 11449  func (s *BatchListAttachedIndices) SetNextToken(v string) *BatchListAttachedIndices {
 11450  	s.NextToken = &v
 11451  	return s
 11452  }
 11453  
 11454  // SetTargetReference sets the TargetReference field's value.
 11455  func (s *BatchListAttachedIndices) SetTargetReference(v *ObjectReference) *BatchListAttachedIndices {
 11456  	s.TargetReference = v
 11457  	return s
 11458  }
 11459  
 11460  // Represents the output of a ListAttachedIndices response operation.
 11461  type BatchListAttachedIndicesResponse struct {
 11462  	_ struct{} `type:"structure"`
 11463  
 11464  	// The indices attached to the specified object.
 11465  	IndexAttachments []*IndexAttachment `type:"list"`
 11466  
 11467  	// The pagination token.
 11468  	NextToken *string `type:"string"`
 11469  }
 11470  
 11471  // String returns the string representation.
 11472  //
 11473  // API parameter values that are decorated as "sensitive" in the API will not
 11474  // be included in the string output. The member name will be present, but the
 11475  // value will be replaced with "sensitive".
 11476  func (s BatchListAttachedIndicesResponse) String() string {
 11477  	return awsutil.Prettify(s)
 11478  }
 11479  
 11480  // GoString returns the string representation.
 11481  //
 11482  // API parameter values that are decorated as "sensitive" in the API will not
 11483  // be included in the string output. The member name will be present, but the
 11484  // value will be replaced with "sensitive".
 11485  func (s BatchListAttachedIndicesResponse) GoString() string {
 11486  	return s.String()
 11487  }
 11488  
 11489  // SetIndexAttachments sets the IndexAttachments field's value.
 11490  func (s *BatchListAttachedIndicesResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListAttachedIndicesResponse {
 11491  	s.IndexAttachments = v
 11492  	return s
 11493  }
 11494  
 11495  // SetNextToken sets the NextToken field's value.
 11496  func (s *BatchListAttachedIndicesResponse) SetNextToken(v string) *BatchListAttachedIndicesResponse {
 11497  	s.NextToken = &v
 11498  	return s
 11499  }
 11500  
 11501  // Returns a paginated list of all the incoming TypedLinkSpecifier information
 11502  // for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks
 11503  // and BatchReadRequest$Operations.
 11504  type BatchListIncomingTypedLinks struct {
 11505  	_ struct{} `type:"structure"`
 11506  
 11507  	// Provides range filters for multiple attributes. When providing ranges to
 11508  	// typed link selection, any inexact ranges must be specified at the end. Any
 11509  	// attributes that do not have a range specified are presumed to match the entire
 11510  	// range.
 11511  	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
 11512  
 11513  	// Filters are interpreted in the order of the attributes on the typed link
 11514  	// facet, not the order in which they are supplied to any API calls.
 11515  	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
 11516  
 11517  	// The maximum number of results to retrieve.
 11518  	MaxResults *int64 `min:"1" type:"integer"`
 11519  
 11520  	// The pagination token.
 11521  	NextToken *string `type:"string"`
 11522  
 11523  	// The reference that identifies the object whose attributes will be listed.
 11524  	//
 11525  	// ObjectReference is a required field
 11526  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 11527  }
 11528  
 11529  // String returns the string representation.
 11530  //
 11531  // API parameter values that are decorated as "sensitive" in the API will not
 11532  // be included in the string output. The member name will be present, but the
 11533  // value will be replaced with "sensitive".
 11534  func (s BatchListIncomingTypedLinks) String() string {
 11535  	return awsutil.Prettify(s)
 11536  }
 11537  
 11538  // GoString returns the string representation.
 11539  //
 11540  // API parameter values that are decorated as "sensitive" in the API will not
 11541  // be included in the string output. The member name will be present, but the
 11542  // value will be replaced with "sensitive".
 11543  func (s BatchListIncomingTypedLinks) GoString() string {
 11544  	return s.String()
 11545  }
 11546  
 11547  // Validate inspects the fields of the type to determine if they are valid.
 11548  func (s *BatchListIncomingTypedLinks) Validate() error {
 11549  	invalidParams := request.ErrInvalidParams{Context: "BatchListIncomingTypedLinks"}
 11550  	if s.MaxResults != nil && *s.MaxResults < 1 {
 11551  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 11552  	}
 11553  	if s.ObjectReference == nil {
 11554  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 11555  	}
 11556  	if s.FilterAttributeRanges != nil {
 11557  		for i, v := range s.FilterAttributeRanges {
 11558  			if v == nil {
 11559  				continue
 11560  			}
 11561  			if err := v.Validate(); err != nil {
 11562  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
 11563  			}
 11564  		}
 11565  	}
 11566  	if s.FilterTypedLink != nil {
 11567  		if err := s.FilterTypedLink.Validate(); err != nil {
 11568  			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
 11569  		}
 11570  	}
 11571  
 11572  	if invalidParams.Len() > 0 {
 11573  		return invalidParams
 11574  	}
 11575  	return nil
 11576  }
 11577  
 11578  // SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
 11579  func (s *BatchListIncomingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListIncomingTypedLinks {
 11580  	s.FilterAttributeRanges = v
 11581  	return s
 11582  }
 11583  
 11584  // SetFilterTypedLink sets the FilterTypedLink field's value.
 11585  func (s *BatchListIncomingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListIncomingTypedLinks {
 11586  	s.FilterTypedLink = v
 11587  	return s
 11588  }
 11589  
 11590  // SetMaxResults sets the MaxResults field's value.
 11591  func (s *BatchListIncomingTypedLinks) SetMaxResults(v int64) *BatchListIncomingTypedLinks {
 11592  	s.MaxResults = &v
 11593  	return s
 11594  }
 11595  
 11596  // SetNextToken sets the NextToken field's value.
 11597  func (s *BatchListIncomingTypedLinks) SetNextToken(v string) *BatchListIncomingTypedLinks {
 11598  	s.NextToken = &v
 11599  	return s
 11600  }
 11601  
 11602  // SetObjectReference sets the ObjectReference field's value.
 11603  func (s *BatchListIncomingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListIncomingTypedLinks {
 11604  	s.ObjectReference = v
 11605  	return s
 11606  }
 11607  
 11608  // Represents the output of a ListIncomingTypedLinks response operation.
 11609  type BatchListIncomingTypedLinksResponse struct {
 11610  	_ struct{} `type:"structure"`
 11611  
 11612  	// Returns one or more typed link specifiers as output.
 11613  	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
 11614  
 11615  	// The pagination token.
 11616  	NextToken *string `type:"string"`
 11617  }
 11618  
 11619  // String returns the string representation.
 11620  //
 11621  // API parameter values that are decorated as "sensitive" in the API will not
 11622  // be included in the string output. The member name will be present, but the
 11623  // value will be replaced with "sensitive".
 11624  func (s BatchListIncomingTypedLinksResponse) String() string {
 11625  	return awsutil.Prettify(s)
 11626  }
 11627  
 11628  // GoString returns the string representation.
 11629  //
 11630  // API parameter values that are decorated as "sensitive" in the API will not
 11631  // be included in the string output. The member name will be present, but the
 11632  // value will be replaced with "sensitive".
 11633  func (s BatchListIncomingTypedLinksResponse) GoString() string {
 11634  	return s.String()
 11635  }
 11636  
 11637  // SetLinkSpecifiers sets the LinkSpecifiers field's value.
 11638  func (s *BatchListIncomingTypedLinksResponse) SetLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListIncomingTypedLinksResponse {
 11639  	s.LinkSpecifiers = v
 11640  	return s
 11641  }
 11642  
 11643  // SetNextToken sets the NextToken field's value.
 11644  func (s *BatchListIncomingTypedLinksResponse) SetNextToken(v string) *BatchListIncomingTypedLinksResponse {
 11645  	s.NextToken = &v
 11646  	return s
 11647  }
 11648  
 11649  // Lists objects attached to the specified index inside a BatchRead operation.
 11650  // For more information, see ListIndex and BatchReadRequest$Operations.
 11651  type BatchListIndex struct {
 11652  	_ struct{} `type:"structure"`
 11653  
 11654  	// The reference to the index to list.
 11655  	//
 11656  	// IndexReference is a required field
 11657  	IndexReference *ObjectReference `type:"structure" required:"true"`
 11658  
 11659  	// The maximum number of results to retrieve.
 11660  	MaxResults *int64 `min:"1" type:"integer"`
 11661  
 11662  	// The pagination token.
 11663  	NextToken *string `type:"string"`
 11664  
 11665  	// Specifies the ranges of indexed values that you want to query.
 11666  	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
 11667  }
 11668  
 11669  // String returns the string representation.
 11670  //
 11671  // API parameter values that are decorated as "sensitive" in the API will not
 11672  // be included in the string output. The member name will be present, but the
 11673  // value will be replaced with "sensitive".
 11674  func (s BatchListIndex) String() string {
 11675  	return awsutil.Prettify(s)
 11676  }
 11677  
 11678  // GoString returns the string representation.
 11679  //
 11680  // API parameter values that are decorated as "sensitive" in the API will not
 11681  // be included in the string output. The member name will be present, but the
 11682  // value will be replaced with "sensitive".
 11683  func (s BatchListIndex) GoString() string {
 11684  	return s.String()
 11685  }
 11686  
 11687  // Validate inspects the fields of the type to determine if they are valid.
 11688  func (s *BatchListIndex) Validate() error {
 11689  	invalidParams := request.ErrInvalidParams{Context: "BatchListIndex"}
 11690  	if s.IndexReference == nil {
 11691  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
 11692  	}
 11693  	if s.MaxResults != nil && *s.MaxResults < 1 {
 11694  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 11695  	}
 11696  	if s.RangesOnIndexedValues != nil {
 11697  		for i, v := range s.RangesOnIndexedValues {
 11698  			if v == nil {
 11699  				continue
 11700  			}
 11701  			if err := v.Validate(); err != nil {
 11702  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
 11703  			}
 11704  		}
 11705  	}
 11706  
 11707  	if invalidParams.Len() > 0 {
 11708  		return invalidParams
 11709  	}
 11710  	return nil
 11711  }
 11712  
 11713  // SetIndexReference sets the IndexReference field's value.
 11714  func (s *BatchListIndex) SetIndexReference(v *ObjectReference) *BatchListIndex {
 11715  	s.IndexReference = v
 11716  	return s
 11717  }
 11718  
 11719  // SetMaxResults sets the MaxResults field's value.
 11720  func (s *BatchListIndex) SetMaxResults(v int64) *BatchListIndex {
 11721  	s.MaxResults = &v
 11722  	return s
 11723  }
 11724  
 11725  // SetNextToken sets the NextToken field's value.
 11726  func (s *BatchListIndex) SetNextToken(v string) *BatchListIndex {
 11727  	s.NextToken = &v
 11728  	return s
 11729  }
 11730  
 11731  // SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
 11732  func (s *BatchListIndex) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *BatchListIndex {
 11733  	s.RangesOnIndexedValues = v
 11734  	return s
 11735  }
 11736  
 11737  // Represents the output of a ListIndex response operation.
 11738  type BatchListIndexResponse struct {
 11739  	_ struct{} `type:"structure"`
 11740  
 11741  	// The objects and indexed values attached to the index.
 11742  	IndexAttachments []*IndexAttachment `type:"list"`
 11743  
 11744  	// The pagination token.
 11745  	NextToken *string `type:"string"`
 11746  }
 11747  
 11748  // String returns the string representation.
 11749  //
 11750  // API parameter values that are decorated as "sensitive" in the API will not
 11751  // be included in the string output. The member name will be present, but the
 11752  // value will be replaced with "sensitive".
 11753  func (s BatchListIndexResponse) String() string {
 11754  	return awsutil.Prettify(s)
 11755  }
 11756  
 11757  // GoString returns the string representation.
 11758  //
 11759  // API parameter values that are decorated as "sensitive" in the API will not
 11760  // be included in the string output. The member name will be present, but the
 11761  // value will be replaced with "sensitive".
 11762  func (s BatchListIndexResponse) GoString() string {
 11763  	return s.String()
 11764  }
 11765  
 11766  // SetIndexAttachments sets the IndexAttachments field's value.
 11767  func (s *BatchListIndexResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListIndexResponse {
 11768  	s.IndexAttachments = v
 11769  	return s
 11770  }
 11771  
 11772  // SetNextToken sets the NextToken field's value.
 11773  func (s *BatchListIndexResponse) SetNextToken(v string) *BatchListIndexResponse {
 11774  	s.NextToken = &v
 11775  	return s
 11776  }
 11777  
 11778  // Represents the output of a ListObjectAttributes operation.
 11779  type BatchListObjectAttributes struct {
 11780  	_ struct{} `type:"structure"`
 11781  
 11782  	// Used to filter the list of object attributes that are associated with a certain
 11783  	// facet.
 11784  	FacetFilter *SchemaFacet `type:"structure"`
 11785  
 11786  	// The maximum number of items to be retrieved in a single call. This is an
 11787  	// approximate number.
 11788  	MaxResults *int64 `min:"1" type:"integer"`
 11789  
 11790  	// The pagination token.
 11791  	NextToken *string `type:"string"`
 11792  
 11793  	// Reference of the object whose attributes need to be listed.
 11794  	//
 11795  	// ObjectReference is a required field
 11796  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 11797  }
 11798  
 11799  // String returns the string representation.
 11800  //
 11801  // API parameter values that are decorated as "sensitive" in the API will not
 11802  // be included in the string output. The member name will be present, but the
 11803  // value will be replaced with "sensitive".
 11804  func (s BatchListObjectAttributes) String() string {
 11805  	return awsutil.Prettify(s)
 11806  }
 11807  
 11808  // GoString returns the string representation.
 11809  //
 11810  // API parameter values that are decorated as "sensitive" in the API will not
 11811  // be included in the string output. The member name will be present, but the
 11812  // value will be replaced with "sensitive".
 11813  func (s BatchListObjectAttributes) GoString() string {
 11814  	return s.String()
 11815  }
 11816  
 11817  // Validate inspects the fields of the type to determine if they are valid.
 11818  func (s *BatchListObjectAttributes) Validate() error {
 11819  	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectAttributes"}
 11820  	if s.MaxResults != nil && *s.MaxResults < 1 {
 11821  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 11822  	}
 11823  	if s.ObjectReference == nil {
 11824  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 11825  	}
 11826  	if s.FacetFilter != nil {
 11827  		if err := s.FacetFilter.Validate(); err != nil {
 11828  			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
 11829  		}
 11830  	}
 11831  
 11832  	if invalidParams.Len() > 0 {
 11833  		return invalidParams
 11834  	}
 11835  	return nil
 11836  }
 11837  
 11838  // SetFacetFilter sets the FacetFilter field's value.
 11839  func (s *BatchListObjectAttributes) SetFacetFilter(v *SchemaFacet) *BatchListObjectAttributes {
 11840  	s.FacetFilter = v
 11841  	return s
 11842  }
 11843  
 11844  // SetMaxResults sets the MaxResults field's value.
 11845  func (s *BatchListObjectAttributes) SetMaxResults(v int64) *BatchListObjectAttributes {
 11846  	s.MaxResults = &v
 11847  	return s
 11848  }
 11849  
 11850  // SetNextToken sets the NextToken field's value.
 11851  func (s *BatchListObjectAttributes) SetNextToken(v string) *BatchListObjectAttributes {
 11852  	s.NextToken = &v
 11853  	return s
 11854  }
 11855  
 11856  // SetObjectReference sets the ObjectReference field's value.
 11857  func (s *BatchListObjectAttributes) SetObjectReference(v *ObjectReference) *BatchListObjectAttributes {
 11858  	s.ObjectReference = v
 11859  	return s
 11860  }
 11861  
 11862  // Represents the output of a ListObjectAttributes response operation.
 11863  type BatchListObjectAttributesResponse struct {
 11864  	_ struct{} `type:"structure"`
 11865  
 11866  	// The attributes map that is associated with the object. AttributeArn is the
 11867  	// key; attribute value is the value.
 11868  	Attributes []*AttributeKeyAndValue `type:"list"`
 11869  
 11870  	// The pagination token.
 11871  	NextToken *string `type:"string"`
 11872  }
 11873  
 11874  // String returns the string representation.
 11875  //
 11876  // API parameter values that are decorated as "sensitive" in the API will not
 11877  // be included in the string output. The member name will be present, but the
 11878  // value will be replaced with "sensitive".
 11879  func (s BatchListObjectAttributesResponse) String() string {
 11880  	return awsutil.Prettify(s)
 11881  }
 11882  
 11883  // GoString returns the string representation.
 11884  //
 11885  // API parameter values that are decorated as "sensitive" in the API will not
 11886  // be included in the string output. The member name will be present, but the
 11887  // value will be replaced with "sensitive".
 11888  func (s BatchListObjectAttributesResponse) GoString() string {
 11889  	return s.String()
 11890  }
 11891  
 11892  // SetAttributes sets the Attributes field's value.
 11893  func (s *BatchListObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchListObjectAttributesResponse {
 11894  	s.Attributes = v
 11895  	return s
 11896  }
 11897  
 11898  // SetNextToken sets the NextToken field's value.
 11899  func (s *BatchListObjectAttributesResponse) SetNextToken(v string) *BatchListObjectAttributesResponse {
 11900  	s.NextToken = &v
 11901  	return s
 11902  }
 11903  
 11904  // Represents the output of a ListObjectChildren operation.
 11905  type BatchListObjectChildren struct {
 11906  	_ struct{} `type:"structure"`
 11907  
 11908  	// Maximum number of items to be retrieved in a single call. This is an approximate
 11909  	// number.
 11910  	MaxResults *int64 `min:"1" type:"integer"`
 11911  
 11912  	// The pagination token.
 11913  	NextToken *string `type:"string"`
 11914  
 11915  	// Reference of the object for which child objects are being listed.
 11916  	//
 11917  	// ObjectReference is a required field
 11918  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 11919  }
 11920  
 11921  // String returns the string representation.
 11922  //
 11923  // API parameter values that are decorated as "sensitive" in the API will not
 11924  // be included in the string output. The member name will be present, but the
 11925  // value will be replaced with "sensitive".
 11926  func (s BatchListObjectChildren) String() string {
 11927  	return awsutil.Prettify(s)
 11928  }
 11929  
 11930  // GoString returns the string representation.
 11931  //
 11932  // API parameter values that are decorated as "sensitive" in the API will not
 11933  // be included in the string output. The member name will be present, but the
 11934  // value will be replaced with "sensitive".
 11935  func (s BatchListObjectChildren) GoString() string {
 11936  	return s.String()
 11937  }
 11938  
 11939  // Validate inspects the fields of the type to determine if they are valid.
 11940  func (s *BatchListObjectChildren) Validate() error {
 11941  	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectChildren"}
 11942  	if s.MaxResults != nil && *s.MaxResults < 1 {
 11943  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 11944  	}
 11945  	if s.ObjectReference == nil {
 11946  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 11947  	}
 11948  
 11949  	if invalidParams.Len() > 0 {
 11950  		return invalidParams
 11951  	}
 11952  	return nil
 11953  }
 11954  
 11955  // SetMaxResults sets the MaxResults field's value.
 11956  func (s *BatchListObjectChildren) SetMaxResults(v int64) *BatchListObjectChildren {
 11957  	s.MaxResults = &v
 11958  	return s
 11959  }
 11960  
 11961  // SetNextToken sets the NextToken field's value.
 11962  func (s *BatchListObjectChildren) SetNextToken(v string) *BatchListObjectChildren {
 11963  	s.NextToken = &v
 11964  	return s
 11965  }
 11966  
 11967  // SetObjectReference sets the ObjectReference field's value.
 11968  func (s *BatchListObjectChildren) SetObjectReference(v *ObjectReference) *BatchListObjectChildren {
 11969  	s.ObjectReference = v
 11970  	return s
 11971  }
 11972  
 11973  // Represents the output of a ListObjectChildren response operation.
 11974  type BatchListObjectChildrenResponse struct {
 11975  	_ struct{} `type:"structure"`
 11976  
 11977  	// The children structure, which is a map with the key as the LinkName and ObjectIdentifier
 11978  	// as the value.
 11979  	Children map[string]*string `type:"map"`
 11980  
 11981  	// The pagination token.
 11982  	NextToken *string `type:"string"`
 11983  }
 11984  
 11985  // String returns the string representation.
 11986  //
 11987  // API parameter values that are decorated as "sensitive" in the API will not
 11988  // be included in the string output. The member name will be present, but the
 11989  // value will be replaced with "sensitive".
 11990  func (s BatchListObjectChildrenResponse) String() string {
 11991  	return awsutil.Prettify(s)
 11992  }
 11993  
 11994  // GoString returns the string representation.
 11995  //
 11996  // API parameter values that are decorated as "sensitive" in the API will not
 11997  // be included in the string output. The member name will be present, but the
 11998  // value will be replaced with "sensitive".
 11999  func (s BatchListObjectChildrenResponse) GoString() string {
 12000  	return s.String()
 12001  }
 12002  
 12003  // SetChildren sets the Children field's value.
 12004  func (s *BatchListObjectChildrenResponse) SetChildren(v map[string]*string) *BatchListObjectChildrenResponse {
 12005  	s.Children = v
 12006  	return s
 12007  }
 12008  
 12009  // SetNextToken sets the NextToken field's value.
 12010  func (s *BatchListObjectChildrenResponse) SetNextToken(v string) *BatchListObjectChildrenResponse {
 12011  	s.NextToken = &v
 12012  	return s
 12013  }
 12014  
 12015  // Retrieves all available parent paths for any object type such as node, leaf
 12016  // node, policy node, and index node objects inside a BatchRead operation. For
 12017  // more information, see ListObjectParentPaths and BatchReadRequest$Operations.
 12018  type BatchListObjectParentPaths struct {
 12019  	_ struct{} `type:"structure"`
 12020  
 12021  	// The maximum number of results to retrieve.
 12022  	MaxResults *int64 `min:"1" type:"integer"`
 12023  
 12024  	// The pagination token.
 12025  	NextToken *string `type:"string"`
 12026  
 12027  	// The reference that identifies the object whose attributes will be listed.
 12028  	//
 12029  	// ObjectReference is a required field
 12030  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 12031  }
 12032  
 12033  // String returns the string representation.
 12034  //
 12035  // API parameter values that are decorated as "sensitive" in the API will not
 12036  // be included in the string output. The member name will be present, but the
 12037  // value will be replaced with "sensitive".
 12038  func (s BatchListObjectParentPaths) String() string {
 12039  	return awsutil.Prettify(s)
 12040  }
 12041  
 12042  // GoString returns the string representation.
 12043  //
 12044  // API parameter values that are decorated as "sensitive" in the API will not
 12045  // be included in the string output. The member name will be present, but the
 12046  // value will be replaced with "sensitive".
 12047  func (s BatchListObjectParentPaths) GoString() string {
 12048  	return s.String()
 12049  }
 12050  
 12051  // Validate inspects the fields of the type to determine if they are valid.
 12052  func (s *BatchListObjectParentPaths) Validate() error {
 12053  	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParentPaths"}
 12054  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12055  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12056  	}
 12057  	if s.ObjectReference == nil {
 12058  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 12059  	}
 12060  
 12061  	if invalidParams.Len() > 0 {
 12062  		return invalidParams
 12063  	}
 12064  	return nil
 12065  }
 12066  
 12067  // SetMaxResults sets the MaxResults field's value.
 12068  func (s *BatchListObjectParentPaths) SetMaxResults(v int64) *BatchListObjectParentPaths {
 12069  	s.MaxResults = &v
 12070  	return s
 12071  }
 12072  
 12073  // SetNextToken sets the NextToken field's value.
 12074  func (s *BatchListObjectParentPaths) SetNextToken(v string) *BatchListObjectParentPaths {
 12075  	s.NextToken = &v
 12076  	return s
 12077  }
 12078  
 12079  // SetObjectReference sets the ObjectReference field's value.
 12080  func (s *BatchListObjectParentPaths) SetObjectReference(v *ObjectReference) *BatchListObjectParentPaths {
 12081  	s.ObjectReference = v
 12082  	return s
 12083  }
 12084  
 12085  // Represents the output of a ListObjectParentPaths response operation.
 12086  type BatchListObjectParentPathsResponse struct {
 12087  	_ struct{} `type:"structure"`
 12088  
 12089  	// The pagination token.
 12090  	NextToken *string `type:"string"`
 12091  
 12092  	// Returns the path to the ObjectIdentifiers that are associated with the directory.
 12093  	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
 12094  }
 12095  
 12096  // String returns the string representation.
 12097  //
 12098  // API parameter values that are decorated as "sensitive" in the API will not
 12099  // be included in the string output. The member name will be present, but the
 12100  // value will be replaced with "sensitive".
 12101  func (s BatchListObjectParentPathsResponse) String() string {
 12102  	return awsutil.Prettify(s)
 12103  }
 12104  
 12105  // GoString returns the string representation.
 12106  //
 12107  // API parameter values that are decorated as "sensitive" in the API will not
 12108  // be included in the string output. The member name will be present, but the
 12109  // value will be replaced with "sensitive".
 12110  func (s BatchListObjectParentPathsResponse) GoString() string {
 12111  	return s.String()
 12112  }
 12113  
 12114  // SetNextToken sets the NextToken field's value.
 12115  func (s *BatchListObjectParentPathsResponse) SetNextToken(v string) *BatchListObjectParentPathsResponse {
 12116  	s.NextToken = &v
 12117  	return s
 12118  }
 12119  
 12120  // SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
 12121  func (s *BatchListObjectParentPathsResponse) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *BatchListObjectParentPathsResponse {
 12122  	s.PathToObjectIdentifiersList = v
 12123  	return s
 12124  }
 12125  
 12126  // Lists parent objects that are associated with a given object in pagination
 12127  // fashion.
 12128  type BatchListObjectParents struct {
 12129  	_ struct{} `type:"structure"`
 12130  
 12131  	// The maximum number of items to be retrieved in a single call. This is an
 12132  	// approximate number.
 12133  	MaxResults *int64 `min:"1" type:"integer"`
 12134  
 12135  	// The pagination token.
 12136  	NextToken *string `type:"string"`
 12137  
 12138  	// The reference that identifies an object.
 12139  	//
 12140  	// ObjectReference is a required field
 12141  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 12142  }
 12143  
 12144  // String returns the string representation.
 12145  //
 12146  // API parameter values that are decorated as "sensitive" in the API will not
 12147  // be included in the string output. The member name will be present, but the
 12148  // value will be replaced with "sensitive".
 12149  func (s BatchListObjectParents) String() string {
 12150  	return awsutil.Prettify(s)
 12151  }
 12152  
 12153  // GoString returns the string representation.
 12154  //
 12155  // API parameter values that are decorated as "sensitive" in the API will not
 12156  // be included in the string output. The member name will be present, but the
 12157  // value will be replaced with "sensitive".
 12158  func (s BatchListObjectParents) GoString() string {
 12159  	return s.String()
 12160  }
 12161  
 12162  // Validate inspects the fields of the type to determine if they are valid.
 12163  func (s *BatchListObjectParents) Validate() error {
 12164  	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParents"}
 12165  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12166  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12167  	}
 12168  	if s.ObjectReference == nil {
 12169  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 12170  	}
 12171  
 12172  	if invalidParams.Len() > 0 {
 12173  		return invalidParams
 12174  	}
 12175  	return nil
 12176  }
 12177  
 12178  // SetMaxResults sets the MaxResults field's value.
 12179  func (s *BatchListObjectParents) SetMaxResults(v int64) *BatchListObjectParents {
 12180  	s.MaxResults = &v
 12181  	return s
 12182  }
 12183  
 12184  // SetNextToken sets the NextToken field's value.
 12185  func (s *BatchListObjectParents) SetNextToken(v string) *BatchListObjectParents {
 12186  	s.NextToken = &v
 12187  	return s
 12188  }
 12189  
 12190  // SetObjectReference sets the ObjectReference field's value.
 12191  func (s *BatchListObjectParents) SetObjectReference(v *ObjectReference) *BatchListObjectParents {
 12192  	s.ObjectReference = v
 12193  	return s
 12194  }
 12195  
 12196  // Represents the output of a ListObjectParents response operation.
 12197  type BatchListObjectParentsResponse struct {
 12198  	_ struct{} `type:"structure"`
 12199  
 12200  	// The pagination token.
 12201  	NextToken *string `type:"string"`
 12202  
 12203  	// Returns a list of parent reference and LinkName Tuples.
 12204  	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
 12205  }
 12206  
 12207  // String returns the string representation.
 12208  //
 12209  // API parameter values that are decorated as "sensitive" in the API will not
 12210  // be included in the string output. The member name will be present, but the
 12211  // value will be replaced with "sensitive".
 12212  func (s BatchListObjectParentsResponse) String() string {
 12213  	return awsutil.Prettify(s)
 12214  }
 12215  
 12216  // GoString returns the string representation.
 12217  //
 12218  // API parameter values that are decorated as "sensitive" in the API will not
 12219  // be included in the string output. The member name will be present, but the
 12220  // value will be replaced with "sensitive".
 12221  func (s BatchListObjectParentsResponse) GoString() string {
 12222  	return s.String()
 12223  }
 12224  
 12225  // SetNextToken sets the NextToken field's value.
 12226  func (s *BatchListObjectParentsResponse) SetNextToken(v string) *BatchListObjectParentsResponse {
 12227  	s.NextToken = &v
 12228  	return s
 12229  }
 12230  
 12231  // SetParentLinks sets the ParentLinks field's value.
 12232  func (s *BatchListObjectParentsResponse) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *BatchListObjectParentsResponse {
 12233  	s.ParentLinks = v
 12234  	return s
 12235  }
 12236  
 12237  // Returns policies attached to an object in pagination fashion inside a BatchRead
 12238  // operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.
 12239  type BatchListObjectPolicies struct {
 12240  	_ struct{} `type:"structure"`
 12241  
 12242  	// The maximum number of results to retrieve.
 12243  	MaxResults *int64 `min:"1" type:"integer"`
 12244  
 12245  	// The pagination token.
 12246  	NextToken *string `type:"string"`
 12247  
 12248  	// The reference that identifies the object whose attributes will be listed.
 12249  	//
 12250  	// ObjectReference is a required field
 12251  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 12252  }
 12253  
 12254  // String returns the string representation.
 12255  //
 12256  // API parameter values that are decorated as "sensitive" in the API will not
 12257  // be included in the string output. The member name will be present, but the
 12258  // value will be replaced with "sensitive".
 12259  func (s BatchListObjectPolicies) String() string {
 12260  	return awsutil.Prettify(s)
 12261  }
 12262  
 12263  // GoString returns the string representation.
 12264  //
 12265  // API parameter values that are decorated as "sensitive" in the API will not
 12266  // be included in the string output. The member name will be present, but the
 12267  // value will be replaced with "sensitive".
 12268  func (s BatchListObjectPolicies) GoString() string {
 12269  	return s.String()
 12270  }
 12271  
 12272  // Validate inspects the fields of the type to determine if they are valid.
 12273  func (s *BatchListObjectPolicies) Validate() error {
 12274  	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectPolicies"}
 12275  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12276  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12277  	}
 12278  	if s.ObjectReference == nil {
 12279  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 12280  	}
 12281  
 12282  	if invalidParams.Len() > 0 {
 12283  		return invalidParams
 12284  	}
 12285  	return nil
 12286  }
 12287  
 12288  // SetMaxResults sets the MaxResults field's value.
 12289  func (s *BatchListObjectPolicies) SetMaxResults(v int64) *BatchListObjectPolicies {
 12290  	s.MaxResults = &v
 12291  	return s
 12292  }
 12293  
 12294  // SetNextToken sets the NextToken field's value.
 12295  func (s *BatchListObjectPolicies) SetNextToken(v string) *BatchListObjectPolicies {
 12296  	s.NextToken = &v
 12297  	return s
 12298  }
 12299  
 12300  // SetObjectReference sets the ObjectReference field's value.
 12301  func (s *BatchListObjectPolicies) SetObjectReference(v *ObjectReference) *BatchListObjectPolicies {
 12302  	s.ObjectReference = v
 12303  	return s
 12304  }
 12305  
 12306  // Represents the output of a ListObjectPolicies response operation.
 12307  type BatchListObjectPoliciesResponse struct {
 12308  	_ struct{} `type:"structure"`
 12309  
 12310  	// A list of policy ObjectIdentifiers, that are attached to the object.
 12311  	AttachedPolicyIds []*string `type:"list"`
 12312  
 12313  	// The pagination token.
 12314  	NextToken *string `type:"string"`
 12315  }
 12316  
 12317  // String returns the string representation.
 12318  //
 12319  // API parameter values that are decorated as "sensitive" in the API will not
 12320  // be included in the string output. The member name will be present, but the
 12321  // value will be replaced with "sensitive".
 12322  func (s BatchListObjectPoliciesResponse) String() string {
 12323  	return awsutil.Prettify(s)
 12324  }
 12325  
 12326  // GoString returns the string representation.
 12327  //
 12328  // API parameter values that are decorated as "sensitive" in the API will not
 12329  // be included in the string output. The member name will be present, but the
 12330  // value will be replaced with "sensitive".
 12331  func (s BatchListObjectPoliciesResponse) GoString() string {
 12332  	return s.String()
 12333  }
 12334  
 12335  // SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
 12336  func (s *BatchListObjectPoliciesResponse) SetAttachedPolicyIds(v []*string) *BatchListObjectPoliciesResponse {
 12337  	s.AttachedPolicyIds = v
 12338  	return s
 12339  }
 12340  
 12341  // SetNextToken sets the NextToken field's value.
 12342  func (s *BatchListObjectPoliciesResponse) SetNextToken(v string) *BatchListObjectPoliciesResponse {
 12343  	s.NextToken = &v
 12344  	return s
 12345  }
 12346  
 12347  // Returns a paginated list of all the outgoing TypedLinkSpecifier information
 12348  // for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks
 12349  // and BatchReadRequest$Operations.
 12350  type BatchListOutgoingTypedLinks struct {
 12351  	_ struct{} `type:"structure"`
 12352  
 12353  	// Provides range filters for multiple attributes. When providing ranges to
 12354  	// typed link selection, any inexact ranges must be specified at the end. Any
 12355  	// attributes that do not have a range specified are presumed to match the entire
 12356  	// range.
 12357  	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
 12358  
 12359  	// Filters are interpreted in the order of the attributes defined on the typed
 12360  	// link facet, not the order they are supplied to any API calls.
 12361  	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
 12362  
 12363  	// The maximum number of results to retrieve.
 12364  	MaxResults *int64 `min:"1" type:"integer"`
 12365  
 12366  	// The pagination token.
 12367  	NextToken *string `type:"string"`
 12368  
 12369  	// The reference that identifies the object whose attributes will be listed.
 12370  	//
 12371  	// ObjectReference is a required field
 12372  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 12373  }
 12374  
 12375  // String returns the string representation.
 12376  //
 12377  // API parameter values that are decorated as "sensitive" in the API will not
 12378  // be included in the string output. The member name will be present, but the
 12379  // value will be replaced with "sensitive".
 12380  func (s BatchListOutgoingTypedLinks) String() string {
 12381  	return awsutil.Prettify(s)
 12382  }
 12383  
 12384  // GoString returns the string representation.
 12385  //
 12386  // API parameter values that are decorated as "sensitive" in the API will not
 12387  // be included in the string output. The member name will be present, but the
 12388  // value will be replaced with "sensitive".
 12389  func (s BatchListOutgoingTypedLinks) GoString() string {
 12390  	return s.String()
 12391  }
 12392  
 12393  // Validate inspects the fields of the type to determine if they are valid.
 12394  func (s *BatchListOutgoingTypedLinks) Validate() error {
 12395  	invalidParams := request.ErrInvalidParams{Context: "BatchListOutgoingTypedLinks"}
 12396  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12397  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12398  	}
 12399  	if s.ObjectReference == nil {
 12400  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 12401  	}
 12402  	if s.FilterAttributeRanges != nil {
 12403  		for i, v := range s.FilterAttributeRanges {
 12404  			if v == nil {
 12405  				continue
 12406  			}
 12407  			if err := v.Validate(); err != nil {
 12408  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
 12409  			}
 12410  		}
 12411  	}
 12412  	if s.FilterTypedLink != nil {
 12413  		if err := s.FilterTypedLink.Validate(); err != nil {
 12414  			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
 12415  		}
 12416  	}
 12417  
 12418  	if invalidParams.Len() > 0 {
 12419  		return invalidParams
 12420  	}
 12421  	return nil
 12422  }
 12423  
 12424  // SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
 12425  func (s *BatchListOutgoingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListOutgoingTypedLinks {
 12426  	s.FilterAttributeRanges = v
 12427  	return s
 12428  }
 12429  
 12430  // SetFilterTypedLink sets the FilterTypedLink field's value.
 12431  func (s *BatchListOutgoingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListOutgoingTypedLinks {
 12432  	s.FilterTypedLink = v
 12433  	return s
 12434  }
 12435  
 12436  // SetMaxResults sets the MaxResults field's value.
 12437  func (s *BatchListOutgoingTypedLinks) SetMaxResults(v int64) *BatchListOutgoingTypedLinks {
 12438  	s.MaxResults = &v
 12439  	return s
 12440  }
 12441  
 12442  // SetNextToken sets the NextToken field's value.
 12443  func (s *BatchListOutgoingTypedLinks) SetNextToken(v string) *BatchListOutgoingTypedLinks {
 12444  	s.NextToken = &v
 12445  	return s
 12446  }
 12447  
 12448  // SetObjectReference sets the ObjectReference field's value.
 12449  func (s *BatchListOutgoingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListOutgoingTypedLinks {
 12450  	s.ObjectReference = v
 12451  	return s
 12452  }
 12453  
 12454  // Represents the output of a ListOutgoingTypedLinks response operation.
 12455  type BatchListOutgoingTypedLinksResponse struct {
 12456  	_ struct{} `type:"structure"`
 12457  
 12458  	// The pagination token.
 12459  	NextToken *string `type:"string"`
 12460  
 12461  	// Returns a typed link specifier as output.
 12462  	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
 12463  }
 12464  
 12465  // String returns the string representation.
 12466  //
 12467  // API parameter values that are decorated as "sensitive" in the API will not
 12468  // be included in the string output. The member name will be present, but the
 12469  // value will be replaced with "sensitive".
 12470  func (s BatchListOutgoingTypedLinksResponse) String() string {
 12471  	return awsutil.Prettify(s)
 12472  }
 12473  
 12474  // GoString returns the string representation.
 12475  //
 12476  // API parameter values that are decorated as "sensitive" in the API will not
 12477  // be included in the string output. The member name will be present, but the
 12478  // value will be replaced with "sensitive".
 12479  func (s BatchListOutgoingTypedLinksResponse) GoString() string {
 12480  	return s.String()
 12481  }
 12482  
 12483  // SetNextToken sets the NextToken field's value.
 12484  func (s *BatchListOutgoingTypedLinksResponse) SetNextToken(v string) *BatchListOutgoingTypedLinksResponse {
 12485  	s.NextToken = &v
 12486  	return s
 12487  }
 12488  
 12489  // SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
 12490  func (s *BatchListOutgoingTypedLinksResponse) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListOutgoingTypedLinksResponse {
 12491  	s.TypedLinkSpecifiers = v
 12492  	return s
 12493  }
 12494  
 12495  // Returns all of the ObjectIdentifiers to which a given policy is attached
 12496  // inside a BatchRead operation. For more information, see ListPolicyAttachments
 12497  // and BatchReadRequest$Operations.
 12498  type BatchListPolicyAttachments struct {
 12499  	_ struct{} `type:"structure"`
 12500  
 12501  	// The maximum number of results to retrieve.
 12502  	MaxResults *int64 `min:"1" type:"integer"`
 12503  
 12504  	// The pagination token.
 12505  	NextToken *string `type:"string"`
 12506  
 12507  	// The reference that identifies the policy object.
 12508  	//
 12509  	// PolicyReference is a required field
 12510  	PolicyReference *ObjectReference `type:"structure" required:"true"`
 12511  }
 12512  
 12513  // String returns the string representation.
 12514  //
 12515  // API parameter values that are decorated as "sensitive" in the API will not
 12516  // be included in the string output. The member name will be present, but the
 12517  // value will be replaced with "sensitive".
 12518  func (s BatchListPolicyAttachments) String() string {
 12519  	return awsutil.Prettify(s)
 12520  }
 12521  
 12522  // GoString returns the string representation.
 12523  //
 12524  // API parameter values that are decorated as "sensitive" in the API will not
 12525  // be included in the string output. The member name will be present, but the
 12526  // value will be replaced with "sensitive".
 12527  func (s BatchListPolicyAttachments) GoString() string {
 12528  	return s.String()
 12529  }
 12530  
 12531  // Validate inspects the fields of the type to determine if they are valid.
 12532  func (s *BatchListPolicyAttachments) Validate() error {
 12533  	invalidParams := request.ErrInvalidParams{Context: "BatchListPolicyAttachments"}
 12534  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12535  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12536  	}
 12537  	if s.PolicyReference == nil {
 12538  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
 12539  	}
 12540  
 12541  	if invalidParams.Len() > 0 {
 12542  		return invalidParams
 12543  	}
 12544  	return nil
 12545  }
 12546  
 12547  // SetMaxResults sets the MaxResults field's value.
 12548  func (s *BatchListPolicyAttachments) SetMaxResults(v int64) *BatchListPolicyAttachments {
 12549  	s.MaxResults = &v
 12550  	return s
 12551  }
 12552  
 12553  // SetNextToken sets the NextToken field's value.
 12554  func (s *BatchListPolicyAttachments) SetNextToken(v string) *BatchListPolicyAttachments {
 12555  	s.NextToken = &v
 12556  	return s
 12557  }
 12558  
 12559  // SetPolicyReference sets the PolicyReference field's value.
 12560  func (s *BatchListPolicyAttachments) SetPolicyReference(v *ObjectReference) *BatchListPolicyAttachments {
 12561  	s.PolicyReference = v
 12562  	return s
 12563  }
 12564  
 12565  // Represents the output of a ListPolicyAttachments response operation.
 12566  type BatchListPolicyAttachmentsResponse struct {
 12567  	_ struct{} `type:"structure"`
 12568  
 12569  	// The pagination token.
 12570  	NextToken *string `type:"string"`
 12571  
 12572  	// A list of ObjectIdentifiers to which the policy is attached.
 12573  	ObjectIdentifiers []*string `type:"list"`
 12574  }
 12575  
 12576  // String returns the string representation.
 12577  //
 12578  // API parameter values that are decorated as "sensitive" in the API will not
 12579  // be included in the string output. The member name will be present, but the
 12580  // value will be replaced with "sensitive".
 12581  func (s BatchListPolicyAttachmentsResponse) String() string {
 12582  	return awsutil.Prettify(s)
 12583  }
 12584  
 12585  // GoString returns the string representation.
 12586  //
 12587  // API parameter values that are decorated as "sensitive" in the API will not
 12588  // be included in the string output. The member name will be present, but the
 12589  // value will be replaced with "sensitive".
 12590  func (s BatchListPolicyAttachmentsResponse) GoString() string {
 12591  	return s.String()
 12592  }
 12593  
 12594  // SetNextToken sets the NextToken field's value.
 12595  func (s *BatchListPolicyAttachmentsResponse) SetNextToken(v string) *BatchListPolicyAttachmentsResponse {
 12596  	s.NextToken = &v
 12597  	return s
 12598  }
 12599  
 12600  // SetObjectIdentifiers sets the ObjectIdentifiers field's value.
 12601  func (s *BatchListPolicyAttachmentsResponse) SetObjectIdentifiers(v []*string) *BatchListPolicyAttachmentsResponse {
 12602  	s.ObjectIdentifiers = v
 12603  	return s
 12604  }
 12605  
 12606  // Lists all policies from the root of the Directory to the object specified
 12607  // inside a BatchRead operation. For more information, see LookupPolicy and
 12608  // BatchReadRequest$Operations.
 12609  type BatchLookupPolicy struct {
 12610  	_ struct{} `type:"structure"`
 12611  
 12612  	// The maximum number of results to retrieve.
 12613  	MaxResults *int64 `min:"1" type:"integer"`
 12614  
 12615  	// The pagination token.
 12616  	NextToken *string `type:"string"`
 12617  
 12618  	// Reference that identifies the object whose policies will be looked up.
 12619  	//
 12620  	// ObjectReference is a required field
 12621  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 12622  }
 12623  
 12624  // String returns the string representation.
 12625  //
 12626  // API parameter values that are decorated as "sensitive" in the API will not
 12627  // be included in the string output. The member name will be present, but the
 12628  // value will be replaced with "sensitive".
 12629  func (s BatchLookupPolicy) String() string {
 12630  	return awsutil.Prettify(s)
 12631  }
 12632  
 12633  // GoString returns the string representation.
 12634  //
 12635  // API parameter values that are decorated as "sensitive" in the API will not
 12636  // be included in the string output. The member name will be present, but the
 12637  // value will be replaced with "sensitive".
 12638  func (s BatchLookupPolicy) GoString() string {
 12639  	return s.String()
 12640  }
 12641  
 12642  // Validate inspects the fields of the type to determine if they are valid.
 12643  func (s *BatchLookupPolicy) Validate() error {
 12644  	invalidParams := request.ErrInvalidParams{Context: "BatchLookupPolicy"}
 12645  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12646  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12647  	}
 12648  	if s.ObjectReference == nil {
 12649  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 12650  	}
 12651  
 12652  	if invalidParams.Len() > 0 {
 12653  		return invalidParams
 12654  	}
 12655  	return nil
 12656  }
 12657  
 12658  // SetMaxResults sets the MaxResults field's value.
 12659  func (s *BatchLookupPolicy) SetMaxResults(v int64) *BatchLookupPolicy {
 12660  	s.MaxResults = &v
 12661  	return s
 12662  }
 12663  
 12664  // SetNextToken sets the NextToken field's value.
 12665  func (s *BatchLookupPolicy) SetNextToken(v string) *BatchLookupPolicy {
 12666  	s.NextToken = &v
 12667  	return s
 12668  }
 12669  
 12670  // SetObjectReference sets the ObjectReference field's value.
 12671  func (s *BatchLookupPolicy) SetObjectReference(v *ObjectReference) *BatchLookupPolicy {
 12672  	s.ObjectReference = v
 12673  	return s
 12674  }
 12675  
 12676  // Represents the output of a LookupPolicy response operation.
 12677  type BatchLookupPolicyResponse struct {
 12678  	_ struct{} `type:"structure"`
 12679  
 12680  	// The pagination token.
 12681  	NextToken *string `type:"string"`
 12682  
 12683  	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
 12684  	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 12685  	PolicyToPathList []*PolicyToPath `type:"list"`
 12686  }
 12687  
 12688  // String returns the string representation.
 12689  //
 12690  // API parameter values that are decorated as "sensitive" in the API will not
 12691  // be included in the string output. The member name will be present, but the
 12692  // value will be replaced with "sensitive".
 12693  func (s BatchLookupPolicyResponse) String() string {
 12694  	return awsutil.Prettify(s)
 12695  }
 12696  
 12697  // GoString returns the string representation.
 12698  //
 12699  // API parameter values that are decorated as "sensitive" in the API will not
 12700  // be included in the string output. The member name will be present, but the
 12701  // value will be replaced with "sensitive".
 12702  func (s BatchLookupPolicyResponse) GoString() string {
 12703  	return s.String()
 12704  }
 12705  
 12706  // SetNextToken sets the NextToken field's value.
 12707  func (s *BatchLookupPolicyResponse) SetNextToken(v string) *BatchLookupPolicyResponse {
 12708  	s.NextToken = &v
 12709  	return s
 12710  }
 12711  
 12712  // SetPolicyToPathList sets the PolicyToPathList field's value.
 12713  func (s *BatchLookupPolicyResponse) SetPolicyToPathList(v []*PolicyToPath) *BatchLookupPolicyResponse {
 12714  	s.PolicyToPathList = v
 12715  	return s
 12716  }
 12717  
 12718  // The batch read exception structure, which contains the exception type and
 12719  // message.
 12720  type BatchReadException struct {
 12721  	_ struct{} `type:"structure"`
 12722  
 12723  	// An exception message that is associated with the failure.
 12724  	Message *string `type:"string"`
 12725  
 12726  	// A type of exception, such as InvalidArnException.
 12727  	Type *string `type:"string" enum:"BatchReadExceptionType"`
 12728  }
 12729  
 12730  // String returns the string representation.
 12731  //
 12732  // API parameter values that are decorated as "sensitive" in the API will not
 12733  // be included in the string output. The member name will be present, but the
 12734  // value will be replaced with "sensitive".
 12735  func (s BatchReadException) String() string {
 12736  	return awsutil.Prettify(s)
 12737  }
 12738  
 12739  // GoString returns the string representation.
 12740  //
 12741  // API parameter values that are decorated as "sensitive" in the API will not
 12742  // be included in the string output. The member name will be present, but the
 12743  // value will be replaced with "sensitive".
 12744  func (s BatchReadException) GoString() string {
 12745  	return s.String()
 12746  }
 12747  
 12748  // SetMessage sets the Message field's value.
 12749  func (s *BatchReadException) SetMessage(v string) *BatchReadException {
 12750  	s.Message = &v
 12751  	return s
 12752  }
 12753  
 12754  // SetType sets the Type field's value.
 12755  func (s *BatchReadException) SetType(v string) *BatchReadException {
 12756  	s.Type = &v
 12757  	return s
 12758  }
 12759  
 12760  type BatchReadInput struct {
 12761  	_ struct{} `type:"structure"`
 12762  
 12763  	// Represents the manner and timing in which the successful write or update
 12764  	// of an object is reflected in a subsequent read operation of that same object.
 12765  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 12766  
 12767  	// The Amazon Resource Name (ARN) that is associated with the Directory. For
 12768  	// more information, see arns.
 12769  	//
 12770  	// DirectoryArn is a required field
 12771  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 12772  
 12773  	// A list of operations that are part of the batch.
 12774  	//
 12775  	// Operations is a required field
 12776  	Operations []*BatchReadOperation `type:"list" required:"true"`
 12777  }
 12778  
 12779  // String returns the string representation.
 12780  //
 12781  // API parameter values that are decorated as "sensitive" in the API will not
 12782  // be included in the string output. The member name will be present, but the
 12783  // value will be replaced with "sensitive".
 12784  func (s BatchReadInput) String() string {
 12785  	return awsutil.Prettify(s)
 12786  }
 12787  
 12788  // GoString returns the string representation.
 12789  //
 12790  // API parameter values that are decorated as "sensitive" in the API will not
 12791  // be included in the string output. The member name will be present, but the
 12792  // value will be replaced with "sensitive".
 12793  func (s BatchReadInput) GoString() string {
 12794  	return s.String()
 12795  }
 12796  
 12797  // Validate inspects the fields of the type to determine if they are valid.
 12798  func (s *BatchReadInput) Validate() error {
 12799  	invalidParams := request.ErrInvalidParams{Context: "BatchReadInput"}
 12800  	if s.DirectoryArn == nil {
 12801  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 12802  	}
 12803  	if s.Operations == nil {
 12804  		invalidParams.Add(request.NewErrParamRequired("Operations"))
 12805  	}
 12806  	if s.Operations != nil {
 12807  		for i, v := range s.Operations {
 12808  			if v == nil {
 12809  				continue
 12810  			}
 12811  			if err := v.Validate(); err != nil {
 12812  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
 12813  			}
 12814  		}
 12815  	}
 12816  
 12817  	if invalidParams.Len() > 0 {
 12818  		return invalidParams
 12819  	}
 12820  	return nil
 12821  }
 12822  
 12823  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 12824  func (s *BatchReadInput) SetConsistencyLevel(v string) *BatchReadInput {
 12825  	s.ConsistencyLevel = &v
 12826  	return s
 12827  }
 12828  
 12829  // SetDirectoryArn sets the DirectoryArn field's value.
 12830  func (s *BatchReadInput) SetDirectoryArn(v string) *BatchReadInput {
 12831  	s.DirectoryArn = &v
 12832  	return s
 12833  }
 12834  
 12835  // SetOperations sets the Operations field's value.
 12836  func (s *BatchReadInput) SetOperations(v []*BatchReadOperation) *BatchReadInput {
 12837  	s.Operations = v
 12838  	return s
 12839  }
 12840  
 12841  // Represents the output of a BatchRead operation.
 12842  type BatchReadOperation struct {
 12843  	_ struct{} `type:"structure"`
 12844  
 12845  	// Retrieves attributes that are associated with a typed link.
 12846  	GetLinkAttributes *BatchGetLinkAttributes `type:"structure"`
 12847  
 12848  	// Retrieves attributes within a facet that are associated with an object.
 12849  	GetObjectAttributes *BatchGetObjectAttributes `type:"structure"`
 12850  
 12851  	// Retrieves metadata about an object.
 12852  	GetObjectInformation *BatchGetObjectInformation `type:"structure"`
 12853  
 12854  	// Lists indices attached to an object.
 12855  	ListAttachedIndices *BatchListAttachedIndices `type:"structure"`
 12856  
 12857  	// Returns a paginated list of all the incoming TypedLinkSpecifier information
 12858  	// for an object. It also supports filtering by typed link facet and identity
 12859  	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 12860  	ListIncomingTypedLinks *BatchListIncomingTypedLinks `type:"structure"`
 12861  
 12862  	// Lists objects attached to the specified index.
 12863  	ListIndex *BatchListIndex `type:"structure"`
 12864  
 12865  	// Lists all attributes that are associated with an object.
 12866  	ListObjectAttributes *BatchListObjectAttributes `type:"structure"`
 12867  
 12868  	// Returns a paginated list of child objects that are associated with a given
 12869  	// object.
 12870  	ListObjectChildren *BatchListObjectChildren `type:"structure"`
 12871  
 12872  	// Retrieves all available parent paths for any object type such as node, leaf
 12873  	// node, policy node, and index node objects. For more information about objects,
 12874  	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
 12875  	ListObjectParentPaths *BatchListObjectParentPaths `type:"structure"`
 12876  
 12877  	// Lists parent objects that are associated with a given object in pagination
 12878  	// fashion.
 12879  	ListObjectParents *BatchListObjectParents `type:"structure"`
 12880  
 12881  	// Returns policies attached to an object in pagination fashion.
 12882  	ListObjectPolicies *BatchListObjectPolicies `type:"structure"`
 12883  
 12884  	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
 12885  	// for an object. It also supports filtering by typed link facet and identity
 12886  	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 12887  	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks `type:"structure"`
 12888  
 12889  	// Returns all of the ObjectIdentifiers to which a given policy is attached.
 12890  	ListPolicyAttachments *BatchListPolicyAttachments `type:"structure"`
 12891  
 12892  	// Lists all policies from the root of the Directory to the object specified.
 12893  	// If there are no policies present, an empty list is returned. If policies
 12894  	// are present, and if some objects don't have the policies attached, it returns
 12895  	// the ObjectIdentifier for such objects. If policies are present, it returns
 12896  	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
 12897  	// root from the target object are ignored. For more information, see Policies
 12898  	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 12899  	LookupPolicy *BatchLookupPolicy `type:"structure"`
 12900  }
 12901  
 12902  // String returns the string representation.
 12903  //
 12904  // API parameter values that are decorated as "sensitive" in the API will not
 12905  // be included in the string output. The member name will be present, but the
 12906  // value will be replaced with "sensitive".
 12907  func (s BatchReadOperation) String() string {
 12908  	return awsutil.Prettify(s)
 12909  }
 12910  
 12911  // GoString returns the string representation.
 12912  //
 12913  // API parameter values that are decorated as "sensitive" in the API will not
 12914  // be included in the string output. The member name will be present, but the
 12915  // value will be replaced with "sensitive".
 12916  func (s BatchReadOperation) GoString() string {
 12917  	return s.String()
 12918  }
 12919  
 12920  // Validate inspects the fields of the type to determine if they are valid.
 12921  func (s *BatchReadOperation) Validate() error {
 12922  	invalidParams := request.ErrInvalidParams{Context: "BatchReadOperation"}
 12923  	if s.GetLinkAttributes != nil {
 12924  		if err := s.GetLinkAttributes.Validate(); err != nil {
 12925  			invalidParams.AddNested("GetLinkAttributes", err.(request.ErrInvalidParams))
 12926  		}
 12927  	}
 12928  	if s.GetObjectAttributes != nil {
 12929  		if err := s.GetObjectAttributes.Validate(); err != nil {
 12930  			invalidParams.AddNested("GetObjectAttributes", err.(request.ErrInvalidParams))
 12931  		}
 12932  	}
 12933  	if s.GetObjectInformation != nil {
 12934  		if err := s.GetObjectInformation.Validate(); err != nil {
 12935  			invalidParams.AddNested("GetObjectInformation", err.(request.ErrInvalidParams))
 12936  		}
 12937  	}
 12938  	if s.ListAttachedIndices != nil {
 12939  		if err := s.ListAttachedIndices.Validate(); err != nil {
 12940  			invalidParams.AddNested("ListAttachedIndices", err.(request.ErrInvalidParams))
 12941  		}
 12942  	}
 12943  	if s.ListIncomingTypedLinks != nil {
 12944  		if err := s.ListIncomingTypedLinks.Validate(); err != nil {
 12945  			invalidParams.AddNested("ListIncomingTypedLinks", err.(request.ErrInvalidParams))
 12946  		}
 12947  	}
 12948  	if s.ListIndex != nil {
 12949  		if err := s.ListIndex.Validate(); err != nil {
 12950  			invalidParams.AddNested("ListIndex", err.(request.ErrInvalidParams))
 12951  		}
 12952  	}
 12953  	if s.ListObjectAttributes != nil {
 12954  		if err := s.ListObjectAttributes.Validate(); err != nil {
 12955  			invalidParams.AddNested("ListObjectAttributes", err.(request.ErrInvalidParams))
 12956  		}
 12957  	}
 12958  	if s.ListObjectChildren != nil {
 12959  		if err := s.ListObjectChildren.Validate(); err != nil {
 12960  			invalidParams.AddNested("ListObjectChildren", err.(request.ErrInvalidParams))
 12961  		}
 12962  	}
 12963  	if s.ListObjectParentPaths != nil {
 12964  		if err := s.ListObjectParentPaths.Validate(); err != nil {
 12965  			invalidParams.AddNested("ListObjectParentPaths", err.(request.ErrInvalidParams))
 12966  		}
 12967  	}
 12968  	if s.ListObjectParents != nil {
 12969  		if err := s.ListObjectParents.Validate(); err != nil {
 12970  			invalidParams.AddNested("ListObjectParents", err.(request.ErrInvalidParams))
 12971  		}
 12972  	}
 12973  	if s.ListObjectPolicies != nil {
 12974  		if err := s.ListObjectPolicies.Validate(); err != nil {
 12975  			invalidParams.AddNested("ListObjectPolicies", err.(request.ErrInvalidParams))
 12976  		}
 12977  	}
 12978  	if s.ListOutgoingTypedLinks != nil {
 12979  		if err := s.ListOutgoingTypedLinks.Validate(); err != nil {
 12980  			invalidParams.AddNested("ListOutgoingTypedLinks", err.(request.ErrInvalidParams))
 12981  		}
 12982  	}
 12983  	if s.ListPolicyAttachments != nil {
 12984  		if err := s.ListPolicyAttachments.Validate(); err != nil {
 12985  			invalidParams.AddNested("ListPolicyAttachments", err.(request.ErrInvalidParams))
 12986  		}
 12987  	}
 12988  	if s.LookupPolicy != nil {
 12989  		if err := s.LookupPolicy.Validate(); err != nil {
 12990  			invalidParams.AddNested("LookupPolicy", err.(request.ErrInvalidParams))
 12991  		}
 12992  	}
 12993  
 12994  	if invalidParams.Len() > 0 {
 12995  		return invalidParams
 12996  	}
 12997  	return nil
 12998  }
 12999  
 13000  // SetGetLinkAttributes sets the GetLinkAttributes field's value.
 13001  func (s *BatchReadOperation) SetGetLinkAttributes(v *BatchGetLinkAttributes) *BatchReadOperation {
 13002  	s.GetLinkAttributes = v
 13003  	return s
 13004  }
 13005  
 13006  // SetGetObjectAttributes sets the GetObjectAttributes field's value.
 13007  func (s *BatchReadOperation) SetGetObjectAttributes(v *BatchGetObjectAttributes) *BatchReadOperation {
 13008  	s.GetObjectAttributes = v
 13009  	return s
 13010  }
 13011  
 13012  // SetGetObjectInformation sets the GetObjectInformation field's value.
 13013  func (s *BatchReadOperation) SetGetObjectInformation(v *BatchGetObjectInformation) *BatchReadOperation {
 13014  	s.GetObjectInformation = v
 13015  	return s
 13016  }
 13017  
 13018  // SetListAttachedIndices sets the ListAttachedIndices field's value.
 13019  func (s *BatchReadOperation) SetListAttachedIndices(v *BatchListAttachedIndices) *BatchReadOperation {
 13020  	s.ListAttachedIndices = v
 13021  	return s
 13022  }
 13023  
 13024  // SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
 13025  func (s *BatchReadOperation) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinks) *BatchReadOperation {
 13026  	s.ListIncomingTypedLinks = v
 13027  	return s
 13028  }
 13029  
 13030  // SetListIndex sets the ListIndex field's value.
 13031  func (s *BatchReadOperation) SetListIndex(v *BatchListIndex) *BatchReadOperation {
 13032  	s.ListIndex = v
 13033  	return s
 13034  }
 13035  
 13036  // SetListObjectAttributes sets the ListObjectAttributes field's value.
 13037  func (s *BatchReadOperation) SetListObjectAttributes(v *BatchListObjectAttributes) *BatchReadOperation {
 13038  	s.ListObjectAttributes = v
 13039  	return s
 13040  }
 13041  
 13042  // SetListObjectChildren sets the ListObjectChildren field's value.
 13043  func (s *BatchReadOperation) SetListObjectChildren(v *BatchListObjectChildren) *BatchReadOperation {
 13044  	s.ListObjectChildren = v
 13045  	return s
 13046  }
 13047  
 13048  // SetListObjectParentPaths sets the ListObjectParentPaths field's value.
 13049  func (s *BatchReadOperation) SetListObjectParentPaths(v *BatchListObjectParentPaths) *BatchReadOperation {
 13050  	s.ListObjectParentPaths = v
 13051  	return s
 13052  }
 13053  
 13054  // SetListObjectParents sets the ListObjectParents field's value.
 13055  func (s *BatchReadOperation) SetListObjectParents(v *BatchListObjectParents) *BatchReadOperation {
 13056  	s.ListObjectParents = v
 13057  	return s
 13058  }
 13059  
 13060  // SetListObjectPolicies sets the ListObjectPolicies field's value.
 13061  func (s *BatchReadOperation) SetListObjectPolicies(v *BatchListObjectPolicies) *BatchReadOperation {
 13062  	s.ListObjectPolicies = v
 13063  	return s
 13064  }
 13065  
 13066  // SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
 13067  func (s *BatchReadOperation) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinks) *BatchReadOperation {
 13068  	s.ListOutgoingTypedLinks = v
 13069  	return s
 13070  }
 13071  
 13072  // SetListPolicyAttachments sets the ListPolicyAttachments field's value.
 13073  func (s *BatchReadOperation) SetListPolicyAttachments(v *BatchListPolicyAttachments) *BatchReadOperation {
 13074  	s.ListPolicyAttachments = v
 13075  	return s
 13076  }
 13077  
 13078  // SetLookupPolicy sets the LookupPolicy field's value.
 13079  func (s *BatchReadOperation) SetLookupPolicy(v *BatchLookupPolicy) *BatchReadOperation {
 13080  	s.LookupPolicy = v
 13081  	return s
 13082  }
 13083  
 13084  // Represents the output of a BatchRead response operation.
 13085  type BatchReadOperationResponse struct {
 13086  	_ struct{} `type:"structure"`
 13087  
 13088  	// Identifies which operation in a batch has failed.
 13089  	ExceptionResponse *BatchReadException `type:"structure"`
 13090  
 13091  	// Identifies which operation in a batch has succeeded.
 13092  	SuccessfulResponse *BatchReadSuccessfulResponse `type:"structure"`
 13093  }
 13094  
 13095  // String returns the string representation.
 13096  //
 13097  // API parameter values that are decorated as "sensitive" in the API will not
 13098  // be included in the string output. The member name will be present, but the
 13099  // value will be replaced with "sensitive".
 13100  func (s BatchReadOperationResponse) String() string {
 13101  	return awsutil.Prettify(s)
 13102  }
 13103  
 13104  // GoString returns the string representation.
 13105  //
 13106  // API parameter values that are decorated as "sensitive" in the API will not
 13107  // be included in the string output. The member name will be present, but the
 13108  // value will be replaced with "sensitive".
 13109  func (s BatchReadOperationResponse) GoString() string {
 13110  	return s.String()
 13111  }
 13112  
 13113  // SetExceptionResponse sets the ExceptionResponse field's value.
 13114  func (s *BatchReadOperationResponse) SetExceptionResponse(v *BatchReadException) *BatchReadOperationResponse {
 13115  	s.ExceptionResponse = v
 13116  	return s
 13117  }
 13118  
 13119  // SetSuccessfulResponse sets the SuccessfulResponse field's value.
 13120  func (s *BatchReadOperationResponse) SetSuccessfulResponse(v *BatchReadSuccessfulResponse) *BatchReadOperationResponse {
 13121  	s.SuccessfulResponse = v
 13122  	return s
 13123  }
 13124  
 13125  type BatchReadOutput struct {
 13126  	_ struct{} `type:"structure"`
 13127  
 13128  	// A list of all the responses for each batch read.
 13129  	Responses []*BatchReadOperationResponse `type:"list"`
 13130  }
 13131  
 13132  // String returns the string representation.
 13133  //
 13134  // API parameter values that are decorated as "sensitive" in the API will not
 13135  // be included in the string output. The member name will be present, but the
 13136  // value will be replaced with "sensitive".
 13137  func (s BatchReadOutput) String() string {
 13138  	return awsutil.Prettify(s)
 13139  }
 13140  
 13141  // GoString returns the string representation.
 13142  //
 13143  // API parameter values that are decorated as "sensitive" in the API will not
 13144  // be included in the string output. The member name will be present, but the
 13145  // value will be replaced with "sensitive".
 13146  func (s BatchReadOutput) GoString() string {
 13147  	return s.String()
 13148  }
 13149  
 13150  // SetResponses sets the Responses field's value.
 13151  func (s *BatchReadOutput) SetResponses(v []*BatchReadOperationResponse) *BatchReadOutput {
 13152  	s.Responses = v
 13153  	return s
 13154  }
 13155  
 13156  // Represents the output of a BatchRead success response operation.
 13157  type BatchReadSuccessfulResponse struct {
 13158  	_ struct{} `type:"structure"`
 13159  
 13160  	// The list of attributes to retrieve from the typed link.
 13161  	GetLinkAttributes *BatchGetLinkAttributesResponse `type:"structure"`
 13162  
 13163  	// Retrieves attributes within a facet that are associated with an object.
 13164  	GetObjectAttributes *BatchGetObjectAttributesResponse `type:"structure"`
 13165  
 13166  	// Retrieves metadata about an object.
 13167  	GetObjectInformation *BatchGetObjectInformationResponse `type:"structure"`
 13168  
 13169  	// Lists indices attached to an object.
 13170  	ListAttachedIndices *BatchListAttachedIndicesResponse `type:"structure"`
 13171  
 13172  	// Returns a paginated list of all the incoming TypedLinkSpecifier information
 13173  	// for an object. It also supports filtering by typed link facet and identity
 13174  	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 13175  	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse `type:"structure"`
 13176  
 13177  	// Lists objects attached to the specified index.
 13178  	ListIndex *BatchListIndexResponse `type:"structure"`
 13179  
 13180  	// Lists all attributes that are associated with an object.
 13181  	ListObjectAttributes *BatchListObjectAttributesResponse `type:"structure"`
 13182  
 13183  	// Returns a paginated list of child objects that are associated with a given
 13184  	// object.
 13185  	ListObjectChildren *BatchListObjectChildrenResponse `type:"structure"`
 13186  
 13187  	// Retrieves all available parent paths for any object type such as node, leaf
 13188  	// node, policy node, and index node objects. For more information about objects,
 13189  	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
 13190  	ListObjectParentPaths *BatchListObjectParentPathsResponse `type:"structure"`
 13191  
 13192  	// The list of parent objects to retrieve.
 13193  	ListObjectParents *BatchListObjectParentsResponse `type:"structure"`
 13194  
 13195  	// Returns policies attached to an object in pagination fashion.
 13196  	ListObjectPolicies *BatchListObjectPoliciesResponse `type:"structure"`
 13197  
 13198  	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
 13199  	// for an object. It also supports filtering by typed link facet and identity
 13200  	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 13201  	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse `type:"structure"`
 13202  
 13203  	// Returns all of the ObjectIdentifiers to which a given policy is attached.
 13204  	ListPolicyAttachments *BatchListPolicyAttachmentsResponse `type:"structure"`
 13205  
 13206  	// Lists all policies from the root of the Directory to the object specified.
 13207  	// If there are no policies present, an empty list is returned. If policies
 13208  	// are present, and if some objects don't have the policies attached, it returns
 13209  	// the ObjectIdentifier for such objects. If policies are present, it returns
 13210  	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
 13211  	// root from the target object are ignored. For more information, see Policies
 13212  	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 13213  	LookupPolicy *BatchLookupPolicyResponse `type:"structure"`
 13214  }
 13215  
 13216  // String returns the string representation.
 13217  //
 13218  // API parameter values that are decorated as "sensitive" in the API will not
 13219  // be included in the string output. The member name will be present, but the
 13220  // value will be replaced with "sensitive".
 13221  func (s BatchReadSuccessfulResponse) String() string {
 13222  	return awsutil.Prettify(s)
 13223  }
 13224  
 13225  // GoString returns the string representation.
 13226  //
 13227  // API parameter values that are decorated as "sensitive" in the API will not
 13228  // be included in the string output. The member name will be present, but the
 13229  // value will be replaced with "sensitive".
 13230  func (s BatchReadSuccessfulResponse) GoString() string {
 13231  	return s.String()
 13232  }
 13233  
 13234  // SetGetLinkAttributes sets the GetLinkAttributes field's value.
 13235  func (s *BatchReadSuccessfulResponse) SetGetLinkAttributes(v *BatchGetLinkAttributesResponse) *BatchReadSuccessfulResponse {
 13236  	s.GetLinkAttributes = v
 13237  	return s
 13238  }
 13239  
 13240  // SetGetObjectAttributes sets the GetObjectAttributes field's value.
 13241  func (s *BatchReadSuccessfulResponse) SetGetObjectAttributes(v *BatchGetObjectAttributesResponse) *BatchReadSuccessfulResponse {
 13242  	s.GetObjectAttributes = v
 13243  	return s
 13244  }
 13245  
 13246  // SetGetObjectInformation sets the GetObjectInformation field's value.
 13247  func (s *BatchReadSuccessfulResponse) SetGetObjectInformation(v *BatchGetObjectInformationResponse) *BatchReadSuccessfulResponse {
 13248  	s.GetObjectInformation = v
 13249  	return s
 13250  }
 13251  
 13252  // SetListAttachedIndices sets the ListAttachedIndices field's value.
 13253  func (s *BatchReadSuccessfulResponse) SetListAttachedIndices(v *BatchListAttachedIndicesResponse) *BatchReadSuccessfulResponse {
 13254  	s.ListAttachedIndices = v
 13255  	return s
 13256  }
 13257  
 13258  // SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
 13259  func (s *BatchReadSuccessfulResponse) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinksResponse) *BatchReadSuccessfulResponse {
 13260  	s.ListIncomingTypedLinks = v
 13261  	return s
 13262  }
 13263  
 13264  // SetListIndex sets the ListIndex field's value.
 13265  func (s *BatchReadSuccessfulResponse) SetListIndex(v *BatchListIndexResponse) *BatchReadSuccessfulResponse {
 13266  	s.ListIndex = v
 13267  	return s
 13268  }
 13269  
 13270  // SetListObjectAttributes sets the ListObjectAttributes field's value.
 13271  func (s *BatchReadSuccessfulResponse) SetListObjectAttributes(v *BatchListObjectAttributesResponse) *BatchReadSuccessfulResponse {
 13272  	s.ListObjectAttributes = v
 13273  	return s
 13274  }
 13275  
 13276  // SetListObjectChildren sets the ListObjectChildren field's value.
 13277  func (s *BatchReadSuccessfulResponse) SetListObjectChildren(v *BatchListObjectChildrenResponse) *BatchReadSuccessfulResponse {
 13278  	s.ListObjectChildren = v
 13279  	return s
 13280  }
 13281  
 13282  // SetListObjectParentPaths sets the ListObjectParentPaths field's value.
 13283  func (s *BatchReadSuccessfulResponse) SetListObjectParentPaths(v *BatchListObjectParentPathsResponse) *BatchReadSuccessfulResponse {
 13284  	s.ListObjectParentPaths = v
 13285  	return s
 13286  }
 13287  
 13288  // SetListObjectParents sets the ListObjectParents field's value.
 13289  func (s *BatchReadSuccessfulResponse) SetListObjectParents(v *BatchListObjectParentsResponse) *BatchReadSuccessfulResponse {
 13290  	s.ListObjectParents = v
 13291  	return s
 13292  }
 13293  
 13294  // SetListObjectPolicies sets the ListObjectPolicies field's value.
 13295  func (s *BatchReadSuccessfulResponse) SetListObjectPolicies(v *BatchListObjectPoliciesResponse) *BatchReadSuccessfulResponse {
 13296  	s.ListObjectPolicies = v
 13297  	return s
 13298  }
 13299  
 13300  // SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
 13301  func (s *BatchReadSuccessfulResponse) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinksResponse) *BatchReadSuccessfulResponse {
 13302  	s.ListOutgoingTypedLinks = v
 13303  	return s
 13304  }
 13305  
 13306  // SetListPolicyAttachments sets the ListPolicyAttachments field's value.
 13307  func (s *BatchReadSuccessfulResponse) SetListPolicyAttachments(v *BatchListPolicyAttachmentsResponse) *BatchReadSuccessfulResponse {
 13308  	s.ListPolicyAttachments = v
 13309  	return s
 13310  }
 13311  
 13312  // SetLookupPolicy sets the LookupPolicy field's value.
 13313  func (s *BatchReadSuccessfulResponse) SetLookupPolicy(v *BatchLookupPolicyResponse) *BatchReadSuccessfulResponse {
 13314  	s.LookupPolicy = v
 13315  	return s
 13316  }
 13317  
 13318  // A batch operation to remove a facet from an object.
 13319  type BatchRemoveFacetFromObject struct {
 13320  	_ struct{} `type:"structure"`
 13321  
 13322  	// A reference to the object whose facet will be removed.
 13323  	//
 13324  	// ObjectReference is a required field
 13325  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 13326  
 13327  	// The facet to remove from the object.
 13328  	//
 13329  	// SchemaFacet is a required field
 13330  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
 13331  }
 13332  
 13333  // String returns the string representation.
 13334  //
 13335  // API parameter values that are decorated as "sensitive" in the API will not
 13336  // be included in the string output. The member name will be present, but the
 13337  // value will be replaced with "sensitive".
 13338  func (s BatchRemoveFacetFromObject) String() string {
 13339  	return awsutil.Prettify(s)
 13340  }
 13341  
 13342  // GoString returns the string representation.
 13343  //
 13344  // API parameter values that are decorated as "sensitive" in the API will not
 13345  // be included in the string output. The member name will be present, but the
 13346  // value will be replaced with "sensitive".
 13347  func (s BatchRemoveFacetFromObject) GoString() string {
 13348  	return s.String()
 13349  }
 13350  
 13351  // Validate inspects the fields of the type to determine if they are valid.
 13352  func (s *BatchRemoveFacetFromObject) Validate() error {
 13353  	invalidParams := request.ErrInvalidParams{Context: "BatchRemoveFacetFromObject"}
 13354  	if s.ObjectReference == nil {
 13355  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 13356  	}
 13357  	if s.SchemaFacet == nil {
 13358  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
 13359  	}
 13360  	if s.SchemaFacet != nil {
 13361  		if err := s.SchemaFacet.Validate(); err != nil {
 13362  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
 13363  		}
 13364  	}
 13365  
 13366  	if invalidParams.Len() > 0 {
 13367  		return invalidParams
 13368  	}
 13369  	return nil
 13370  }
 13371  
 13372  // SetObjectReference sets the ObjectReference field's value.
 13373  func (s *BatchRemoveFacetFromObject) SetObjectReference(v *ObjectReference) *BatchRemoveFacetFromObject {
 13374  	s.ObjectReference = v
 13375  	return s
 13376  }
 13377  
 13378  // SetSchemaFacet sets the SchemaFacet field's value.
 13379  func (s *BatchRemoveFacetFromObject) SetSchemaFacet(v *SchemaFacet) *BatchRemoveFacetFromObject {
 13380  	s.SchemaFacet = v
 13381  	return s
 13382  }
 13383  
 13384  // An empty result that represents success.
 13385  type BatchRemoveFacetFromObjectResponse struct {
 13386  	_ struct{} `type:"structure" nopayload:"true"`
 13387  }
 13388  
 13389  // String returns the string representation.
 13390  //
 13391  // API parameter values that are decorated as "sensitive" in the API will not
 13392  // be included in the string output. The member name will be present, but the
 13393  // value will be replaced with "sensitive".
 13394  func (s BatchRemoveFacetFromObjectResponse) String() string {
 13395  	return awsutil.Prettify(s)
 13396  }
 13397  
 13398  // GoString returns the string representation.
 13399  //
 13400  // API parameter values that are decorated as "sensitive" in the API will not
 13401  // be included in the string output. The member name will be present, but the
 13402  // value will be replaced with "sensitive".
 13403  func (s BatchRemoveFacetFromObjectResponse) GoString() string {
 13404  	return s.String()
 13405  }
 13406  
 13407  // Updates a given typed link’s attributes inside a BatchRead operation. Attributes
 13408  // to be updated must not contribute to the typed link’s identity, as defined
 13409  // by its IdentityAttributeOrder. For more information, see UpdateLinkAttributes
 13410  // and BatchReadRequest$Operations.
 13411  type BatchUpdateLinkAttributes struct {
 13412  	_ struct{} `type:"structure"`
 13413  
 13414  	// The attributes update structure.
 13415  	//
 13416  	// AttributeUpdates is a required field
 13417  	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
 13418  
 13419  	// Allows a typed link specifier to be accepted as input.
 13420  	//
 13421  	// TypedLinkSpecifier is a required field
 13422  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 13423  }
 13424  
 13425  // String returns the string representation.
 13426  //
 13427  // API parameter values that are decorated as "sensitive" in the API will not
 13428  // be included in the string output. The member name will be present, but the
 13429  // value will be replaced with "sensitive".
 13430  func (s BatchUpdateLinkAttributes) String() string {
 13431  	return awsutil.Prettify(s)
 13432  }
 13433  
 13434  // GoString returns the string representation.
 13435  //
 13436  // API parameter values that are decorated as "sensitive" in the API will not
 13437  // be included in the string output. The member name will be present, but the
 13438  // value will be replaced with "sensitive".
 13439  func (s BatchUpdateLinkAttributes) GoString() string {
 13440  	return s.String()
 13441  }
 13442  
 13443  // Validate inspects the fields of the type to determine if they are valid.
 13444  func (s *BatchUpdateLinkAttributes) Validate() error {
 13445  	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateLinkAttributes"}
 13446  	if s.AttributeUpdates == nil {
 13447  		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
 13448  	}
 13449  	if s.TypedLinkSpecifier == nil {
 13450  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 13451  	}
 13452  	if s.AttributeUpdates != nil {
 13453  		for i, v := range s.AttributeUpdates {
 13454  			if v == nil {
 13455  				continue
 13456  			}
 13457  			if err := v.Validate(); err != nil {
 13458  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 13459  			}
 13460  		}
 13461  	}
 13462  	if s.TypedLinkSpecifier != nil {
 13463  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 13464  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 13465  		}
 13466  	}
 13467  
 13468  	if invalidParams.Len() > 0 {
 13469  		return invalidParams
 13470  	}
 13471  	return nil
 13472  }
 13473  
 13474  // SetAttributeUpdates sets the AttributeUpdates field's value.
 13475  func (s *BatchUpdateLinkAttributes) SetAttributeUpdates(v []*LinkAttributeUpdate) *BatchUpdateLinkAttributes {
 13476  	s.AttributeUpdates = v
 13477  	return s
 13478  }
 13479  
 13480  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 13481  func (s *BatchUpdateLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchUpdateLinkAttributes {
 13482  	s.TypedLinkSpecifier = v
 13483  	return s
 13484  }
 13485  
 13486  // Represents the output of a UpdateLinkAttributes response operation.
 13487  type BatchUpdateLinkAttributesResponse struct {
 13488  	_ struct{} `type:"structure" nopayload:"true"`
 13489  }
 13490  
 13491  // String returns the string representation.
 13492  //
 13493  // API parameter values that are decorated as "sensitive" in the API will not
 13494  // be included in the string output. The member name will be present, but the
 13495  // value will be replaced with "sensitive".
 13496  func (s BatchUpdateLinkAttributesResponse) String() string {
 13497  	return awsutil.Prettify(s)
 13498  }
 13499  
 13500  // GoString returns the string representation.
 13501  //
 13502  // API parameter values that are decorated as "sensitive" in the API will not
 13503  // be included in the string output. The member name will be present, but the
 13504  // value will be replaced with "sensitive".
 13505  func (s BatchUpdateLinkAttributesResponse) GoString() string {
 13506  	return s.String()
 13507  }
 13508  
 13509  // Represents the output of a BatchUpdate operation.
 13510  type BatchUpdateObjectAttributes struct {
 13511  	_ struct{} `type:"structure"`
 13512  
 13513  	// Attributes update structure.
 13514  	//
 13515  	// AttributeUpdates is a required field
 13516  	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
 13517  
 13518  	// Reference that identifies the object.
 13519  	//
 13520  	// ObjectReference is a required field
 13521  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 13522  }
 13523  
 13524  // String returns the string representation.
 13525  //
 13526  // API parameter values that are decorated as "sensitive" in the API will not
 13527  // be included in the string output. The member name will be present, but the
 13528  // value will be replaced with "sensitive".
 13529  func (s BatchUpdateObjectAttributes) String() string {
 13530  	return awsutil.Prettify(s)
 13531  }
 13532  
 13533  // GoString returns the string representation.
 13534  //
 13535  // API parameter values that are decorated as "sensitive" in the API will not
 13536  // be included in the string output. The member name will be present, but the
 13537  // value will be replaced with "sensitive".
 13538  func (s BatchUpdateObjectAttributes) GoString() string {
 13539  	return s.String()
 13540  }
 13541  
 13542  // Validate inspects the fields of the type to determine if they are valid.
 13543  func (s *BatchUpdateObjectAttributes) Validate() error {
 13544  	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateObjectAttributes"}
 13545  	if s.AttributeUpdates == nil {
 13546  		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
 13547  	}
 13548  	if s.ObjectReference == nil {
 13549  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 13550  	}
 13551  	if s.AttributeUpdates != nil {
 13552  		for i, v := range s.AttributeUpdates {
 13553  			if v == nil {
 13554  				continue
 13555  			}
 13556  			if err := v.Validate(); err != nil {
 13557  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 13558  			}
 13559  		}
 13560  	}
 13561  
 13562  	if invalidParams.Len() > 0 {
 13563  		return invalidParams
 13564  	}
 13565  	return nil
 13566  }
 13567  
 13568  // SetAttributeUpdates sets the AttributeUpdates field's value.
 13569  func (s *BatchUpdateObjectAttributes) SetAttributeUpdates(v []*ObjectAttributeUpdate) *BatchUpdateObjectAttributes {
 13570  	s.AttributeUpdates = v
 13571  	return s
 13572  }
 13573  
 13574  // SetObjectReference sets the ObjectReference field's value.
 13575  func (s *BatchUpdateObjectAttributes) SetObjectReference(v *ObjectReference) *BatchUpdateObjectAttributes {
 13576  	s.ObjectReference = v
 13577  	return s
 13578  }
 13579  
 13580  // Represents the output of a BatchUpdate response operation.
 13581  type BatchUpdateObjectAttributesResponse struct {
 13582  	_ struct{} `type:"structure"`
 13583  
 13584  	// ID that is associated with the object.
 13585  	ObjectIdentifier *string `type:"string"`
 13586  }
 13587  
 13588  // String returns the string representation.
 13589  //
 13590  // API parameter values that are decorated as "sensitive" in the API will not
 13591  // be included in the string output. The member name will be present, but the
 13592  // value will be replaced with "sensitive".
 13593  func (s BatchUpdateObjectAttributesResponse) String() string {
 13594  	return awsutil.Prettify(s)
 13595  }
 13596  
 13597  // GoString returns the string representation.
 13598  //
 13599  // API parameter values that are decorated as "sensitive" in the API will not
 13600  // be included in the string output. The member name will be present, but the
 13601  // value will be replaced with "sensitive".
 13602  func (s BatchUpdateObjectAttributesResponse) GoString() string {
 13603  	return s.String()
 13604  }
 13605  
 13606  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 13607  func (s *BatchUpdateObjectAttributesResponse) SetObjectIdentifier(v string) *BatchUpdateObjectAttributesResponse {
 13608  	s.ObjectIdentifier = &v
 13609  	return s
 13610  }
 13611  
 13612  // A BatchWrite exception has occurred.
 13613  type BatchWriteException struct {
 13614  	_            struct{}                  `type:"structure"`
 13615  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13616  
 13617  	Index *int64 `type:"integer"`
 13618  
 13619  	Message_ *string `locationName:"Message" type:"string"`
 13620  
 13621  	Type *string `type:"string" enum:"BatchWriteExceptionType"`
 13622  }
 13623  
 13624  // String returns the string representation.
 13625  //
 13626  // API parameter values that are decorated as "sensitive" in the API will not
 13627  // be included in the string output. The member name will be present, but the
 13628  // value will be replaced with "sensitive".
 13629  func (s BatchWriteException) String() string {
 13630  	return awsutil.Prettify(s)
 13631  }
 13632  
 13633  // GoString returns the string representation.
 13634  //
 13635  // API parameter values that are decorated as "sensitive" in the API will not
 13636  // be included in the string output. The member name will be present, but the
 13637  // value will be replaced with "sensitive".
 13638  func (s BatchWriteException) GoString() string {
 13639  	return s.String()
 13640  }
 13641  
 13642  func newErrorBatchWriteException(v protocol.ResponseMetadata) error {
 13643  	return &BatchWriteException{
 13644  		RespMetadata: v,
 13645  	}
 13646  }
 13647  
 13648  // Code returns the exception type name.
 13649  func (s *BatchWriteException) Code() string {
 13650  	return "BatchWriteException"
 13651  }
 13652  
 13653  // Message returns the exception's message.
 13654  func (s *BatchWriteException) Message() string {
 13655  	if s.Message_ != nil {
 13656  		return *s.Message_
 13657  	}
 13658  	return ""
 13659  }
 13660  
 13661  // OrigErr always returns nil, satisfies awserr.Error interface.
 13662  func (s *BatchWriteException) OrigErr() error {
 13663  	return nil
 13664  }
 13665  
 13666  func (s *BatchWriteException) Error() string {
 13667  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 13668  }
 13669  
 13670  // Status code returns the HTTP status code for the request's response error.
 13671  func (s *BatchWriteException) StatusCode() int {
 13672  	return s.RespMetadata.StatusCode
 13673  }
 13674  
 13675  // RequestID returns the service's response RequestID for request.
 13676  func (s *BatchWriteException) RequestID() string {
 13677  	return s.RespMetadata.RequestID
 13678  }
 13679  
 13680  type BatchWriteInput struct {
 13681  	_ struct{} `type:"structure"`
 13682  
 13683  	// The Amazon Resource Name (ARN) that is associated with the Directory. For
 13684  	// more information, see arns.
 13685  	//
 13686  	// DirectoryArn is a required field
 13687  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 13688  
 13689  	// A list of operations that are part of the batch.
 13690  	//
 13691  	// Operations is a required field
 13692  	Operations []*BatchWriteOperation `type:"list" required:"true"`
 13693  }
 13694  
 13695  // String returns the string representation.
 13696  //
 13697  // API parameter values that are decorated as "sensitive" in the API will not
 13698  // be included in the string output. The member name will be present, but the
 13699  // value will be replaced with "sensitive".
 13700  func (s BatchWriteInput) String() string {
 13701  	return awsutil.Prettify(s)
 13702  }
 13703  
 13704  // GoString returns the string representation.
 13705  //
 13706  // API parameter values that are decorated as "sensitive" in the API will not
 13707  // be included in the string output. The member name will be present, but the
 13708  // value will be replaced with "sensitive".
 13709  func (s BatchWriteInput) GoString() string {
 13710  	return s.String()
 13711  }
 13712  
 13713  // Validate inspects the fields of the type to determine if they are valid.
 13714  func (s *BatchWriteInput) Validate() error {
 13715  	invalidParams := request.ErrInvalidParams{Context: "BatchWriteInput"}
 13716  	if s.DirectoryArn == nil {
 13717  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 13718  	}
 13719  	if s.Operations == nil {
 13720  		invalidParams.Add(request.NewErrParamRequired("Operations"))
 13721  	}
 13722  	if s.Operations != nil {
 13723  		for i, v := range s.Operations {
 13724  			if v == nil {
 13725  				continue
 13726  			}
 13727  			if err := v.Validate(); err != nil {
 13728  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
 13729  			}
 13730  		}
 13731  	}
 13732  
 13733  	if invalidParams.Len() > 0 {
 13734  		return invalidParams
 13735  	}
 13736  	return nil
 13737  }
 13738  
 13739  // SetDirectoryArn sets the DirectoryArn field's value.
 13740  func (s *BatchWriteInput) SetDirectoryArn(v string) *BatchWriteInput {
 13741  	s.DirectoryArn = &v
 13742  	return s
 13743  }
 13744  
 13745  // SetOperations sets the Operations field's value.
 13746  func (s *BatchWriteInput) SetOperations(v []*BatchWriteOperation) *BatchWriteInput {
 13747  	s.Operations = v
 13748  	return s
 13749  }
 13750  
 13751  // Represents the output of a BatchWrite operation.
 13752  type BatchWriteOperation struct {
 13753  	_ struct{} `type:"structure"`
 13754  
 13755  	// A batch operation that adds a facet to an object.
 13756  	AddFacetToObject *BatchAddFacetToObject `type:"structure"`
 13757  
 13758  	// Attaches an object to a Directory.
 13759  	AttachObject *BatchAttachObject `type:"structure"`
 13760  
 13761  	// Attaches a policy object to a regular object. An object can have a limited
 13762  	// number of attached policies.
 13763  	AttachPolicy *BatchAttachPolicy `type:"structure"`
 13764  
 13765  	// Attaches the specified object to the specified index.
 13766  	AttachToIndex *BatchAttachToIndex `type:"structure"`
 13767  
 13768  	// Attaches a typed link to a specified source and target object. For more information,
 13769  	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 13770  	AttachTypedLink *BatchAttachTypedLink `type:"structure"`
 13771  
 13772  	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
 13773  	// for more information.
 13774  	CreateIndex *BatchCreateIndex `type:"structure"`
 13775  
 13776  	// Creates an object.
 13777  	CreateObject *BatchCreateObject `type:"structure"`
 13778  
 13779  	// Deletes an object in a Directory.
 13780  	DeleteObject *BatchDeleteObject `type:"structure"`
 13781  
 13782  	// Detaches the specified object from the specified index.
 13783  	DetachFromIndex *BatchDetachFromIndex `type:"structure"`
 13784  
 13785  	// Detaches an object from a Directory.
 13786  	DetachObject *BatchDetachObject `type:"structure"`
 13787  
 13788  	// Detaches a policy from a Directory.
 13789  	DetachPolicy *BatchDetachPolicy `type:"structure"`
 13790  
 13791  	// Detaches a typed link from a specified source and target object. For more
 13792  	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 13793  	DetachTypedLink *BatchDetachTypedLink `type:"structure"`
 13794  
 13795  	// A batch operation that removes a facet from an object.
 13796  	RemoveFacetFromObject *BatchRemoveFacetFromObject `type:"structure"`
 13797  
 13798  	// Updates a given object's attributes.
 13799  	UpdateLinkAttributes *BatchUpdateLinkAttributes `type:"structure"`
 13800  
 13801  	// Updates a given object's attributes.
 13802  	UpdateObjectAttributes *BatchUpdateObjectAttributes `type:"structure"`
 13803  }
 13804  
 13805  // String returns the string representation.
 13806  //
 13807  // API parameter values that are decorated as "sensitive" in the API will not
 13808  // be included in the string output. The member name will be present, but the
 13809  // value will be replaced with "sensitive".
 13810  func (s BatchWriteOperation) String() string {
 13811  	return awsutil.Prettify(s)
 13812  }
 13813  
 13814  // GoString returns the string representation.
 13815  //
 13816  // API parameter values that are decorated as "sensitive" in the API will not
 13817  // be included in the string output. The member name will be present, but the
 13818  // value will be replaced with "sensitive".
 13819  func (s BatchWriteOperation) GoString() string {
 13820  	return s.String()
 13821  }
 13822  
 13823  // Validate inspects the fields of the type to determine if they are valid.
 13824  func (s *BatchWriteOperation) Validate() error {
 13825  	invalidParams := request.ErrInvalidParams{Context: "BatchWriteOperation"}
 13826  	if s.AddFacetToObject != nil {
 13827  		if err := s.AddFacetToObject.Validate(); err != nil {
 13828  			invalidParams.AddNested("AddFacetToObject", err.(request.ErrInvalidParams))
 13829  		}
 13830  	}
 13831  	if s.AttachObject != nil {
 13832  		if err := s.AttachObject.Validate(); err != nil {
 13833  			invalidParams.AddNested("AttachObject", err.(request.ErrInvalidParams))
 13834  		}
 13835  	}
 13836  	if s.AttachPolicy != nil {
 13837  		if err := s.AttachPolicy.Validate(); err != nil {
 13838  			invalidParams.AddNested("AttachPolicy", err.(request.ErrInvalidParams))
 13839  		}
 13840  	}
 13841  	if s.AttachToIndex != nil {
 13842  		if err := s.AttachToIndex.Validate(); err != nil {
 13843  			invalidParams.AddNested("AttachToIndex", err.(request.ErrInvalidParams))
 13844  		}
 13845  	}
 13846  	if s.AttachTypedLink != nil {
 13847  		if err := s.AttachTypedLink.Validate(); err != nil {
 13848  			invalidParams.AddNested("AttachTypedLink", err.(request.ErrInvalidParams))
 13849  		}
 13850  	}
 13851  	if s.CreateIndex != nil {
 13852  		if err := s.CreateIndex.Validate(); err != nil {
 13853  			invalidParams.AddNested("CreateIndex", err.(request.ErrInvalidParams))
 13854  		}
 13855  	}
 13856  	if s.CreateObject != nil {
 13857  		if err := s.CreateObject.Validate(); err != nil {
 13858  			invalidParams.AddNested("CreateObject", err.(request.ErrInvalidParams))
 13859  		}
 13860  	}
 13861  	if s.DeleteObject != nil {
 13862  		if err := s.DeleteObject.Validate(); err != nil {
 13863  			invalidParams.AddNested("DeleteObject", err.(request.ErrInvalidParams))
 13864  		}
 13865  	}
 13866  	if s.DetachFromIndex != nil {
 13867  		if err := s.DetachFromIndex.Validate(); err != nil {
 13868  			invalidParams.AddNested("DetachFromIndex", err.(request.ErrInvalidParams))
 13869  		}
 13870  	}
 13871  	if s.DetachObject != nil {
 13872  		if err := s.DetachObject.Validate(); err != nil {
 13873  			invalidParams.AddNested("DetachObject", err.(request.ErrInvalidParams))
 13874  		}
 13875  	}
 13876  	if s.DetachPolicy != nil {
 13877  		if err := s.DetachPolicy.Validate(); err != nil {
 13878  			invalidParams.AddNested("DetachPolicy", err.(request.ErrInvalidParams))
 13879  		}
 13880  	}
 13881  	if s.DetachTypedLink != nil {
 13882  		if err := s.DetachTypedLink.Validate(); err != nil {
 13883  			invalidParams.AddNested("DetachTypedLink", err.(request.ErrInvalidParams))
 13884  		}
 13885  	}
 13886  	if s.RemoveFacetFromObject != nil {
 13887  		if err := s.RemoveFacetFromObject.Validate(); err != nil {
 13888  			invalidParams.AddNested("RemoveFacetFromObject", err.(request.ErrInvalidParams))
 13889  		}
 13890  	}
 13891  	if s.UpdateLinkAttributes != nil {
 13892  		if err := s.UpdateLinkAttributes.Validate(); err != nil {
 13893  			invalidParams.AddNested("UpdateLinkAttributes", err.(request.ErrInvalidParams))
 13894  		}
 13895  	}
 13896  	if s.UpdateObjectAttributes != nil {
 13897  		if err := s.UpdateObjectAttributes.Validate(); err != nil {
 13898  			invalidParams.AddNested("UpdateObjectAttributes", err.(request.ErrInvalidParams))
 13899  		}
 13900  	}
 13901  
 13902  	if invalidParams.Len() > 0 {
 13903  		return invalidParams
 13904  	}
 13905  	return nil
 13906  }
 13907  
 13908  // SetAddFacetToObject sets the AddFacetToObject field's value.
 13909  func (s *BatchWriteOperation) SetAddFacetToObject(v *BatchAddFacetToObject) *BatchWriteOperation {
 13910  	s.AddFacetToObject = v
 13911  	return s
 13912  }
 13913  
 13914  // SetAttachObject sets the AttachObject field's value.
 13915  func (s *BatchWriteOperation) SetAttachObject(v *BatchAttachObject) *BatchWriteOperation {
 13916  	s.AttachObject = v
 13917  	return s
 13918  }
 13919  
 13920  // SetAttachPolicy sets the AttachPolicy field's value.
 13921  func (s *BatchWriteOperation) SetAttachPolicy(v *BatchAttachPolicy) *BatchWriteOperation {
 13922  	s.AttachPolicy = v
 13923  	return s
 13924  }
 13925  
 13926  // SetAttachToIndex sets the AttachToIndex field's value.
 13927  func (s *BatchWriteOperation) SetAttachToIndex(v *BatchAttachToIndex) *BatchWriteOperation {
 13928  	s.AttachToIndex = v
 13929  	return s
 13930  }
 13931  
 13932  // SetAttachTypedLink sets the AttachTypedLink field's value.
 13933  func (s *BatchWriteOperation) SetAttachTypedLink(v *BatchAttachTypedLink) *BatchWriteOperation {
 13934  	s.AttachTypedLink = v
 13935  	return s
 13936  }
 13937  
 13938  // SetCreateIndex sets the CreateIndex field's value.
 13939  func (s *BatchWriteOperation) SetCreateIndex(v *BatchCreateIndex) *BatchWriteOperation {
 13940  	s.CreateIndex = v
 13941  	return s
 13942  }
 13943  
 13944  // SetCreateObject sets the CreateObject field's value.
 13945  func (s *BatchWriteOperation) SetCreateObject(v *BatchCreateObject) *BatchWriteOperation {
 13946  	s.CreateObject = v
 13947  	return s
 13948  }
 13949  
 13950  // SetDeleteObject sets the DeleteObject field's value.
 13951  func (s *BatchWriteOperation) SetDeleteObject(v *BatchDeleteObject) *BatchWriteOperation {
 13952  	s.DeleteObject = v
 13953  	return s
 13954  }
 13955  
 13956  // SetDetachFromIndex sets the DetachFromIndex field's value.
 13957  func (s *BatchWriteOperation) SetDetachFromIndex(v *BatchDetachFromIndex) *BatchWriteOperation {
 13958  	s.DetachFromIndex = v
 13959  	return s
 13960  }
 13961  
 13962  // SetDetachObject sets the DetachObject field's value.
 13963  func (s *BatchWriteOperation) SetDetachObject(v *BatchDetachObject) *BatchWriteOperation {
 13964  	s.DetachObject = v
 13965  	return s
 13966  }
 13967  
 13968  // SetDetachPolicy sets the DetachPolicy field's value.
 13969  func (s *BatchWriteOperation) SetDetachPolicy(v *BatchDetachPolicy) *BatchWriteOperation {
 13970  	s.DetachPolicy = v
 13971  	return s
 13972  }
 13973  
 13974  // SetDetachTypedLink sets the DetachTypedLink field's value.
 13975  func (s *BatchWriteOperation) SetDetachTypedLink(v *BatchDetachTypedLink) *BatchWriteOperation {
 13976  	s.DetachTypedLink = v
 13977  	return s
 13978  }
 13979  
 13980  // SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
 13981  func (s *BatchWriteOperation) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObject) *BatchWriteOperation {
 13982  	s.RemoveFacetFromObject = v
 13983  	return s
 13984  }
 13985  
 13986  // SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
 13987  func (s *BatchWriteOperation) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributes) *BatchWriteOperation {
 13988  	s.UpdateLinkAttributes = v
 13989  	return s
 13990  }
 13991  
 13992  // SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
 13993  func (s *BatchWriteOperation) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributes) *BatchWriteOperation {
 13994  	s.UpdateObjectAttributes = v
 13995  	return s
 13996  }
 13997  
 13998  // Represents the output of a BatchWrite response operation.
 13999  type BatchWriteOperationResponse struct {
 14000  	_ struct{} `type:"structure"`
 14001  
 14002  	// The result of an add facet to object batch operation.
 14003  	AddFacetToObject *BatchAddFacetToObjectResponse `type:"structure"`
 14004  
 14005  	// Attaches an object to a Directory.
 14006  	AttachObject *BatchAttachObjectResponse `type:"structure"`
 14007  
 14008  	// Attaches a policy object to a regular object. An object can have a limited
 14009  	// number of attached policies.
 14010  	AttachPolicy *BatchAttachPolicyResponse `type:"structure"`
 14011  
 14012  	// Attaches the specified object to the specified index.
 14013  	AttachToIndex *BatchAttachToIndexResponse `type:"structure"`
 14014  
 14015  	// Attaches a typed link to a specified source and target object. For more information,
 14016  	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 14017  	AttachTypedLink *BatchAttachTypedLinkResponse `type:"structure"`
 14018  
 14019  	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
 14020  	// for more information.
 14021  	CreateIndex *BatchCreateIndexResponse `type:"structure"`
 14022  
 14023  	// Creates an object in a Directory.
 14024  	CreateObject *BatchCreateObjectResponse `type:"structure"`
 14025  
 14026  	// Deletes an object in a Directory.
 14027  	DeleteObject *BatchDeleteObjectResponse `type:"structure"`
 14028  
 14029  	// Detaches the specified object from the specified index.
 14030  	DetachFromIndex *BatchDetachFromIndexResponse `type:"structure"`
 14031  
 14032  	// Detaches an object from a Directory.
 14033  	DetachObject *BatchDetachObjectResponse `type:"structure"`
 14034  
 14035  	// Detaches a policy from a Directory.
 14036  	DetachPolicy *BatchDetachPolicyResponse `type:"structure"`
 14037  
 14038  	// Detaches a typed link from a specified source and target object. For more
 14039  	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 14040  	DetachTypedLink *BatchDetachTypedLinkResponse `type:"structure"`
 14041  
 14042  	// The result of a batch remove facet from object operation.
 14043  	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse `type:"structure"`
 14044  
 14045  	// Represents the output of a BatchWrite response operation.
 14046  	UpdateLinkAttributes *BatchUpdateLinkAttributesResponse `type:"structure"`
 14047  
 14048  	// Updates a given object’s attributes.
 14049  	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse `type:"structure"`
 14050  }
 14051  
 14052  // String returns the string representation.
 14053  //
 14054  // API parameter values that are decorated as "sensitive" in the API will not
 14055  // be included in the string output. The member name will be present, but the
 14056  // value will be replaced with "sensitive".
 14057  func (s BatchWriteOperationResponse) String() string {
 14058  	return awsutil.Prettify(s)
 14059  }
 14060  
 14061  // GoString returns the string representation.
 14062  //
 14063  // API parameter values that are decorated as "sensitive" in the API will not
 14064  // be included in the string output. The member name will be present, but the
 14065  // value will be replaced with "sensitive".
 14066  func (s BatchWriteOperationResponse) GoString() string {
 14067  	return s.String()
 14068  }
 14069  
 14070  // SetAddFacetToObject sets the AddFacetToObject field's value.
 14071  func (s *BatchWriteOperationResponse) SetAddFacetToObject(v *BatchAddFacetToObjectResponse) *BatchWriteOperationResponse {
 14072  	s.AddFacetToObject = v
 14073  	return s
 14074  }
 14075  
 14076  // SetAttachObject sets the AttachObject field's value.
 14077  func (s *BatchWriteOperationResponse) SetAttachObject(v *BatchAttachObjectResponse) *BatchWriteOperationResponse {
 14078  	s.AttachObject = v
 14079  	return s
 14080  }
 14081  
 14082  // SetAttachPolicy sets the AttachPolicy field's value.
 14083  func (s *BatchWriteOperationResponse) SetAttachPolicy(v *BatchAttachPolicyResponse) *BatchWriteOperationResponse {
 14084  	s.AttachPolicy = v
 14085  	return s
 14086  }
 14087  
 14088  // SetAttachToIndex sets the AttachToIndex field's value.
 14089  func (s *BatchWriteOperationResponse) SetAttachToIndex(v *BatchAttachToIndexResponse) *BatchWriteOperationResponse {
 14090  	s.AttachToIndex = v
 14091  	return s
 14092  }
 14093  
 14094  // SetAttachTypedLink sets the AttachTypedLink field's value.
 14095  func (s *BatchWriteOperationResponse) SetAttachTypedLink(v *BatchAttachTypedLinkResponse) *BatchWriteOperationResponse {
 14096  	s.AttachTypedLink = v
 14097  	return s
 14098  }
 14099  
 14100  // SetCreateIndex sets the CreateIndex field's value.
 14101  func (s *BatchWriteOperationResponse) SetCreateIndex(v *BatchCreateIndexResponse) *BatchWriteOperationResponse {
 14102  	s.CreateIndex = v
 14103  	return s
 14104  }
 14105  
 14106  // SetCreateObject sets the CreateObject field's value.
 14107  func (s *BatchWriteOperationResponse) SetCreateObject(v *BatchCreateObjectResponse) *BatchWriteOperationResponse {
 14108  	s.CreateObject = v
 14109  	return s
 14110  }
 14111  
 14112  // SetDeleteObject sets the DeleteObject field's value.
 14113  func (s *BatchWriteOperationResponse) SetDeleteObject(v *BatchDeleteObjectResponse) *BatchWriteOperationResponse {
 14114  	s.DeleteObject = v
 14115  	return s
 14116  }
 14117  
 14118  // SetDetachFromIndex sets the DetachFromIndex field's value.
 14119  func (s *BatchWriteOperationResponse) SetDetachFromIndex(v *BatchDetachFromIndexResponse) *BatchWriteOperationResponse {
 14120  	s.DetachFromIndex = v
 14121  	return s
 14122  }
 14123  
 14124  // SetDetachObject sets the DetachObject field's value.
 14125  func (s *BatchWriteOperationResponse) SetDetachObject(v *BatchDetachObjectResponse) *BatchWriteOperationResponse {
 14126  	s.DetachObject = v
 14127  	return s
 14128  }
 14129  
 14130  // SetDetachPolicy sets the DetachPolicy field's value.
 14131  func (s *BatchWriteOperationResponse) SetDetachPolicy(v *BatchDetachPolicyResponse) *BatchWriteOperationResponse {
 14132  	s.DetachPolicy = v
 14133  	return s
 14134  }
 14135  
 14136  // SetDetachTypedLink sets the DetachTypedLink field's value.
 14137  func (s *BatchWriteOperationResponse) SetDetachTypedLink(v *BatchDetachTypedLinkResponse) *BatchWriteOperationResponse {
 14138  	s.DetachTypedLink = v
 14139  	return s
 14140  }
 14141  
 14142  // SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
 14143  func (s *BatchWriteOperationResponse) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObjectResponse) *BatchWriteOperationResponse {
 14144  	s.RemoveFacetFromObject = v
 14145  	return s
 14146  }
 14147  
 14148  // SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
 14149  func (s *BatchWriteOperationResponse) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributesResponse) *BatchWriteOperationResponse {
 14150  	s.UpdateLinkAttributes = v
 14151  	return s
 14152  }
 14153  
 14154  // SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
 14155  func (s *BatchWriteOperationResponse) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributesResponse) *BatchWriteOperationResponse {
 14156  	s.UpdateObjectAttributes = v
 14157  	return s
 14158  }
 14159  
 14160  type BatchWriteOutput struct {
 14161  	_ struct{} `type:"structure"`
 14162  
 14163  	// A list of all the responses for each batch write.
 14164  	Responses []*BatchWriteOperationResponse `type:"list"`
 14165  }
 14166  
 14167  // String returns the string representation.
 14168  //
 14169  // API parameter values that are decorated as "sensitive" in the API will not
 14170  // be included in the string output. The member name will be present, but the
 14171  // value will be replaced with "sensitive".
 14172  func (s BatchWriteOutput) String() string {
 14173  	return awsutil.Prettify(s)
 14174  }
 14175  
 14176  // GoString returns the string representation.
 14177  //
 14178  // API parameter values that are decorated as "sensitive" in the API will not
 14179  // be included in the string output. The member name will be present, but the
 14180  // value will be replaced with "sensitive".
 14181  func (s BatchWriteOutput) GoString() string {
 14182  	return s.String()
 14183  }
 14184  
 14185  // SetResponses sets the Responses field's value.
 14186  func (s *BatchWriteOutput) SetResponses(v []*BatchWriteOperationResponse) *BatchWriteOutput {
 14187  	s.Responses = v
 14188  	return s
 14189  }
 14190  
 14191  // Cannot list the parents of a Directory root.
 14192  type CannotListParentOfRootException struct {
 14193  	_            struct{}                  `type:"structure"`
 14194  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14195  
 14196  	Message_ *string `locationName:"Message" type:"string"`
 14197  }
 14198  
 14199  // String returns the string representation.
 14200  //
 14201  // API parameter values that are decorated as "sensitive" in the API will not
 14202  // be included in the string output. The member name will be present, but the
 14203  // value will be replaced with "sensitive".
 14204  func (s CannotListParentOfRootException) String() string {
 14205  	return awsutil.Prettify(s)
 14206  }
 14207  
 14208  // GoString returns the string representation.
 14209  //
 14210  // API parameter values that are decorated as "sensitive" in the API will not
 14211  // be included in the string output. The member name will be present, but the
 14212  // value will be replaced with "sensitive".
 14213  func (s CannotListParentOfRootException) GoString() string {
 14214  	return s.String()
 14215  }
 14216  
 14217  func newErrorCannotListParentOfRootException(v protocol.ResponseMetadata) error {
 14218  	return &CannotListParentOfRootException{
 14219  		RespMetadata: v,
 14220  	}
 14221  }
 14222  
 14223  // Code returns the exception type name.
 14224  func (s *CannotListParentOfRootException) Code() string {
 14225  	return "CannotListParentOfRootException"
 14226  }
 14227  
 14228  // Message returns the exception's message.
 14229  func (s *CannotListParentOfRootException) Message() string {
 14230  	if s.Message_ != nil {
 14231  		return *s.Message_
 14232  	}
 14233  	return ""
 14234  }
 14235  
 14236  // OrigErr always returns nil, satisfies awserr.Error interface.
 14237  func (s *CannotListParentOfRootException) OrigErr() error {
 14238  	return nil
 14239  }
 14240  
 14241  func (s *CannotListParentOfRootException) Error() string {
 14242  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14243  }
 14244  
 14245  // Status code returns the HTTP status code for the request's response error.
 14246  func (s *CannotListParentOfRootException) StatusCode() int {
 14247  	return s.RespMetadata.StatusCode
 14248  }
 14249  
 14250  // RequestID returns the service's response RequestID for request.
 14251  func (s *CannotListParentOfRootException) RequestID() string {
 14252  	return s.RespMetadata.RequestID
 14253  }
 14254  
 14255  type CreateDirectoryInput struct {
 14256  	_ struct{} `type:"structure"`
 14257  
 14258  	// The name of the Directory. Should be unique per account, per region.
 14259  	//
 14260  	// Name is a required field
 14261  	Name *string `min:"1" type:"string" required:"true"`
 14262  
 14263  	// The Amazon Resource Name (ARN) of the published schema that will be copied
 14264  	// into the data Directory. For more information, see arns.
 14265  	//
 14266  	// SchemaArn is a required field
 14267  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14268  }
 14269  
 14270  // String returns the string representation.
 14271  //
 14272  // API parameter values that are decorated as "sensitive" in the API will not
 14273  // be included in the string output. The member name will be present, but the
 14274  // value will be replaced with "sensitive".
 14275  func (s CreateDirectoryInput) String() string {
 14276  	return awsutil.Prettify(s)
 14277  }
 14278  
 14279  // GoString returns the string representation.
 14280  //
 14281  // API parameter values that are decorated as "sensitive" in the API will not
 14282  // be included in the string output. The member name will be present, but the
 14283  // value will be replaced with "sensitive".
 14284  func (s CreateDirectoryInput) GoString() string {
 14285  	return s.String()
 14286  }
 14287  
 14288  // Validate inspects the fields of the type to determine if they are valid.
 14289  func (s *CreateDirectoryInput) Validate() error {
 14290  	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
 14291  	if s.Name == nil {
 14292  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14293  	}
 14294  	if s.Name != nil && len(*s.Name) < 1 {
 14295  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 14296  	}
 14297  	if s.SchemaArn == nil {
 14298  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 14299  	}
 14300  
 14301  	if invalidParams.Len() > 0 {
 14302  		return invalidParams
 14303  	}
 14304  	return nil
 14305  }
 14306  
 14307  // SetName sets the Name field's value.
 14308  func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
 14309  	s.Name = &v
 14310  	return s
 14311  }
 14312  
 14313  // SetSchemaArn sets the SchemaArn field's value.
 14314  func (s *CreateDirectoryInput) SetSchemaArn(v string) *CreateDirectoryInput {
 14315  	s.SchemaArn = &v
 14316  	return s
 14317  }
 14318  
 14319  type CreateDirectoryOutput struct {
 14320  	_ struct{} `type:"structure"`
 14321  
 14322  	// The ARN of the published schema in the Directory. Once a published schema
 14323  	// is copied into the directory, it has its own ARN, which is referred to applied
 14324  	// schema ARN. For more information, see arns.
 14325  	//
 14326  	// AppliedSchemaArn is a required field
 14327  	AppliedSchemaArn *string `type:"string" required:"true"`
 14328  
 14329  	// The ARN that is associated with the Directory. For more information, see
 14330  	// arns.
 14331  	//
 14332  	// DirectoryArn is a required field
 14333  	DirectoryArn *string `type:"string" required:"true"`
 14334  
 14335  	// The name of the Directory.
 14336  	//
 14337  	// Name is a required field
 14338  	Name *string `min:"1" type:"string" required:"true"`
 14339  
 14340  	// The root object node of the created directory.
 14341  	//
 14342  	// ObjectIdentifier is a required field
 14343  	ObjectIdentifier *string `type:"string" required:"true"`
 14344  }
 14345  
 14346  // String returns the string representation.
 14347  //
 14348  // API parameter values that are decorated as "sensitive" in the API will not
 14349  // be included in the string output. The member name will be present, but the
 14350  // value will be replaced with "sensitive".
 14351  func (s CreateDirectoryOutput) String() string {
 14352  	return awsutil.Prettify(s)
 14353  }
 14354  
 14355  // GoString returns the string representation.
 14356  //
 14357  // API parameter values that are decorated as "sensitive" in the API will not
 14358  // be included in the string output. The member name will be present, but the
 14359  // value will be replaced with "sensitive".
 14360  func (s CreateDirectoryOutput) GoString() string {
 14361  	return s.String()
 14362  }
 14363  
 14364  // SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
 14365  func (s *CreateDirectoryOutput) SetAppliedSchemaArn(v string) *CreateDirectoryOutput {
 14366  	s.AppliedSchemaArn = &v
 14367  	return s
 14368  }
 14369  
 14370  // SetDirectoryArn sets the DirectoryArn field's value.
 14371  func (s *CreateDirectoryOutput) SetDirectoryArn(v string) *CreateDirectoryOutput {
 14372  	s.DirectoryArn = &v
 14373  	return s
 14374  }
 14375  
 14376  // SetName sets the Name field's value.
 14377  func (s *CreateDirectoryOutput) SetName(v string) *CreateDirectoryOutput {
 14378  	s.Name = &v
 14379  	return s
 14380  }
 14381  
 14382  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 14383  func (s *CreateDirectoryOutput) SetObjectIdentifier(v string) *CreateDirectoryOutput {
 14384  	s.ObjectIdentifier = &v
 14385  	return s
 14386  }
 14387  
 14388  type CreateFacetInput struct {
 14389  	_ struct{} `type:"structure"`
 14390  
 14391  	// The attributes that are associated with the Facet.
 14392  	Attributes []*FacetAttribute `type:"list"`
 14393  
 14394  	// There are two different styles that you can define on any given facet, Static
 14395  	// and Dynamic. For static facets, all attributes must be defined in the schema.
 14396  	// For dynamic facets, attributes can be defined during data plane operations.
 14397  	FacetStyle *string `type:"string" enum:"FacetStyle"`
 14398  
 14399  	// The name of the Facet, which is unique for a given schema.
 14400  	//
 14401  	// Name is a required field
 14402  	Name *string `min:"1" type:"string" required:"true"`
 14403  
 14404  	// Specifies whether a given object created from this facet is of type node,
 14405  	// leaf node, policy or index.
 14406  	//
 14407  	//    * Node: Can have multiple children but one parent.
 14408  	//
 14409  	//    * Leaf node: Cannot have children but can have multiple parents.
 14410  	//
 14411  	//    * Policy: Allows you to store a policy document and policy type. For more
 14412  	//    information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 14413  	//
 14414  	//    * Index: Can be created with the Index API.
 14415  	ObjectType *string `type:"string" enum:"ObjectType"`
 14416  
 14417  	// The schema ARN in which the new Facet will be created. For more information,
 14418  	// see arns.
 14419  	//
 14420  	// SchemaArn is a required field
 14421  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14422  }
 14423  
 14424  // String returns the string representation.
 14425  //
 14426  // API parameter values that are decorated as "sensitive" in the API will not
 14427  // be included in the string output. The member name will be present, but the
 14428  // value will be replaced with "sensitive".
 14429  func (s CreateFacetInput) String() string {
 14430  	return awsutil.Prettify(s)
 14431  }
 14432  
 14433  // GoString returns the string representation.
 14434  //
 14435  // API parameter values that are decorated as "sensitive" in the API will not
 14436  // be included in the string output. The member name will be present, but the
 14437  // value will be replaced with "sensitive".
 14438  func (s CreateFacetInput) GoString() string {
 14439  	return s.String()
 14440  }
 14441  
 14442  // Validate inspects the fields of the type to determine if they are valid.
 14443  func (s *CreateFacetInput) Validate() error {
 14444  	invalidParams := request.ErrInvalidParams{Context: "CreateFacetInput"}
 14445  	if s.Name == nil {
 14446  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14447  	}
 14448  	if s.Name != nil && len(*s.Name) < 1 {
 14449  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 14450  	}
 14451  	if s.SchemaArn == nil {
 14452  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 14453  	}
 14454  	if s.Attributes != nil {
 14455  		for i, v := range s.Attributes {
 14456  			if v == nil {
 14457  				continue
 14458  			}
 14459  			if err := v.Validate(); err != nil {
 14460  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 14461  			}
 14462  		}
 14463  	}
 14464  
 14465  	if invalidParams.Len() > 0 {
 14466  		return invalidParams
 14467  	}
 14468  	return nil
 14469  }
 14470  
 14471  // SetAttributes sets the Attributes field's value.
 14472  func (s *CreateFacetInput) SetAttributes(v []*FacetAttribute) *CreateFacetInput {
 14473  	s.Attributes = v
 14474  	return s
 14475  }
 14476  
 14477  // SetFacetStyle sets the FacetStyle field's value.
 14478  func (s *CreateFacetInput) SetFacetStyle(v string) *CreateFacetInput {
 14479  	s.FacetStyle = &v
 14480  	return s
 14481  }
 14482  
 14483  // SetName sets the Name field's value.
 14484  func (s *CreateFacetInput) SetName(v string) *CreateFacetInput {
 14485  	s.Name = &v
 14486  	return s
 14487  }
 14488  
 14489  // SetObjectType sets the ObjectType field's value.
 14490  func (s *CreateFacetInput) SetObjectType(v string) *CreateFacetInput {
 14491  	s.ObjectType = &v
 14492  	return s
 14493  }
 14494  
 14495  // SetSchemaArn sets the SchemaArn field's value.
 14496  func (s *CreateFacetInput) SetSchemaArn(v string) *CreateFacetInput {
 14497  	s.SchemaArn = &v
 14498  	return s
 14499  }
 14500  
 14501  type CreateFacetOutput struct {
 14502  	_ struct{} `type:"structure" nopayload:"true"`
 14503  }
 14504  
 14505  // String returns the string representation.
 14506  //
 14507  // API parameter values that are decorated as "sensitive" in the API will not
 14508  // be included in the string output. The member name will be present, but the
 14509  // value will be replaced with "sensitive".
 14510  func (s CreateFacetOutput) String() string {
 14511  	return awsutil.Prettify(s)
 14512  }
 14513  
 14514  // GoString returns the string representation.
 14515  //
 14516  // API parameter values that are decorated as "sensitive" in the API will not
 14517  // be included in the string output. The member name will be present, but the
 14518  // value will be replaced with "sensitive".
 14519  func (s CreateFacetOutput) GoString() string {
 14520  	return s.String()
 14521  }
 14522  
 14523  type CreateIndexInput struct {
 14524  	_ struct{} `type:"structure"`
 14525  
 14526  	// The ARN of the directory where the index should be created.
 14527  	//
 14528  	// DirectoryArn is a required field
 14529  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14530  
 14531  	// Indicates whether the attribute that is being indexed has unique values or
 14532  	// not.
 14533  	//
 14534  	// IsUnique is a required field
 14535  	IsUnique *bool `type:"boolean" required:"true"`
 14536  
 14537  	// The name of the link between the parent object and the index object.
 14538  	LinkName *string `min:"1" type:"string"`
 14539  
 14540  	// Specifies the attributes that should be indexed on. Currently only a single
 14541  	// attribute is supported.
 14542  	//
 14543  	// OrderedIndexedAttributeList is a required field
 14544  	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
 14545  
 14546  	// A reference to the parent object that contains the index object.
 14547  	ParentReference *ObjectReference `type:"structure"`
 14548  }
 14549  
 14550  // String returns the string representation.
 14551  //
 14552  // API parameter values that are decorated as "sensitive" in the API will not
 14553  // be included in the string output. The member name will be present, but the
 14554  // value will be replaced with "sensitive".
 14555  func (s CreateIndexInput) String() string {
 14556  	return awsutil.Prettify(s)
 14557  }
 14558  
 14559  // GoString returns the string representation.
 14560  //
 14561  // API parameter values that are decorated as "sensitive" in the API will not
 14562  // be included in the string output. The member name will be present, but the
 14563  // value will be replaced with "sensitive".
 14564  func (s CreateIndexInput) GoString() string {
 14565  	return s.String()
 14566  }
 14567  
 14568  // Validate inspects the fields of the type to determine if they are valid.
 14569  func (s *CreateIndexInput) Validate() error {
 14570  	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
 14571  	if s.DirectoryArn == nil {
 14572  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 14573  	}
 14574  	if s.IsUnique == nil {
 14575  		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
 14576  	}
 14577  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 14578  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 14579  	}
 14580  	if s.OrderedIndexedAttributeList == nil {
 14581  		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
 14582  	}
 14583  	if s.OrderedIndexedAttributeList != nil {
 14584  		for i, v := range s.OrderedIndexedAttributeList {
 14585  			if v == nil {
 14586  				continue
 14587  			}
 14588  			if err := v.Validate(); err != nil {
 14589  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
 14590  			}
 14591  		}
 14592  	}
 14593  
 14594  	if invalidParams.Len() > 0 {
 14595  		return invalidParams
 14596  	}
 14597  	return nil
 14598  }
 14599  
 14600  // SetDirectoryArn sets the DirectoryArn field's value.
 14601  func (s *CreateIndexInput) SetDirectoryArn(v string) *CreateIndexInput {
 14602  	s.DirectoryArn = &v
 14603  	return s
 14604  }
 14605  
 14606  // SetIsUnique sets the IsUnique field's value.
 14607  func (s *CreateIndexInput) SetIsUnique(v bool) *CreateIndexInput {
 14608  	s.IsUnique = &v
 14609  	return s
 14610  }
 14611  
 14612  // SetLinkName sets the LinkName field's value.
 14613  func (s *CreateIndexInput) SetLinkName(v string) *CreateIndexInput {
 14614  	s.LinkName = &v
 14615  	return s
 14616  }
 14617  
 14618  // SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
 14619  func (s *CreateIndexInput) SetOrderedIndexedAttributeList(v []*AttributeKey) *CreateIndexInput {
 14620  	s.OrderedIndexedAttributeList = v
 14621  	return s
 14622  }
 14623  
 14624  // SetParentReference sets the ParentReference field's value.
 14625  func (s *CreateIndexInput) SetParentReference(v *ObjectReference) *CreateIndexInput {
 14626  	s.ParentReference = v
 14627  	return s
 14628  }
 14629  
 14630  type CreateIndexOutput struct {
 14631  	_ struct{} `type:"structure"`
 14632  
 14633  	// The ObjectIdentifier of the index created by this operation.
 14634  	ObjectIdentifier *string `type:"string"`
 14635  }
 14636  
 14637  // String returns the string representation.
 14638  //
 14639  // API parameter values that are decorated as "sensitive" in the API will not
 14640  // be included in the string output. The member name will be present, but the
 14641  // value will be replaced with "sensitive".
 14642  func (s CreateIndexOutput) String() string {
 14643  	return awsutil.Prettify(s)
 14644  }
 14645  
 14646  // GoString returns the string representation.
 14647  //
 14648  // API parameter values that are decorated as "sensitive" in the API will not
 14649  // be included in the string output. The member name will be present, but the
 14650  // value will be replaced with "sensitive".
 14651  func (s CreateIndexOutput) GoString() string {
 14652  	return s.String()
 14653  }
 14654  
 14655  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 14656  func (s *CreateIndexOutput) SetObjectIdentifier(v string) *CreateIndexOutput {
 14657  	s.ObjectIdentifier = &v
 14658  	return s
 14659  }
 14660  
 14661  type CreateObjectInput struct {
 14662  	_ struct{} `type:"structure"`
 14663  
 14664  	// The Amazon Resource Name (ARN) that is associated with the Directory in which
 14665  	// the object will be created. For more information, see arns.
 14666  	//
 14667  	// DirectoryArn is a required field
 14668  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14669  
 14670  	// The name of link that is used to attach this object to a parent.
 14671  	LinkName *string `min:"1" type:"string"`
 14672  
 14673  	// The attribute map whose attribute ARN contains the key and attribute value
 14674  	// as the map value.
 14675  	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
 14676  
 14677  	// If specified, the parent reference to which this object will be attached.
 14678  	ParentReference *ObjectReference `type:"structure"`
 14679  
 14680  	// A list of schema facets to be associated with the object. Do not provide
 14681  	// minor version components. See SchemaFacet for details.
 14682  	//
 14683  	// SchemaFacets is a required field
 14684  	SchemaFacets []*SchemaFacet `type:"list" required:"true"`
 14685  }
 14686  
 14687  // String returns the string representation.
 14688  //
 14689  // API parameter values that are decorated as "sensitive" in the API will not
 14690  // be included in the string output. The member name will be present, but the
 14691  // value will be replaced with "sensitive".
 14692  func (s CreateObjectInput) String() string {
 14693  	return awsutil.Prettify(s)
 14694  }
 14695  
 14696  // GoString returns the string representation.
 14697  //
 14698  // API parameter values that are decorated as "sensitive" in the API will not
 14699  // be included in the string output. The member name will be present, but the
 14700  // value will be replaced with "sensitive".
 14701  func (s CreateObjectInput) GoString() string {
 14702  	return s.String()
 14703  }
 14704  
 14705  // Validate inspects the fields of the type to determine if they are valid.
 14706  func (s *CreateObjectInput) Validate() error {
 14707  	invalidParams := request.ErrInvalidParams{Context: "CreateObjectInput"}
 14708  	if s.DirectoryArn == nil {
 14709  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 14710  	}
 14711  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 14712  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 14713  	}
 14714  	if s.SchemaFacets == nil {
 14715  		invalidParams.Add(request.NewErrParamRequired("SchemaFacets"))
 14716  	}
 14717  	if s.ObjectAttributeList != nil {
 14718  		for i, v := range s.ObjectAttributeList {
 14719  			if v == nil {
 14720  				continue
 14721  			}
 14722  			if err := v.Validate(); err != nil {
 14723  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
 14724  			}
 14725  		}
 14726  	}
 14727  	if s.SchemaFacets != nil {
 14728  		for i, v := range s.SchemaFacets {
 14729  			if v == nil {
 14730  				continue
 14731  			}
 14732  			if err := v.Validate(); err != nil {
 14733  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacets", i), err.(request.ErrInvalidParams))
 14734  			}
 14735  		}
 14736  	}
 14737  
 14738  	if invalidParams.Len() > 0 {
 14739  		return invalidParams
 14740  	}
 14741  	return nil
 14742  }
 14743  
 14744  // SetDirectoryArn sets the DirectoryArn field's value.
 14745  func (s *CreateObjectInput) SetDirectoryArn(v string) *CreateObjectInput {
 14746  	s.DirectoryArn = &v
 14747  	return s
 14748  }
 14749  
 14750  // SetLinkName sets the LinkName field's value.
 14751  func (s *CreateObjectInput) SetLinkName(v string) *CreateObjectInput {
 14752  	s.LinkName = &v
 14753  	return s
 14754  }
 14755  
 14756  // SetObjectAttributeList sets the ObjectAttributeList field's value.
 14757  func (s *CreateObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *CreateObjectInput {
 14758  	s.ObjectAttributeList = v
 14759  	return s
 14760  }
 14761  
 14762  // SetParentReference sets the ParentReference field's value.
 14763  func (s *CreateObjectInput) SetParentReference(v *ObjectReference) *CreateObjectInput {
 14764  	s.ParentReference = v
 14765  	return s
 14766  }
 14767  
 14768  // SetSchemaFacets sets the SchemaFacets field's value.
 14769  func (s *CreateObjectInput) SetSchemaFacets(v []*SchemaFacet) *CreateObjectInput {
 14770  	s.SchemaFacets = v
 14771  	return s
 14772  }
 14773  
 14774  type CreateObjectOutput struct {
 14775  	_ struct{} `type:"structure"`
 14776  
 14777  	// The identifier that is associated with the object.
 14778  	ObjectIdentifier *string `type:"string"`
 14779  }
 14780  
 14781  // String returns the string representation.
 14782  //
 14783  // API parameter values that are decorated as "sensitive" in the API will not
 14784  // be included in the string output. The member name will be present, but the
 14785  // value will be replaced with "sensitive".
 14786  func (s CreateObjectOutput) String() string {
 14787  	return awsutil.Prettify(s)
 14788  }
 14789  
 14790  // GoString returns the string representation.
 14791  //
 14792  // API parameter values that are decorated as "sensitive" in the API will not
 14793  // be included in the string output. The member name will be present, but the
 14794  // value will be replaced with "sensitive".
 14795  func (s CreateObjectOutput) GoString() string {
 14796  	return s.String()
 14797  }
 14798  
 14799  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 14800  func (s *CreateObjectOutput) SetObjectIdentifier(v string) *CreateObjectOutput {
 14801  	s.ObjectIdentifier = &v
 14802  	return s
 14803  }
 14804  
 14805  type CreateSchemaInput struct {
 14806  	_ struct{} `type:"structure"`
 14807  
 14808  	// The name that is associated with the schema. This is unique to each account
 14809  	// and in each region.
 14810  	//
 14811  	// Name is a required field
 14812  	Name *string `min:"1" type:"string" required:"true"`
 14813  }
 14814  
 14815  // String returns the string representation.
 14816  //
 14817  // API parameter values that are decorated as "sensitive" in the API will not
 14818  // be included in the string output. The member name will be present, but the
 14819  // value will be replaced with "sensitive".
 14820  func (s CreateSchemaInput) String() string {
 14821  	return awsutil.Prettify(s)
 14822  }
 14823  
 14824  // GoString returns the string representation.
 14825  //
 14826  // API parameter values that are decorated as "sensitive" in the API will not
 14827  // be included in the string output. The member name will be present, but the
 14828  // value will be replaced with "sensitive".
 14829  func (s CreateSchemaInput) GoString() string {
 14830  	return s.String()
 14831  }
 14832  
 14833  // Validate inspects the fields of the type to determine if they are valid.
 14834  func (s *CreateSchemaInput) Validate() error {
 14835  	invalidParams := request.ErrInvalidParams{Context: "CreateSchemaInput"}
 14836  	if s.Name == nil {
 14837  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14838  	}
 14839  	if s.Name != nil && len(*s.Name) < 1 {
 14840  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 14841  	}
 14842  
 14843  	if invalidParams.Len() > 0 {
 14844  		return invalidParams
 14845  	}
 14846  	return nil
 14847  }
 14848  
 14849  // SetName sets the Name field's value.
 14850  func (s *CreateSchemaInput) SetName(v string) *CreateSchemaInput {
 14851  	s.Name = &v
 14852  	return s
 14853  }
 14854  
 14855  type CreateSchemaOutput struct {
 14856  	_ struct{} `type:"structure"`
 14857  
 14858  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 14859  	// information, see arns.
 14860  	SchemaArn *string `type:"string"`
 14861  }
 14862  
 14863  // String returns the string representation.
 14864  //
 14865  // API parameter values that are decorated as "sensitive" in the API will not
 14866  // be included in the string output. The member name will be present, but the
 14867  // value will be replaced with "sensitive".
 14868  func (s CreateSchemaOutput) String() string {
 14869  	return awsutil.Prettify(s)
 14870  }
 14871  
 14872  // GoString returns the string representation.
 14873  //
 14874  // API parameter values that are decorated as "sensitive" in the API will not
 14875  // be included in the string output. The member name will be present, but the
 14876  // value will be replaced with "sensitive".
 14877  func (s CreateSchemaOutput) GoString() string {
 14878  	return s.String()
 14879  }
 14880  
 14881  // SetSchemaArn sets the SchemaArn field's value.
 14882  func (s *CreateSchemaOutput) SetSchemaArn(v string) *CreateSchemaOutput {
 14883  	s.SchemaArn = &v
 14884  	return s
 14885  }
 14886  
 14887  type CreateTypedLinkFacetInput struct {
 14888  	_ struct{} `type:"structure"`
 14889  
 14890  	// Facet structure that is associated with the typed link facet.
 14891  	//
 14892  	// Facet is a required field
 14893  	Facet *TypedLinkFacet `type:"structure" required:"true"`
 14894  
 14895  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 14896  	// information, see arns.
 14897  	//
 14898  	// SchemaArn is a required field
 14899  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14900  }
 14901  
 14902  // String returns the string representation.
 14903  //
 14904  // API parameter values that are decorated as "sensitive" in the API will not
 14905  // be included in the string output. The member name will be present, but the
 14906  // value will be replaced with "sensitive".
 14907  func (s CreateTypedLinkFacetInput) String() string {
 14908  	return awsutil.Prettify(s)
 14909  }
 14910  
 14911  // GoString returns the string representation.
 14912  //
 14913  // API parameter values that are decorated as "sensitive" in the API will not
 14914  // be included in the string output. The member name will be present, but the
 14915  // value will be replaced with "sensitive".
 14916  func (s CreateTypedLinkFacetInput) GoString() string {
 14917  	return s.String()
 14918  }
 14919  
 14920  // Validate inspects the fields of the type to determine if they are valid.
 14921  func (s *CreateTypedLinkFacetInput) Validate() error {
 14922  	invalidParams := request.ErrInvalidParams{Context: "CreateTypedLinkFacetInput"}
 14923  	if s.Facet == nil {
 14924  		invalidParams.Add(request.NewErrParamRequired("Facet"))
 14925  	}
 14926  	if s.SchemaArn == nil {
 14927  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 14928  	}
 14929  	if s.Facet != nil {
 14930  		if err := s.Facet.Validate(); err != nil {
 14931  			invalidParams.AddNested("Facet", err.(request.ErrInvalidParams))
 14932  		}
 14933  	}
 14934  
 14935  	if invalidParams.Len() > 0 {
 14936  		return invalidParams
 14937  	}
 14938  	return nil
 14939  }
 14940  
 14941  // SetFacet sets the Facet field's value.
 14942  func (s *CreateTypedLinkFacetInput) SetFacet(v *TypedLinkFacet) *CreateTypedLinkFacetInput {
 14943  	s.Facet = v
 14944  	return s
 14945  }
 14946  
 14947  // SetSchemaArn sets the SchemaArn field's value.
 14948  func (s *CreateTypedLinkFacetInput) SetSchemaArn(v string) *CreateTypedLinkFacetInput {
 14949  	s.SchemaArn = &v
 14950  	return s
 14951  }
 14952  
 14953  type CreateTypedLinkFacetOutput struct {
 14954  	_ struct{} `type:"structure" nopayload:"true"`
 14955  }
 14956  
 14957  // String returns the string representation.
 14958  //
 14959  // API parameter values that are decorated as "sensitive" in the API will not
 14960  // be included in the string output. The member name will be present, but the
 14961  // value will be replaced with "sensitive".
 14962  func (s CreateTypedLinkFacetOutput) String() string {
 14963  	return awsutil.Prettify(s)
 14964  }
 14965  
 14966  // GoString returns the string representation.
 14967  //
 14968  // API parameter values that are decorated as "sensitive" in the API will not
 14969  // be included in the string output. The member name will be present, but the
 14970  // value will be replaced with "sensitive".
 14971  func (s CreateTypedLinkFacetOutput) GoString() string {
 14972  	return s.String()
 14973  }
 14974  
 14975  type DeleteDirectoryInput struct {
 14976  	_ struct{} `type:"structure" nopayload:"true"`
 14977  
 14978  	// The ARN of the directory to delete.
 14979  	//
 14980  	// DirectoryArn is a required field
 14981  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 14982  }
 14983  
 14984  // String returns the string representation.
 14985  //
 14986  // API parameter values that are decorated as "sensitive" in the API will not
 14987  // be included in the string output. The member name will be present, but the
 14988  // value will be replaced with "sensitive".
 14989  func (s DeleteDirectoryInput) String() string {
 14990  	return awsutil.Prettify(s)
 14991  }
 14992  
 14993  // GoString returns the string representation.
 14994  //
 14995  // API parameter values that are decorated as "sensitive" in the API will not
 14996  // be included in the string output. The member name will be present, but the
 14997  // value will be replaced with "sensitive".
 14998  func (s DeleteDirectoryInput) GoString() string {
 14999  	return s.String()
 15000  }
 15001  
 15002  // Validate inspects the fields of the type to determine if they are valid.
 15003  func (s *DeleteDirectoryInput) Validate() error {
 15004  	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
 15005  	if s.DirectoryArn == nil {
 15006  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15007  	}
 15008  
 15009  	if invalidParams.Len() > 0 {
 15010  		return invalidParams
 15011  	}
 15012  	return nil
 15013  }
 15014  
 15015  // SetDirectoryArn sets the DirectoryArn field's value.
 15016  func (s *DeleteDirectoryInput) SetDirectoryArn(v string) *DeleteDirectoryInput {
 15017  	s.DirectoryArn = &v
 15018  	return s
 15019  }
 15020  
 15021  type DeleteDirectoryOutput struct {
 15022  	_ struct{} `type:"structure"`
 15023  
 15024  	// The ARN of the deleted directory.
 15025  	//
 15026  	// DirectoryArn is a required field
 15027  	DirectoryArn *string `type:"string" required:"true"`
 15028  }
 15029  
 15030  // String returns the string representation.
 15031  //
 15032  // API parameter values that are decorated as "sensitive" in the API will not
 15033  // be included in the string output. The member name will be present, but the
 15034  // value will be replaced with "sensitive".
 15035  func (s DeleteDirectoryOutput) String() string {
 15036  	return awsutil.Prettify(s)
 15037  }
 15038  
 15039  // GoString returns the string representation.
 15040  //
 15041  // API parameter values that are decorated as "sensitive" in the API will not
 15042  // be included in the string output. The member name will be present, but the
 15043  // value will be replaced with "sensitive".
 15044  func (s DeleteDirectoryOutput) GoString() string {
 15045  	return s.String()
 15046  }
 15047  
 15048  // SetDirectoryArn sets the DirectoryArn field's value.
 15049  func (s *DeleteDirectoryOutput) SetDirectoryArn(v string) *DeleteDirectoryOutput {
 15050  	s.DirectoryArn = &v
 15051  	return s
 15052  }
 15053  
 15054  type DeleteFacetInput struct {
 15055  	_ struct{} `type:"structure"`
 15056  
 15057  	// The name of the facet to delete.
 15058  	//
 15059  	// Name is a required field
 15060  	Name *string `min:"1" type:"string" required:"true"`
 15061  
 15062  	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
 15063  	// information, see arns.
 15064  	//
 15065  	// SchemaArn is a required field
 15066  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15067  }
 15068  
 15069  // String returns the string representation.
 15070  //
 15071  // API parameter values that are decorated as "sensitive" in the API will not
 15072  // be included in the string output. The member name will be present, but the
 15073  // value will be replaced with "sensitive".
 15074  func (s DeleteFacetInput) String() string {
 15075  	return awsutil.Prettify(s)
 15076  }
 15077  
 15078  // GoString returns the string representation.
 15079  //
 15080  // API parameter values that are decorated as "sensitive" in the API will not
 15081  // be included in the string output. The member name will be present, but the
 15082  // value will be replaced with "sensitive".
 15083  func (s DeleteFacetInput) GoString() string {
 15084  	return s.String()
 15085  }
 15086  
 15087  // Validate inspects the fields of the type to determine if they are valid.
 15088  func (s *DeleteFacetInput) Validate() error {
 15089  	invalidParams := request.ErrInvalidParams{Context: "DeleteFacetInput"}
 15090  	if s.Name == nil {
 15091  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15092  	}
 15093  	if s.Name != nil && len(*s.Name) < 1 {
 15094  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 15095  	}
 15096  	if s.SchemaArn == nil {
 15097  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 15098  	}
 15099  
 15100  	if invalidParams.Len() > 0 {
 15101  		return invalidParams
 15102  	}
 15103  	return nil
 15104  }
 15105  
 15106  // SetName sets the Name field's value.
 15107  func (s *DeleteFacetInput) SetName(v string) *DeleteFacetInput {
 15108  	s.Name = &v
 15109  	return s
 15110  }
 15111  
 15112  // SetSchemaArn sets the SchemaArn field's value.
 15113  func (s *DeleteFacetInput) SetSchemaArn(v string) *DeleteFacetInput {
 15114  	s.SchemaArn = &v
 15115  	return s
 15116  }
 15117  
 15118  type DeleteFacetOutput struct {
 15119  	_ struct{} `type:"structure" nopayload:"true"`
 15120  }
 15121  
 15122  // String returns the string representation.
 15123  //
 15124  // API parameter values that are decorated as "sensitive" in the API will not
 15125  // be included in the string output. The member name will be present, but the
 15126  // value will be replaced with "sensitive".
 15127  func (s DeleteFacetOutput) String() string {
 15128  	return awsutil.Prettify(s)
 15129  }
 15130  
 15131  // GoString returns the string representation.
 15132  //
 15133  // API parameter values that are decorated as "sensitive" in the API will not
 15134  // be included in the string output. The member name will be present, but the
 15135  // value will be replaced with "sensitive".
 15136  func (s DeleteFacetOutput) GoString() string {
 15137  	return s.String()
 15138  }
 15139  
 15140  type DeleteObjectInput struct {
 15141  	_ struct{} `type:"structure"`
 15142  
 15143  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 15144  	// the object resides. For more information, see arns.
 15145  	//
 15146  	// DirectoryArn is a required field
 15147  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15148  
 15149  	// A reference that identifies the object.
 15150  	//
 15151  	// ObjectReference is a required field
 15152  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 15153  }
 15154  
 15155  // String returns the string representation.
 15156  //
 15157  // API parameter values that are decorated as "sensitive" in the API will not
 15158  // be included in the string output. The member name will be present, but the
 15159  // value will be replaced with "sensitive".
 15160  func (s DeleteObjectInput) String() string {
 15161  	return awsutil.Prettify(s)
 15162  }
 15163  
 15164  // GoString returns the string representation.
 15165  //
 15166  // API parameter values that are decorated as "sensitive" in the API will not
 15167  // be included in the string output. The member name will be present, but the
 15168  // value will be replaced with "sensitive".
 15169  func (s DeleteObjectInput) GoString() string {
 15170  	return s.String()
 15171  }
 15172  
 15173  // Validate inspects the fields of the type to determine if they are valid.
 15174  func (s *DeleteObjectInput) Validate() error {
 15175  	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
 15176  	if s.DirectoryArn == nil {
 15177  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15178  	}
 15179  	if s.ObjectReference == nil {
 15180  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 15181  	}
 15182  
 15183  	if invalidParams.Len() > 0 {
 15184  		return invalidParams
 15185  	}
 15186  	return nil
 15187  }
 15188  
 15189  // SetDirectoryArn sets the DirectoryArn field's value.
 15190  func (s *DeleteObjectInput) SetDirectoryArn(v string) *DeleteObjectInput {
 15191  	s.DirectoryArn = &v
 15192  	return s
 15193  }
 15194  
 15195  // SetObjectReference sets the ObjectReference field's value.
 15196  func (s *DeleteObjectInput) SetObjectReference(v *ObjectReference) *DeleteObjectInput {
 15197  	s.ObjectReference = v
 15198  	return s
 15199  }
 15200  
 15201  type DeleteObjectOutput struct {
 15202  	_ struct{} `type:"structure" nopayload:"true"`
 15203  }
 15204  
 15205  // String returns the string representation.
 15206  //
 15207  // API parameter values that are decorated as "sensitive" in the API will not
 15208  // be included in the string output. The member name will be present, but the
 15209  // value will be replaced with "sensitive".
 15210  func (s DeleteObjectOutput) String() string {
 15211  	return awsutil.Prettify(s)
 15212  }
 15213  
 15214  // GoString returns the string representation.
 15215  //
 15216  // API parameter values that are decorated as "sensitive" in the API will not
 15217  // be included in the string output. The member name will be present, but the
 15218  // value will be replaced with "sensitive".
 15219  func (s DeleteObjectOutput) GoString() string {
 15220  	return s.String()
 15221  }
 15222  
 15223  type DeleteSchemaInput struct {
 15224  	_ struct{} `type:"structure" nopayload:"true"`
 15225  
 15226  	// The Amazon Resource Name (ARN) of the development schema. For more information,
 15227  	// see arns.
 15228  	//
 15229  	// SchemaArn is a required field
 15230  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15231  }
 15232  
 15233  // String returns the string representation.
 15234  //
 15235  // API parameter values that are decorated as "sensitive" in the API will not
 15236  // be included in the string output. The member name will be present, but the
 15237  // value will be replaced with "sensitive".
 15238  func (s DeleteSchemaInput) String() string {
 15239  	return awsutil.Prettify(s)
 15240  }
 15241  
 15242  // GoString returns the string representation.
 15243  //
 15244  // API parameter values that are decorated as "sensitive" in the API will not
 15245  // be included in the string output. The member name will be present, but the
 15246  // value will be replaced with "sensitive".
 15247  func (s DeleteSchemaInput) GoString() string {
 15248  	return s.String()
 15249  }
 15250  
 15251  // Validate inspects the fields of the type to determine if they are valid.
 15252  func (s *DeleteSchemaInput) Validate() error {
 15253  	invalidParams := request.ErrInvalidParams{Context: "DeleteSchemaInput"}
 15254  	if s.SchemaArn == nil {
 15255  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 15256  	}
 15257  
 15258  	if invalidParams.Len() > 0 {
 15259  		return invalidParams
 15260  	}
 15261  	return nil
 15262  }
 15263  
 15264  // SetSchemaArn sets the SchemaArn field's value.
 15265  func (s *DeleteSchemaInput) SetSchemaArn(v string) *DeleteSchemaInput {
 15266  	s.SchemaArn = &v
 15267  	return s
 15268  }
 15269  
 15270  type DeleteSchemaOutput struct {
 15271  	_ struct{} `type:"structure"`
 15272  
 15273  	// The input ARN that is returned as part of the response. For more information,
 15274  	// see arns.
 15275  	SchemaArn *string `type:"string"`
 15276  }
 15277  
 15278  // String returns the string representation.
 15279  //
 15280  // API parameter values that are decorated as "sensitive" in the API will not
 15281  // be included in the string output. The member name will be present, but the
 15282  // value will be replaced with "sensitive".
 15283  func (s DeleteSchemaOutput) String() string {
 15284  	return awsutil.Prettify(s)
 15285  }
 15286  
 15287  // GoString returns the string representation.
 15288  //
 15289  // API parameter values that are decorated as "sensitive" in the API will not
 15290  // be included in the string output. The member name will be present, but the
 15291  // value will be replaced with "sensitive".
 15292  func (s DeleteSchemaOutput) GoString() string {
 15293  	return s.String()
 15294  }
 15295  
 15296  // SetSchemaArn sets the SchemaArn field's value.
 15297  func (s *DeleteSchemaOutput) SetSchemaArn(v string) *DeleteSchemaOutput {
 15298  	s.SchemaArn = &v
 15299  	return s
 15300  }
 15301  
 15302  type DeleteTypedLinkFacetInput struct {
 15303  	_ struct{} `type:"structure"`
 15304  
 15305  	// The unique name of the typed link facet.
 15306  	//
 15307  	// Name is a required field
 15308  	Name *string `type:"string" required:"true"`
 15309  
 15310  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 15311  	// information, see arns.
 15312  	//
 15313  	// SchemaArn is a required field
 15314  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15315  }
 15316  
 15317  // String returns the string representation.
 15318  //
 15319  // API parameter values that are decorated as "sensitive" in the API will not
 15320  // be included in the string output. The member name will be present, but the
 15321  // value will be replaced with "sensitive".
 15322  func (s DeleteTypedLinkFacetInput) String() string {
 15323  	return awsutil.Prettify(s)
 15324  }
 15325  
 15326  // GoString returns the string representation.
 15327  //
 15328  // API parameter values that are decorated as "sensitive" in the API will not
 15329  // be included in the string output. The member name will be present, but the
 15330  // value will be replaced with "sensitive".
 15331  func (s DeleteTypedLinkFacetInput) GoString() string {
 15332  	return s.String()
 15333  }
 15334  
 15335  // Validate inspects the fields of the type to determine if they are valid.
 15336  func (s *DeleteTypedLinkFacetInput) Validate() error {
 15337  	invalidParams := request.ErrInvalidParams{Context: "DeleteTypedLinkFacetInput"}
 15338  	if s.Name == nil {
 15339  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15340  	}
 15341  	if s.SchemaArn == nil {
 15342  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 15343  	}
 15344  
 15345  	if invalidParams.Len() > 0 {
 15346  		return invalidParams
 15347  	}
 15348  	return nil
 15349  }
 15350  
 15351  // SetName sets the Name field's value.
 15352  func (s *DeleteTypedLinkFacetInput) SetName(v string) *DeleteTypedLinkFacetInput {
 15353  	s.Name = &v
 15354  	return s
 15355  }
 15356  
 15357  // SetSchemaArn sets the SchemaArn field's value.
 15358  func (s *DeleteTypedLinkFacetInput) SetSchemaArn(v string) *DeleteTypedLinkFacetInput {
 15359  	s.SchemaArn = &v
 15360  	return s
 15361  }
 15362  
 15363  type DeleteTypedLinkFacetOutput struct {
 15364  	_ struct{} `type:"structure" nopayload:"true"`
 15365  }
 15366  
 15367  // String returns the string representation.
 15368  //
 15369  // API parameter values that are decorated as "sensitive" in the API will not
 15370  // be included in the string output. The member name will be present, but the
 15371  // value will be replaced with "sensitive".
 15372  func (s DeleteTypedLinkFacetOutput) String() string {
 15373  	return awsutil.Prettify(s)
 15374  }
 15375  
 15376  // GoString returns the string representation.
 15377  //
 15378  // API parameter values that are decorated as "sensitive" in the API will not
 15379  // be included in the string output. The member name will be present, but the
 15380  // value will be replaced with "sensitive".
 15381  func (s DeleteTypedLinkFacetOutput) GoString() string {
 15382  	return s.String()
 15383  }
 15384  
 15385  type DetachFromIndexInput struct {
 15386  	_ struct{} `type:"structure"`
 15387  
 15388  	// The Amazon Resource Name (ARN) of the directory the index and object exist
 15389  	// in.
 15390  	//
 15391  	// DirectoryArn is a required field
 15392  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15393  
 15394  	// A reference to the index object.
 15395  	//
 15396  	// IndexReference is a required field
 15397  	IndexReference *ObjectReference `type:"structure" required:"true"`
 15398  
 15399  	// A reference to the object being detached from the index.
 15400  	//
 15401  	// TargetReference is a required field
 15402  	TargetReference *ObjectReference `type:"structure" required:"true"`
 15403  }
 15404  
 15405  // String returns the string representation.
 15406  //
 15407  // API parameter values that are decorated as "sensitive" in the API will not
 15408  // be included in the string output. The member name will be present, but the
 15409  // value will be replaced with "sensitive".
 15410  func (s DetachFromIndexInput) String() string {
 15411  	return awsutil.Prettify(s)
 15412  }
 15413  
 15414  // GoString returns the string representation.
 15415  //
 15416  // API parameter values that are decorated as "sensitive" in the API will not
 15417  // be included in the string output. The member name will be present, but the
 15418  // value will be replaced with "sensitive".
 15419  func (s DetachFromIndexInput) GoString() string {
 15420  	return s.String()
 15421  }
 15422  
 15423  // Validate inspects the fields of the type to determine if they are valid.
 15424  func (s *DetachFromIndexInput) Validate() error {
 15425  	invalidParams := request.ErrInvalidParams{Context: "DetachFromIndexInput"}
 15426  	if s.DirectoryArn == nil {
 15427  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15428  	}
 15429  	if s.IndexReference == nil {
 15430  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
 15431  	}
 15432  	if s.TargetReference == nil {
 15433  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
 15434  	}
 15435  
 15436  	if invalidParams.Len() > 0 {
 15437  		return invalidParams
 15438  	}
 15439  	return nil
 15440  }
 15441  
 15442  // SetDirectoryArn sets the DirectoryArn field's value.
 15443  func (s *DetachFromIndexInput) SetDirectoryArn(v string) *DetachFromIndexInput {
 15444  	s.DirectoryArn = &v
 15445  	return s
 15446  }
 15447  
 15448  // SetIndexReference sets the IndexReference field's value.
 15449  func (s *DetachFromIndexInput) SetIndexReference(v *ObjectReference) *DetachFromIndexInput {
 15450  	s.IndexReference = v
 15451  	return s
 15452  }
 15453  
 15454  // SetTargetReference sets the TargetReference field's value.
 15455  func (s *DetachFromIndexInput) SetTargetReference(v *ObjectReference) *DetachFromIndexInput {
 15456  	s.TargetReference = v
 15457  	return s
 15458  }
 15459  
 15460  type DetachFromIndexOutput struct {
 15461  	_ struct{} `type:"structure"`
 15462  
 15463  	// The ObjectIdentifier of the object that was detached from the index.
 15464  	DetachedObjectIdentifier *string `type:"string"`
 15465  }
 15466  
 15467  // String returns the string representation.
 15468  //
 15469  // API parameter values that are decorated as "sensitive" in the API will not
 15470  // be included in the string output. The member name will be present, but the
 15471  // value will be replaced with "sensitive".
 15472  func (s DetachFromIndexOutput) String() string {
 15473  	return awsutil.Prettify(s)
 15474  }
 15475  
 15476  // GoString returns the string representation.
 15477  //
 15478  // API parameter values that are decorated as "sensitive" in the API will not
 15479  // be included in the string output. The member name will be present, but the
 15480  // value will be replaced with "sensitive".
 15481  func (s DetachFromIndexOutput) GoString() string {
 15482  	return s.String()
 15483  }
 15484  
 15485  // SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
 15486  func (s *DetachFromIndexOutput) SetDetachedObjectIdentifier(v string) *DetachFromIndexOutput {
 15487  	s.DetachedObjectIdentifier = &v
 15488  	return s
 15489  }
 15490  
 15491  type DetachObjectInput struct {
 15492  	_ struct{} `type:"structure"`
 15493  
 15494  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 15495  	// objects reside. For more information, see arns.
 15496  	//
 15497  	// DirectoryArn is a required field
 15498  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15499  
 15500  	// The link name associated with the object that needs to be detached.
 15501  	//
 15502  	// LinkName is a required field
 15503  	LinkName *string `min:"1" type:"string" required:"true"`
 15504  
 15505  	// The parent reference from which the object with the specified link name is
 15506  	// detached.
 15507  	//
 15508  	// ParentReference is a required field
 15509  	ParentReference *ObjectReference `type:"structure" required:"true"`
 15510  }
 15511  
 15512  // String returns the string representation.
 15513  //
 15514  // API parameter values that are decorated as "sensitive" in the API will not
 15515  // be included in the string output. The member name will be present, but the
 15516  // value will be replaced with "sensitive".
 15517  func (s DetachObjectInput) String() string {
 15518  	return awsutil.Prettify(s)
 15519  }
 15520  
 15521  // GoString returns the string representation.
 15522  //
 15523  // API parameter values that are decorated as "sensitive" in the API will not
 15524  // be included in the string output. The member name will be present, but the
 15525  // value will be replaced with "sensitive".
 15526  func (s DetachObjectInput) GoString() string {
 15527  	return s.String()
 15528  }
 15529  
 15530  // Validate inspects the fields of the type to determine if they are valid.
 15531  func (s *DetachObjectInput) Validate() error {
 15532  	invalidParams := request.ErrInvalidParams{Context: "DetachObjectInput"}
 15533  	if s.DirectoryArn == nil {
 15534  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15535  	}
 15536  	if s.LinkName == nil {
 15537  		invalidParams.Add(request.NewErrParamRequired("LinkName"))
 15538  	}
 15539  	if s.LinkName != nil && len(*s.LinkName) < 1 {
 15540  		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
 15541  	}
 15542  	if s.ParentReference == nil {
 15543  		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
 15544  	}
 15545  
 15546  	if invalidParams.Len() > 0 {
 15547  		return invalidParams
 15548  	}
 15549  	return nil
 15550  }
 15551  
 15552  // SetDirectoryArn sets the DirectoryArn field's value.
 15553  func (s *DetachObjectInput) SetDirectoryArn(v string) *DetachObjectInput {
 15554  	s.DirectoryArn = &v
 15555  	return s
 15556  }
 15557  
 15558  // SetLinkName sets the LinkName field's value.
 15559  func (s *DetachObjectInput) SetLinkName(v string) *DetachObjectInput {
 15560  	s.LinkName = &v
 15561  	return s
 15562  }
 15563  
 15564  // SetParentReference sets the ParentReference field's value.
 15565  func (s *DetachObjectInput) SetParentReference(v *ObjectReference) *DetachObjectInput {
 15566  	s.ParentReference = v
 15567  	return s
 15568  }
 15569  
 15570  type DetachObjectOutput struct {
 15571  	_ struct{} `type:"structure"`
 15572  
 15573  	// The ObjectIdentifier that was detached from the object.
 15574  	DetachedObjectIdentifier *string `type:"string"`
 15575  }
 15576  
 15577  // String returns the string representation.
 15578  //
 15579  // API parameter values that are decorated as "sensitive" in the API will not
 15580  // be included in the string output. The member name will be present, but the
 15581  // value will be replaced with "sensitive".
 15582  func (s DetachObjectOutput) String() string {
 15583  	return awsutil.Prettify(s)
 15584  }
 15585  
 15586  // GoString returns the string representation.
 15587  //
 15588  // API parameter values that are decorated as "sensitive" in the API will not
 15589  // be included in the string output. The member name will be present, but the
 15590  // value will be replaced with "sensitive".
 15591  func (s DetachObjectOutput) GoString() string {
 15592  	return s.String()
 15593  }
 15594  
 15595  // SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
 15596  func (s *DetachObjectOutput) SetDetachedObjectIdentifier(v string) *DetachObjectOutput {
 15597  	s.DetachedObjectIdentifier = &v
 15598  	return s
 15599  }
 15600  
 15601  type DetachPolicyInput struct {
 15602  	_ struct{} `type:"structure"`
 15603  
 15604  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 15605  	// both objects reside. For more information, see arns.
 15606  	//
 15607  	// DirectoryArn is a required field
 15608  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15609  
 15610  	// Reference that identifies the object whose policy object will be detached.
 15611  	//
 15612  	// ObjectReference is a required field
 15613  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 15614  
 15615  	// Reference that identifies the policy object.
 15616  	//
 15617  	// PolicyReference is a required field
 15618  	PolicyReference *ObjectReference `type:"structure" required:"true"`
 15619  }
 15620  
 15621  // String returns the string representation.
 15622  //
 15623  // API parameter values that are decorated as "sensitive" in the API will not
 15624  // be included in the string output. The member name will be present, but the
 15625  // value will be replaced with "sensitive".
 15626  func (s DetachPolicyInput) String() string {
 15627  	return awsutil.Prettify(s)
 15628  }
 15629  
 15630  // GoString returns the string representation.
 15631  //
 15632  // API parameter values that are decorated as "sensitive" in the API will not
 15633  // be included in the string output. The member name will be present, but the
 15634  // value will be replaced with "sensitive".
 15635  func (s DetachPolicyInput) GoString() string {
 15636  	return s.String()
 15637  }
 15638  
 15639  // Validate inspects the fields of the type to determine if they are valid.
 15640  func (s *DetachPolicyInput) Validate() error {
 15641  	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
 15642  	if s.DirectoryArn == nil {
 15643  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15644  	}
 15645  	if s.ObjectReference == nil {
 15646  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 15647  	}
 15648  	if s.PolicyReference == nil {
 15649  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
 15650  	}
 15651  
 15652  	if invalidParams.Len() > 0 {
 15653  		return invalidParams
 15654  	}
 15655  	return nil
 15656  }
 15657  
 15658  // SetDirectoryArn sets the DirectoryArn field's value.
 15659  func (s *DetachPolicyInput) SetDirectoryArn(v string) *DetachPolicyInput {
 15660  	s.DirectoryArn = &v
 15661  	return s
 15662  }
 15663  
 15664  // SetObjectReference sets the ObjectReference field's value.
 15665  func (s *DetachPolicyInput) SetObjectReference(v *ObjectReference) *DetachPolicyInput {
 15666  	s.ObjectReference = v
 15667  	return s
 15668  }
 15669  
 15670  // SetPolicyReference sets the PolicyReference field's value.
 15671  func (s *DetachPolicyInput) SetPolicyReference(v *ObjectReference) *DetachPolicyInput {
 15672  	s.PolicyReference = v
 15673  	return s
 15674  }
 15675  
 15676  type DetachPolicyOutput struct {
 15677  	_ struct{} `type:"structure" nopayload:"true"`
 15678  }
 15679  
 15680  // String returns the string representation.
 15681  //
 15682  // API parameter values that are decorated as "sensitive" in the API will not
 15683  // be included in the string output. The member name will be present, but the
 15684  // value will be replaced with "sensitive".
 15685  func (s DetachPolicyOutput) String() string {
 15686  	return awsutil.Prettify(s)
 15687  }
 15688  
 15689  // GoString returns the string representation.
 15690  //
 15691  // API parameter values that are decorated as "sensitive" in the API will not
 15692  // be included in the string output. The member name will be present, but the
 15693  // value will be replaced with "sensitive".
 15694  func (s DetachPolicyOutput) GoString() string {
 15695  	return s.String()
 15696  }
 15697  
 15698  type DetachTypedLinkInput struct {
 15699  	_ struct{} `type:"structure"`
 15700  
 15701  	// The Amazon Resource Name (ARN) of the directory where you want to detach
 15702  	// the typed link.
 15703  	//
 15704  	// DirectoryArn is a required field
 15705  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 15706  
 15707  	// Used to accept a typed link specifier as input.
 15708  	//
 15709  	// TypedLinkSpecifier is a required field
 15710  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 15711  }
 15712  
 15713  // String returns the string representation.
 15714  //
 15715  // API parameter values that are decorated as "sensitive" in the API will not
 15716  // be included in the string output. The member name will be present, but the
 15717  // value will be replaced with "sensitive".
 15718  func (s DetachTypedLinkInput) String() string {
 15719  	return awsutil.Prettify(s)
 15720  }
 15721  
 15722  // GoString returns the string representation.
 15723  //
 15724  // API parameter values that are decorated as "sensitive" in the API will not
 15725  // be included in the string output. The member name will be present, but the
 15726  // value will be replaced with "sensitive".
 15727  func (s DetachTypedLinkInput) GoString() string {
 15728  	return s.String()
 15729  }
 15730  
 15731  // Validate inspects the fields of the type to determine if they are valid.
 15732  func (s *DetachTypedLinkInput) Validate() error {
 15733  	invalidParams := request.ErrInvalidParams{Context: "DetachTypedLinkInput"}
 15734  	if s.DirectoryArn == nil {
 15735  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 15736  	}
 15737  	if s.TypedLinkSpecifier == nil {
 15738  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 15739  	}
 15740  	if s.TypedLinkSpecifier != nil {
 15741  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 15742  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 15743  		}
 15744  	}
 15745  
 15746  	if invalidParams.Len() > 0 {
 15747  		return invalidParams
 15748  	}
 15749  	return nil
 15750  }
 15751  
 15752  // SetDirectoryArn sets the DirectoryArn field's value.
 15753  func (s *DetachTypedLinkInput) SetDirectoryArn(v string) *DetachTypedLinkInput {
 15754  	s.DirectoryArn = &v
 15755  	return s
 15756  }
 15757  
 15758  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 15759  func (s *DetachTypedLinkInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *DetachTypedLinkInput {
 15760  	s.TypedLinkSpecifier = v
 15761  	return s
 15762  }
 15763  
 15764  type DetachTypedLinkOutput struct {
 15765  	_ struct{} `type:"structure" nopayload:"true"`
 15766  }
 15767  
 15768  // String returns the string representation.
 15769  //
 15770  // API parameter values that are decorated as "sensitive" in the API will not
 15771  // be included in the string output. The member name will be present, but the
 15772  // value will be replaced with "sensitive".
 15773  func (s DetachTypedLinkOutput) String() string {
 15774  	return awsutil.Prettify(s)
 15775  }
 15776  
 15777  // GoString returns the string representation.
 15778  //
 15779  // API parameter values that are decorated as "sensitive" in the API will not
 15780  // be included in the string output. The member name will be present, but the
 15781  // value will be replaced with "sensitive".
 15782  func (s DetachTypedLinkOutput) GoString() string {
 15783  	return s.String()
 15784  }
 15785  
 15786  // Directory structure that includes the directory name and directory ARN.
 15787  type Directory struct {
 15788  	_ struct{} `type:"structure"`
 15789  
 15790  	// The date and time when the directory was created.
 15791  	CreationDateTime *time.Time `type:"timestamp"`
 15792  
 15793  	// The Amazon Resource Name (ARN) that is associated with the directory. For
 15794  	// more information, see arns.
 15795  	DirectoryArn *string `type:"string"`
 15796  
 15797  	// The name of the directory.
 15798  	Name *string `min:"1" type:"string"`
 15799  
 15800  	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
 15801  	State *string `type:"string" enum:"DirectoryState"`
 15802  }
 15803  
 15804  // String returns the string representation.
 15805  //
 15806  // API parameter values that are decorated as "sensitive" in the API will not
 15807  // be included in the string output. The member name will be present, but the
 15808  // value will be replaced with "sensitive".
 15809  func (s Directory) String() string {
 15810  	return awsutil.Prettify(s)
 15811  }
 15812  
 15813  // GoString returns the string representation.
 15814  //
 15815  // API parameter values that are decorated as "sensitive" in the API will not
 15816  // be included in the string output. The member name will be present, but the
 15817  // value will be replaced with "sensitive".
 15818  func (s Directory) GoString() string {
 15819  	return s.String()
 15820  }
 15821  
 15822  // SetCreationDateTime sets the CreationDateTime field's value.
 15823  func (s *Directory) SetCreationDateTime(v time.Time) *Directory {
 15824  	s.CreationDateTime = &v
 15825  	return s
 15826  }
 15827  
 15828  // SetDirectoryArn sets the DirectoryArn field's value.
 15829  func (s *Directory) SetDirectoryArn(v string) *Directory {
 15830  	s.DirectoryArn = &v
 15831  	return s
 15832  }
 15833  
 15834  // SetName sets the Name field's value.
 15835  func (s *Directory) SetName(v string) *Directory {
 15836  	s.Name = &v
 15837  	return s
 15838  }
 15839  
 15840  // SetState sets the State field's value.
 15841  func (s *Directory) SetState(v string) *Directory {
 15842  	s.State = &v
 15843  	return s
 15844  }
 15845  
 15846  // Indicates that a Directory could not be created due to a naming conflict.
 15847  // Choose a different name and try again.
 15848  type DirectoryAlreadyExistsException struct {
 15849  	_            struct{}                  `type:"structure"`
 15850  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15851  
 15852  	Message_ *string `locationName:"Message" type:"string"`
 15853  }
 15854  
 15855  // String returns the string representation.
 15856  //
 15857  // API parameter values that are decorated as "sensitive" in the API will not
 15858  // be included in the string output. The member name will be present, but the
 15859  // value will be replaced with "sensitive".
 15860  func (s DirectoryAlreadyExistsException) String() string {
 15861  	return awsutil.Prettify(s)
 15862  }
 15863  
 15864  // GoString returns the string representation.
 15865  //
 15866  // API parameter values that are decorated as "sensitive" in the API will not
 15867  // be included in the string output. The member name will be present, but the
 15868  // value will be replaced with "sensitive".
 15869  func (s DirectoryAlreadyExistsException) GoString() string {
 15870  	return s.String()
 15871  }
 15872  
 15873  func newErrorDirectoryAlreadyExistsException(v protocol.ResponseMetadata) error {
 15874  	return &DirectoryAlreadyExistsException{
 15875  		RespMetadata: v,
 15876  	}
 15877  }
 15878  
 15879  // Code returns the exception type name.
 15880  func (s *DirectoryAlreadyExistsException) Code() string {
 15881  	return "DirectoryAlreadyExistsException"
 15882  }
 15883  
 15884  // Message returns the exception's message.
 15885  func (s *DirectoryAlreadyExistsException) Message() string {
 15886  	if s.Message_ != nil {
 15887  		return *s.Message_
 15888  	}
 15889  	return ""
 15890  }
 15891  
 15892  // OrigErr always returns nil, satisfies awserr.Error interface.
 15893  func (s *DirectoryAlreadyExistsException) OrigErr() error {
 15894  	return nil
 15895  }
 15896  
 15897  func (s *DirectoryAlreadyExistsException) Error() string {
 15898  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15899  }
 15900  
 15901  // Status code returns the HTTP status code for the request's response error.
 15902  func (s *DirectoryAlreadyExistsException) StatusCode() int {
 15903  	return s.RespMetadata.StatusCode
 15904  }
 15905  
 15906  // RequestID returns the service's response RequestID for request.
 15907  func (s *DirectoryAlreadyExistsException) RequestID() string {
 15908  	return s.RespMetadata.RequestID
 15909  }
 15910  
 15911  // A directory that has been deleted and to which access has been attempted.
 15912  // Note: The requested resource will eventually cease to exist.
 15913  type DirectoryDeletedException struct {
 15914  	_            struct{}                  `type:"structure"`
 15915  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15916  
 15917  	Message_ *string `locationName:"Message" type:"string"`
 15918  }
 15919  
 15920  // String returns the string representation.
 15921  //
 15922  // API parameter values that are decorated as "sensitive" in the API will not
 15923  // be included in the string output. The member name will be present, but the
 15924  // value will be replaced with "sensitive".
 15925  func (s DirectoryDeletedException) String() string {
 15926  	return awsutil.Prettify(s)
 15927  }
 15928  
 15929  // GoString returns the string representation.
 15930  //
 15931  // API parameter values that are decorated as "sensitive" in the API will not
 15932  // be included in the string output. The member name will be present, but the
 15933  // value will be replaced with "sensitive".
 15934  func (s DirectoryDeletedException) GoString() string {
 15935  	return s.String()
 15936  }
 15937  
 15938  func newErrorDirectoryDeletedException(v protocol.ResponseMetadata) error {
 15939  	return &DirectoryDeletedException{
 15940  		RespMetadata: v,
 15941  	}
 15942  }
 15943  
 15944  // Code returns the exception type name.
 15945  func (s *DirectoryDeletedException) Code() string {
 15946  	return "DirectoryDeletedException"
 15947  }
 15948  
 15949  // Message returns the exception's message.
 15950  func (s *DirectoryDeletedException) Message() string {
 15951  	if s.Message_ != nil {
 15952  		return *s.Message_
 15953  	}
 15954  	return ""
 15955  }
 15956  
 15957  // OrigErr always returns nil, satisfies awserr.Error interface.
 15958  func (s *DirectoryDeletedException) OrigErr() error {
 15959  	return nil
 15960  }
 15961  
 15962  func (s *DirectoryDeletedException) Error() string {
 15963  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15964  }
 15965  
 15966  // Status code returns the HTTP status code for the request's response error.
 15967  func (s *DirectoryDeletedException) StatusCode() int {
 15968  	return s.RespMetadata.StatusCode
 15969  }
 15970  
 15971  // RequestID returns the service's response RequestID for request.
 15972  func (s *DirectoryDeletedException) RequestID() string {
 15973  	return s.RespMetadata.RequestID
 15974  }
 15975  
 15976  // An operation can only operate on a disabled directory.
 15977  type DirectoryNotDisabledException struct {
 15978  	_            struct{}                  `type:"structure"`
 15979  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15980  
 15981  	Message_ *string `locationName:"Message" type:"string"`
 15982  }
 15983  
 15984  // String returns the string representation.
 15985  //
 15986  // API parameter values that are decorated as "sensitive" in the API will not
 15987  // be included in the string output. The member name will be present, but the
 15988  // value will be replaced with "sensitive".
 15989  func (s DirectoryNotDisabledException) String() string {
 15990  	return awsutil.Prettify(s)
 15991  }
 15992  
 15993  // GoString returns the string representation.
 15994  //
 15995  // API parameter values that are decorated as "sensitive" in the API will not
 15996  // be included in the string output. The member name will be present, but the
 15997  // value will be replaced with "sensitive".
 15998  func (s DirectoryNotDisabledException) GoString() string {
 15999  	return s.String()
 16000  }
 16001  
 16002  func newErrorDirectoryNotDisabledException(v protocol.ResponseMetadata) error {
 16003  	return &DirectoryNotDisabledException{
 16004  		RespMetadata: v,
 16005  	}
 16006  }
 16007  
 16008  // Code returns the exception type name.
 16009  func (s *DirectoryNotDisabledException) Code() string {
 16010  	return "DirectoryNotDisabledException"
 16011  }
 16012  
 16013  // Message returns the exception's message.
 16014  func (s *DirectoryNotDisabledException) Message() string {
 16015  	if s.Message_ != nil {
 16016  		return *s.Message_
 16017  	}
 16018  	return ""
 16019  }
 16020  
 16021  // OrigErr always returns nil, satisfies awserr.Error interface.
 16022  func (s *DirectoryNotDisabledException) OrigErr() error {
 16023  	return nil
 16024  }
 16025  
 16026  func (s *DirectoryNotDisabledException) Error() string {
 16027  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16028  }
 16029  
 16030  // Status code returns the HTTP status code for the request's response error.
 16031  func (s *DirectoryNotDisabledException) StatusCode() int {
 16032  	return s.RespMetadata.StatusCode
 16033  }
 16034  
 16035  // RequestID returns the service's response RequestID for request.
 16036  func (s *DirectoryNotDisabledException) RequestID() string {
 16037  	return s.RespMetadata.RequestID
 16038  }
 16039  
 16040  // Operations are only permitted on enabled directories.
 16041  type DirectoryNotEnabledException struct {
 16042  	_            struct{}                  `type:"structure"`
 16043  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16044  
 16045  	Message_ *string `locationName:"Message" type:"string"`
 16046  }
 16047  
 16048  // String returns the string representation.
 16049  //
 16050  // API parameter values that are decorated as "sensitive" in the API will not
 16051  // be included in the string output. The member name will be present, but the
 16052  // value will be replaced with "sensitive".
 16053  func (s DirectoryNotEnabledException) String() string {
 16054  	return awsutil.Prettify(s)
 16055  }
 16056  
 16057  // GoString returns the string representation.
 16058  //
 16059  // API parameter values that are decorated as "sensitive" in the API will not
 16060  // be included in the string output. The member name will be present, but the
 16061  // value will be replaced with "sensitive".
 16062  func (s DirectoryNotEnabledException) GoString() string {
 16063  	return s.String()
 16064  }
 16065  
 16066  func newErrorDirectoryNotEnabledException(v protocol.ResponseMetadata) error {
 16067  	return &DirectoryNotEnabledException{
 16068  		RespMetadata: v,
 16069  	}
 16070  }
 16071  
 16072  // Code returns the exception type name.
 16073  func (s *DirectoryNotEnabledException) Code() string {
 16074  	return "DirectoryNotEnabledException"
 16075  }
 16076  
 16077  // Message returns the exception's message.
 16078  func (s *DirectoryNotEnabledException) Message() string {
 16079  	if s.Message_ != nil {
 16080  		return *s.Message_
 16081  	}
 16082  	return ""
 16083  }
 16084  
 16085  // OrigErr always returns nil, satisfies awserr.Error interface.
 16086  func (s *DirectoryNotEnabledException) OrigErr() error {
 16087  	return nil
 16088  }
 16089  
 16090  func (s *DirectoryNotEnabledException) Error() string {
 16091  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16092  }
 16093  
 16094  // Status code returns the HTTP status code for the request's response error.
 16095  func (s *DirectoryNotEnabledException) StatusCode() int {
 16096  	return s.RespMetadata.StatusCode
 16097  }
 16098  
 16099  // RequestID returns the service's response RequestID for request.
 16100  func (s *DirectoryNotEnabledException) RequestID() string {
 16101  	return s.RespMetadata.RequestID
 16102  }
 16103  
 16104  type DisableDirectoryInput struct {
 16105  	_ struct{} `type:"structure" nopayload:"true"`
 16106  
 16107  	// The ARN of the directory to disable.
 16108  	//
 16109  	// DirectoryArn is a required field
 16110  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 16111  }
 16112  
 16113  // String returns the string representation.
 16114  //
 16115  // API parameter values that are decorated as "sensitive" in the API will not
 16116  // be included in the string output. The member name will be present, but the
 16117  // value will be replaced with "sensitive".
 16118  func (s DisableDirectoryInput) String() string {
 16119  	return awsutil.Prettify(s)
 16120  }
 16121  
 16122  // GoString returns the string representation.
 16123  //
 16124  // API parameter values that are decorated as "sensitive" in the API will not
 16125  // be included in the string output. The member name will be present, but the
 16126  // value will be replaced with "sensitive".
 16127  func (s DisableDirectoryInput) GoString() string {
 16128  	return s.String()
 16129  }
 16130  
 16131  // Validate inspects the fields of the type to determine if they are valid.
 16132  func (s *DisableDirectoryInput) Validate() error {
 16133  	invalidParams := request.ErrInvalidParams{Context: "DisableDirectoryInput"}
 16134  	if s.DirectoryArn == nil {
 16135  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 16136  	}
 16137  
 16138  	if invalidParams.Len() > 0 {
 16139  		return invalidParams
 16140  	}
 16141  	return nil
 16142  }
 16143  
 16144  // SetDirectoryArn sets the DirectoryArn field's value.
 16145  func (s *DisableDirectoryInput) SetDirectoryArn(v string) *DisableDirectoryInput {
 16146  	s.DirectoryArn = &v
 16147  	return s
 16148  }
 16149  
 16150  type DisableDirectoryOutput struct {
 16151  	_ struct{} `type:"structure"`
 16152  
 16153  	// The ARN of the directory that has been disabled.
 16154  	//
 16155  	// DirectoryArn is a required field
 16156  	DirectoryArn *string `type:"string" required:"true"`
 16157  }
 16158  
 16159  // String returns the string representation.
 16160  //
 16161  // API parameter values that are decorated as "sensitive" in the API will not
 16162  // be included in the string output. The member name will be present, but the
 16163  // value will be replaced with "sensitive".
 16164  func (s DisableDirectoryOutput) String() string {
 16165  	return awsutil.Prettify(s)
 16166  }
 16167  
 16168  // GoString returns the string representation.
 16169  //
 16170  // API parameter values that are decorated as "sensitive" in the API will not
 16171  // be included in the string output. The member name will be present, but the
 16172  // value will be replaced with "sensitive".
 16173  func (s DisableDirectoryOutput) GoString() string {
 16174  	return s.String()
 16175  }
 16176  
 16177  // SetDirectoryArn sets the DirectoryArn field's value.
 16178  func (s *DisableDirectoryOutput) SetDirectoryArn(v string) *DisableDirectoryOutput {
 16179  	s.DirectoryArn = &v
 16180  	return s
 16181  }
 16182  
 16183  type EnableDirectoryInput struct {
 16184  	_ struct{} `type:"structure" nopayload:"true"`
 16185  
 16186  	// The ARN of the directory to enable.
 16187  	//
 16188  	// DirectoryArn is a required field
 16189  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 16190  }
 16191  
 16192  // String returns the string representation.
 16193  //
 16194  // API parameter values that are decorated as "sensitive" in the API will not
 16195  // be included in the string output. The member name will be present, but the
 16196  // value will be replaced with "sensitive".
 16197  func (s EnableDirectoryInput) String() string {
 16198  	return awsutil.Prettify(s)
 16199  }
 16200  
 16201  // GoString returns the string representation.
 16202  //
 16203  // API parameter values that are decorated as "sensitive" in the API will not
 16204  // be included in the string output. The member name will be present, but the
 16205  // value will be replaced with "sensitive".
 16206  func (s EnableDirectoryInput) GoString() string {
 16207  	return s.String()
 16208  }
 16209  
 16210  // Validate inspects the fields of the type to determine if they are valid.
 16211  func (s *EnableDirectoryInput) Validate() error {
 16212  	invalidParams := request.ErrInvalidParams{Context: "EnableDirectoryInput"}
 16213  	if s.DirectoryArn == nil {
 16214  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 16215  	}
 16216  
 16217  	if invalidParams.Len() > 0 {
 16218  		return invalidParams
 16219  	}
 16220  	return nil
 16221  }
 16222  
 16223  // SetDirectoryArn sets the DirectoryArn field's value.
 16224  func (s *EnableDirectoryInput) SetDirectoryArn(v string) *EnableDirectoryInput {
 16225  	s.DirectoryArn = &v
 16226  	return s
 16227  }
 16228  
 16229  type EnableDirectoryOutput struct {
 16230  	_ struct{} `type:"structure"`
 16231  
 16232  	// The ARN of the enabled directory.
 16233  	//
 16234  	// DirectoryArn is a required field
 16235  	DirectoryArn *string `type:"string" required:"true"`
 16236  }
 16237  
 16238  // String returns the string representation.
 16239  //
 16240  // API parameter values that are decorated as "sensitive" in the API will not
 16241  // be included in the string output. The member name will be present, but the
 16242  // value will be replaced with "sensitive".
 16243  func (s EnableDirectoryOutput) String() string {
 16244  	return awsutil.Prettify(s)
 16245  }
 16246  
 16247  // GoString returns the string representation.
 16248  //
 16249  // API parameter values that are decorated as "sensitive" in the API will not
 16250  // be included in the string output. The member name will be present, but the
 16251  // value will be replaced with "sensitive".
 16252  func (s EnableDirectoryOutput) GoString() string {
 16253  	return s.String()
 16254  }
 16255  
 16256  // SetDirectoryArn sets the DirectoryArn field's value.
 16257  func (s *EnableDirectoryOutput) SetDirectoryArn(v string) *EnableDirectoryOutput {
 16258  	s.DirectoryArn = &v
 16259  	return s
 16260  }
 16261  
 16262  // A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes.
 16263  // See Facets (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html)
 16264  // for more information.
 16265  type Facet struct {
 16266  	_ struct{} `type:"structure"`
 16267  
 16268  	// There are two different styles that you can define on any given facet, Static
 16269  	// and Dynamic. For static facets, all attributes must be defined in the schema.
 16270  	// For dynamic facets, attributes can be defined during data plane operations.
 16271  	FacetStyle *string `type:"string" enum:"FacetStyle"`
 16272  
 16273  	// The name of the Facet.
 16274  	Name *string `min:"1" type:"string"`
 16275  
 16276  	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
 16277  	// for more details.
 16278  	ObjectType *string `type:"string" enum:"ObjectType"`
 16279  }
 16280  
 16281  // String returns the string representation.
 16282  //
 16283  // API parameter values that are decorated as "sensitive" in the API will not
 16284  // be included in the string output. The member name will be present, but the
 16285  // value will be replaced with "sensitive".
 16286  func (s Facet) String() string {
 16287  	return awsutil.Prettify(s)
 16288  }
 16289  
 16290  // GoString returns the string representation.
 16291  //
 16292  // API parameter values that are decorated as "sensitive" in the API will not
 16293  // be included in the string output. The member name will be present, but the
 16294  // value will be replaced with "sensitive".
 16295  func (s Facet) GoString() string {
 16296  	return s.String()
 16297  }
 16298  
 16299  // SetFacetStyle sets the FacetStyle field's value.
 16300  func (s *Facet) SetFacetStyle(v string) *Facet {
 16301  	s.FacetStyle = &v
 16302  	return s
 16303  }
 16304  
 16305  // SetName sets the Name field's value.
 16306  func (s *Facet) SetName(v string) *Facet {
 16307  	s.Name = &v
 16308  	return s
 16309  }
 16310  
 16311  // SetObjectType sets the ObjectType field's value.
 16312  func (s *Facet) SetObjectType(v string) *Facet {
 16313  	s.ObjectType = &v
 16314  	return s
 16315  }
 16316  
 16317  // A facet with the same name already exists.
 16318  type FacetAlreadyExistsException struct {
 16319  	_            struct{}                  `type:"structure"`
 16320  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16321  
 16322  	Message_ *string `locationName:"Message" type:"string"`
 16323  }
 16324  
 16325  // String returns the string representation.
 16326  //
 16327  // API parameter values that are decorated as "sensitive" in the API will not
 16328  // be included in the string output. The member name will be present, but the
 16329  // value will be replaced with "sensitive".
 16330  func (s FacetAlreadyExistsException) String() string {
 16331  	return awsutil.Prettify(s)
 16332  }
 16333  
 16334  // GoString returns the string representation.
 16335  //
 16336  // API parameter values that are decorated as "sensitive" in the API will not
 16337  // be included in the string output. The member name will be present, but the
 16338  // value will be replaced with "sensitive".
 16339  func (s FacetAlreadyExistsException) GoString() string {
 16340  	return s.String()
 16341  }
 16342  
 16343  func newErrorFacetAlreadyExistsException(v protocol.ResponseMetadata) error {
 16344  	return &FacetAlreadyExistsException{
 16345  		RespMetadata: v,
 16346  	}
 16347  }
 16348  
 16349  // Code returns the exception type name.
 16350  func (s *FacetAlreadyExistsException) Code() string {
 16351  	return "FacetAlreadyExistsException"
 16352  }
 16353  
 16354  // Message returns the exception's message.
 16355  func (s *FacetAlreadyExistsException) Message() string {
 16356  	if s.Message_ != nil {
 16357  		return *s.Message_
 16358  	}
 16359  	return ""
 16360  }
 16361  
 16362  // OrigErr always returns nil, satisfies awserr.Error interface.
 16363  func (s *FacetAlreadyExistsException) OrigErr() error {
 16364  	return nil
 16365  }
 16366  
 16367  func (s *FacetAlreadyExistsException) Error() string {
 16368  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16369  }
 16370  
 16371  // Status code returns the HTTP status code for the request's response error.
 16372  func (s *FacetAlreadyExistsException) StatusCode() int {
 16373  	return s.RespMetadata.StatusCode
 16374  }
 16375  
 16376  // RequestID returns the service's response RequestID for request.
 16377  func (s *FacetAlreadyExistsException) RequestID() string {
 16378  	return s.RespMetadata.RequestID
 16379  }
 16380  
 16381  // An attribute that is associated with the Facet.
 16382  type FacetAttribute struct {
 16383  	_ struct{} `type:"structure"`
 16384  
 16385  	// A facet attribute consists of either a definition or a reference. This structure
 16386  	// contains the attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
 16387  	// for more information.
 16388  	AttributeDefinition *FacetAttributeDefinition `type:"structure"`
 16389  
 16390  	// An attribute reference that is associated with the attribute. See Attribute
 16391  	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
 16392  	// for more information.
 16393  	AttributeReference *FacetAttributeReference `type:"structure"`
 16394  
 16395  	// The name of the facet attribute.
 16396  	//
 16397  	// Name is a required field
 16398  	Name *string `min:"1" type:"string" required:"true"`
 16399  
 16400  	// The required behavior of the FacetAttribute.
 16401  	RequiredBehavior *string `type:"string" enum:"RequiredAttributeBehavior"`
 16402  }
 16403  
 16404  // String returns the string representation.
 16405  //
 16406  // API parameter values that are decorated as "sensitive" in the API will not
 16407  // be included in the string output. The member name will be present, but the
 16408  // value will be replaced with "sensitive".
 16409  func (s FacetAttribute) String() string {
 16410  	return awsutil.Prettify(s)
 16411  }
 16412  
 16413  // GoString returns the string representation.
 16414  //
 16415  // API parameter values that are decorated as "sensitive" in the API will not
 16416  // be included in the string output. The member name will be present, but the
 16417  // value will be replaced with "sensitive".
 16418  func (s FacetAttribute) GoString() string {
 16419  	return s.String()
 16420  }
 16421  
 16422  // Validate inspects the fields of the type to determine if they are valid.
 16423  func (s *FacetAttribute) Validate() error {
 16424  	invalidParams := request.ErrInvalidParams{Context: "FacetAttribute"}
 16425  	if s.Name == nil {
 16426  		invalidParams.Add(request.NewErrParamRequired("Name"))
 16427  	}
 16428  	if s.Name != nil && len(*s.Name) < 1 {
 16429  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 16430  	}
 16431  	if s.AttributeDefinition != nil {
 16432  		if err := s.AttributeDefinition.Validate(); err != nil {
 16433  			invalidParams.AddNested("AttributeDefinition", err.(request.ErrInvalidParams))
 16434  		}
 16435  	}
 16436  	if s.AttributeReference != nil {
 16437  		if err := s.AttributeReference.Validate(); err != nil {
 16438  			invalidParams.AddNested("AttributeReference", err.(request.ErrInvalidParams))
 16439  		}
 16440  	}
 16441  
 16442  	if invalidParams.Len() > 0 {
 16443  		return invalidParams
 16444  	}
 16445  	return nil
 16446  }
 16447  
 16448  // SetAttributeDefinition sets the AttributeDefinition field's value.
 16449  func (s *FacetAttribute) SetAttributeDefinition(v *FacetAttributeDefinition) *FacetAttribute {
 16450  	s.AttributeDefinition = v
 16451  	return s
 16452  }
 16453  
 16454  // SetAttributeReference sets the AttributeReference field's value.
 16455  func (s *FacetAttribute) SetAttributeReference(v *FacetAttributeReference) *FacetAttribute {
 16456  	s.AttributeReference = v
 16457  	return s
 16458  }
 16459  
 16460  // SetName sets the Name field's value.
 16461  func (s *FacetAttribute) SetName(v string) *FacetAttribute {
 16462  	s.Name = &v
 16463  	return s
 16464  }
 16465  
 16466  // SetRequiredBehavior sets the RequiredBehavior field's value.
 16467  func (s *FacetAttribute) SetRequiredBehavior(v string) *FacetAttribute {
 16468  	s.RequiredBehavior = &v
 16469  	return s
 16470  }
 16471  
 16472  // A facet attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
 16473  // for more information.
 16474  type FacetAttributeDefinition struct {
 16475  	_ struct{} `type:"structure"`
 16476  
 16477  	// The default value of the attribute (if configured).
 16478  	DefaultValue *TypedAttributeValue `type:"structure"`
 16479  
 16480  	// Whether the attribute is mutable or not.
 16481  	IsImmutable *bool `type:"boolean"`
 16482  
 16483  	// Validation rules attached to the attribute definition.
 16484  	Rules map[string]*Rule `type:"map"`
 16485  
 16486  	// The type of the attribute.
 16487  	//
 16488  	// Type is a required field
 16489  	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
 16490  }
 16491  
 16492  // String returns the string representation.
 16493  //
 16494  // API parameter values that are decorated as "sensitive" in the API will not
 16495  // be included in the string output. The member name will be present, but the
 16496  // value will be replaced with "sensitive".
 16497  func (s FacetAttributeDefinition) String() string {
 16498  	return awsutil.Prettify(s)
 16499  }
 16500  
 16501  // GoString returns the string representation.
 16502  //
 16503  // API parameter values that are decorated as "sensitive" in the API will not
 16504  // be included in the string output. The member name will be present, but the
 16505  // value will be replaced with "sensitive".
 16506  func (s FacetAttributeDefinition) GoString() string {
 16507  	return s.String()
 16508  }
 16509  
 16510  // Validate inspects the fields of the type to determine if they are valid.
 16511  func (s *FacetAttributeDefinition) Validate() error {
 16512  	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeDefinition"}
 16513  	if s.Type == nil {
 16514  		invalidParams.Add(request.NewErrParamRequired("Type"))
 16515  	}
 16516  
 16517  	if invalidParams.Len() > 0 {
 16518  		return invalidParams
 16519  	}
 16520  	return nil
 16521  }
 16522  
 16523  // SetDefaultValue sets the DefaultValue field's value.
 16524  func (s *FacetAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *FacetAttributeDefinition {
 16525  	s.DefaultValue = v
 16526  	return s
 16527  }
 16528  
 16529  // SetIsImmutable sets the IsImmutable field's value.
 16530  func (s *FacetAttributeDefinition) SetIsImmutable(v bool) *FacetAttributeDefinition {
 16531  	s.IsImmutable = &v
 16532  	return s
 16533  }
 16534  
 16535  // SetRules sets the Rules field's value.
 16536  func (s *FacetAttributeDefinition) SetRules(v map[string]*Rule) *FacetAttributeDefinition {
 16537  	s.Rules = v
 16538  	return s
 16539  }
 16540  
 16541  // SetType sets the Type field's value.
 16542  func (s *FacetAttributeDefinition) SetType(v string) *FacetAttributeDefinition {
 16543  	s.Type = &v
 16544  	return s
 16545  }
 16546  
 16547  // The facet attribute reference that specifies the attribute definition that
 16548  // contains the attribute facet name and attribute name.
 16549  type FacetAttributeReference struct {
 16550  	_ struct{} `type:"structure"`
 16551  
 16552  	// The target attribute name that is associated with the facet reference. See
 16553  	// Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
 16554  	// for more information.
 16555  	//
 16556  	// TargetAttributeName is a required field
 16557  	TargetAttributeName *string `min:"1" type:"string" required:"true"`
 16558  
 16559  	// The target facet name that is associated with the facet reference. See Attribute
 16560  	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
 16561  	// for more information.
 16562  	//
 16563  	// TargetFacetName is a required field
 16564  	TargetFacetName *string `min:"1" type:"string" required:"true"`
 16565  }
 16566  
 16567  // String returns the string representation.
 16568  //
 16569  // API parameter values that are decorated as "sensitive" in the API will not
 16570  // be included in the string output. The member name will be present, but the
 16571  // value will be replaced with "sensitive".
 16572  func (s FacetAttributeReference) String() string {
 16573  	return awsutil.Prettify(s)
 16574  }
 16575  
 16576  // GoString returns the string representation.
 16577  //
 16578  // API parameter values that are decorated as "sensitive" in the API will not
 16579  // be included in the string output. The member name will be present, but the
 16580  // value will be replaced with "sensitive".
 16581  func (s FacetAttributeReference) GoString() string {
 16582  	return s.String()
 16583  }
 16584  
 16585  // Validate inspects the fields of the type to determine if they are valid.
 16586  func (s *FacetAttributeReference) Validate() error {
 16587  	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeReference"}
 16588  	if s.TargetAttributeName == nil {
 16589  		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
 16590  	}
 16591  	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
 16592  		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
 16593  	}
 16594  	if s.TargetFacetName == nil {
 16595  		invalidParams.Add(request.NewErrParamRequired("TargetFacetName"))
 16596  	}
 16597  	if s.TargetFacetName != nil && len(*s.TargetFacetName) < 1 {
 16598  		invalidParams.Add(request.NewErrParamMinLen("TargetFacetName", 1))
 16599  	}
 16600  
 16601  	if invalidParams.Len() > 0 {
 16602  		return invalidParams
 16603  	}
 16604  	return nil
 16605  }
 16606  
 16607  // SetTargetAttributeName sets the TargetAttributeName field's value.
 16608  func (s *FacetAttributeReference) SetTargetAttributeName(v string) *FacetAttributeReference {
 16609  	s.TargetAttributeName = &v
 16610  	return s
 16611  }
 16612  
 16613  // SetTargetFacetName sets the TargetFacetName field's value.
 16614  func (s *FacetAttributeReference) SetTargetFacetName(v string) *FacetAttributeReference {
 16615  	s.TargetFacetName = &v
 16616  	return s
 16617  }
 16618  
 16619  // A structure that contains information used to update an attribute.
 16620  type FacetAttributeUpdate struct {
 16621  	_ struct{} `type:"structure"`
 16622  
 16623  	// The action to perform when updating the attribute.
 16624  	Action *string `type:"string" enum:"UpdateActionType"`
 16625  
 16626  	// The attribute to update.
 16627  	Attribute *FacetAttribute `type:"structure"`
 16628  }
 16629  
 16630  // String returns the string representation.
 16631  //
 16632  // API parameter values that are decorated as "sensitive" in the API will not
 16633  // be included in the string output. The member name will be present, but the
 16634  // value will be replaced with "sensitive".
 16635  func (s FacetAttributeUpdate) String() string {
 16636  	return awsutil.Prettify(s)
 16637  }
 16638  
 16639  // GoString returns the string representation.
 16640  //
 16641  // API parameter values that are decorated as "sensitive" in the API will not
 16642  // be included in the string output. The member name will be present, but the
 16643  // value will be replaced with "sensitive".
 16644  func (s FacetAttributeUpdate) GoString() string {
 16645  	return s.String()
 16646  }
 16647  
 16648  // Validate inspects the fields of the type to determine if they are valid.
 16649  func (s *FacetAttributeUpdate) Validate() error {
 16650  	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeUpdate"}
 16651  	if s.Attribute != nil {
 16652  		if err := s.Attribute.Validate(); err != nil {
 16653  			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
 16654  		}
 16655  	}
 16656  
 16657  	if invalidParams.Len() > 0 {
 16658  		return invalidParams
 16659  	}
 16660  	return nil
 16661  }
 16662  
 16663  // SetAction sets the Action field's value.
 16664  func (s *FacetAttributeUpdate) SetAction(v string) *FacetAttributeUpdate {
 16665  	s.Action = &v
 16666  	return s
 16667  }
 16668  
 16669  // SetAttribute sets the Attribute field's value.
 16670  func (s *FacetAttributeUpdate) SetAttribute(v *FacetAttribute) *FacetAttributeUpdate {
 16671  	s.Attribute = v
 16672  	return s
 16673  }
 16674  
 16675  // Occurs when deleting a facet that contains an attribute that is a target
 16676  // to an attribute reference in a different facet.
 16677  type FacetInUseException struct {
 16678  	_            struct{}                  `type:"structure"`
 16679  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16680  
 16681  	Message_ *string `locationName:"Message" type:"string"`
 16682  }
 16683  
 16684  // String returns the string representation.
 16685  //
 16686  // API parameter values that are decorated as "sensitive" in the API will not
 16687  // be included in the string output. The member name will be present, but the
 16688  // value will be replaced with "sensitive".
 16689  func (s FacetInUseException) String() string {
 16690  	return awsutil.Prettify(s)
 16691  }
 16692  
 16693  // GoString returns the string representation.
 16694  //
 16695  // API parameter values that are decorated as "sensitive" in the API will not
 16696  // be included in the string output. The member name will be present, but the
 16697  // value will be replaced with "sensitive".
 16698  func (s FacetInUseException) GoString() string {
 16699  	return s.String()
 16700  }
 16701  
 16702  func newErrorFacetInUseException(v protocol.ResponseMetadata) error {
 16703  	return &FacetInUseException{
 16704  		RespMetadata: v,
 16705  	}
 16706  }
 16707  
 16708  // Code returns the exception type name.
 16709  func (s *FacetInUseException) Code() string {
 16710  	return "FacetInUseException"
 16711  }
 16712  
 16713  // Message returns the exception's message.
 16714  func (s *FacetInUseException) Message() string {
 16715  	if s.Message_ != nil {
 16716  		return *s.Message_
 16717  	}
 16718  	return ""
 16719  }
 16720  
 16721  // OrigErr always returns nil, satisfies awserr.Error interface.
 16722  func (s *FacetInUseException) OrigErr() error {
 16723  	return nil
 16724  }
 16725  
 16726  func (s *FacetInUseException) Error() string {
 16727  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16728  }
 16729  
 16730  // Status code returns the HTTP status code for the request's response error.
 16731  func (s *FacetInUseException) StatusCode() int {
 16732  	return s.RespMetadata.StatusCode
 16733  }
 16734  
 16735  // RequestID returns the service's response RequestID for request.
 16736  func (s *FacetInUseException) RequestID() string {
 16737  	return s.RespMetadata.RequestID
 16738  }
 16739  
 16740  // The specified Facet could not be found.
 16741  type FacetNotFoundException struct {
 16742  	_            struct{}                  `type:"structure"`
 16743  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16744  
 16745  	Message_ *string `locationName:"Message" type:"string"`
 16746  }
 16747  
 16748  // String returns the string representation.
 16749  //
 16750  // API parameter values that are decorated as "sensitive" in the API will not
 16751  // be included in the string output. The member name will be present, but the
 16752  // value will be replaced with "sensitive".
 16753  func (s FacetNotFoundException) String() string {
 16754  	return awsutil.Prettify(s)
 16755  }
 16756  
 16757  // GoString returns the string representation.
 16758  //
 16759  // API parameter values that are decorated as "sensitive" in the API will not
 16760  // be included in the string output. The member name will be present, but the
 16761  // value will be replaced with "sensitive".
 16762  func (s FacetNotFoundException) GoString() string {
 16763  	return s.String()
 16764  }
 16765  
 16766  func newErrorFacetNotFoundException(v protocol.ResponseMetadata) error {
 16767  	return &FacetNotFoundException{
 16768  		RespMetadata: v,
 16769  	}
 16770  }
 16771  
 16772  // Code returns the exception type name.
 16773  func (s *FacetNotFoundException) Code() string {
 16774  	return "FacetNotFoundException"
 16775  }
 16776  
 16777  // Message returns the exception's message.
 16778  func (s *FacetNotFoundException) Message() string {
 16779  	if s.Message_ != nil {
 16780  		return *s.Message_
 16781  	}
 16782  	return ""
 16783  }
 16784  
 16785  // OrigErr always returns nil, satisfies awserr.Error interface.
 16786  func (s *FacetNotFoundException) OrigErr() error {
 16787  	return nil
 16788  }
 16789  
 16790  func (s *FacetNotFoundException) Error() string {
 16791  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16792  }
 16793  
 16794  // Status code returns the HTTP status code for the request's response error.
 16795  func (s *FacetNotFoundException) StatusCode() int {
 16796  	return s.RespMetadata.StatusCode
 16797  }
 16798  
 16799  // RequestID returns the service's response RequestID for request.
 16800  func (s *FacetNotFoundException) RequestID() string {
 16801  	return s.RespMetadata.RequestID
 16802  }
 16803  
 16804  // The Facet that you provided was not well formed or could not be validated
 16805  // with the schema.
 16806  type FacetValidationException struct {
 16807  	_            struct{}                  `type:"structure"`
 16808  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16809  
 16810  	Message_ *string `locationName:"Message" type:"string"`
 16811  }
 16812  
 16813  // String returns the string representation.
 16814  //
 16815  // API parameter values that are decorated as "sensitive" in the API will not
 16816  // be included in the string output. The member name will be present, but the
 16817  // value will be replaced with "sensitive".
 16818  func (s FacetValidationException) String() string {
 16819  	return awsutil.Prettify(s)
 16820  }
 16821  
 16822  // GoString returns the string representation.
 16823  //
 16824  // API parameter values that are decorated as "sensitive" in the API will not
 16825  // be included in the string output. The member name will be present, but the
 16826  // value will be replaced with "sensitive".
 16827  func (s FacetValidationException) GoString() string {
 16828  	return s.String()
 16829  }
 16830  
 16831  func newErrorFacetValidationException(v protocol.ResponseMetadata) error {
 16832  	return &FacetValidationException{
 16833  		RespMetadata: v,
 16834  	}
 16835  }
 16836  
 16837  // Code returns the exception type name.
 16838  func (s *FacetValidationException) Code() string {
 16839  	return "FacetValidationException"
 16840  }
 16841  
 16842  // Message returns the exception's message.
 16843  func (s *FacetValidationException) Message() string {
 16844  	if s.Message_ != nil {
 16845  		return *s.Message_
 16846  	}
 16847  	return ""
 16848  }
 16849  
 16850  // OrigErr always returns nil, satisfies awserr.Error interface.
 16851  func (s *FacetValidationException) OrigErr() error {
 16852  	return nil
 16853  }
 16854  
 16855  func (s *FacetValidationException) Error() string {
 16856  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16857  }
 16858  
 16859  // Status code returns the HTTP status code for the request's response error.
 16860  func (s *FacetValidationException) StatusCode() int {
 16861  	return s.RespMetadata.StatusCode
 16862  }
 16863  
 16864  // RequestID returns the service's response RequestID for request.
 16865  func (s *FacetValidationException) RequestID() string {
 16866  	return s.RespMetadata.RequestID
 16867  }
 16868  
 16869  type GetAppliedSchemaVersionInput struct {
 16870  	_ struct{} `type:"structure"`
 16871  
 16872  	// The ARN of the applied schema.
 16873  	//
 16874  	// SchemaArn is a required field
 16875  	SchemaArn *string `type:"string" required:"true"`
 16876  }
 16877  
 16878  // String returns the string representation.
 16879  //
 16880  // API parameter values that are decorated as "sensitive" in the API will not
 16881  // be included in the string output. The member name will be present, but the
 16882  // value will be replaced with "sensitive".
 16883  func (s GetAppliedSchemaVersionInput) String() string {
 16884  	return awsutil.Prettify(s)
 16885  }
 16886  
 16887  // GoString returns the string representation.
 16888  //
 16889  // API parameter values that are decorated as "sensitive" in the API will not
 16890  // be included in the string output. The member name will be present, but the
 16891  // value will be replaced with "sensitive".
 16892  func (s GetAppliedSchemaVersionInput) GoString() string {
 16893  	return s.String()
 16894  }
 16895  
 16896  // Validate inspects the fields of the type to determine if they are valid.
 16897  func (s *GetAppliedSchemaVersionInput) Validate() error {
 16898  	invalidParams := request.ErrInvalidParams{Context: "GetAppliedSchemaVersionInput"}
 16899  	if s.SchemaArn == nil {
 16900  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 16901  	}
 16902  
 16903  	if invalidParams.Len() > 0 {
 16904  		return invalidParams
 16905  	}
 16906  	return nil
 16907  }
 16908  
 16909  // SetSchemaArn sets the SchemaArn field's value.
 16910  func (s *GetAppliedSchemaVersionInput) SetSchemaArn(v string) *GetAppliedSchemaVersionInput {
 16911  	s.SchemaArn = &v
 16912  	return s
 16913  }
 16914  
 16915  type GetAppliedSchemaVersionOutput struct {
 16916  	_ struct{} `type:"structure"`
 16917  
 16918  	// Current applied schema ARN, including the minor version in use if one was
 16919  	// provided.
 16920  	AppliedSchemaArn *string `type:"string"`
 16921  }
 16922  
 16923  // String returns the string representation.
 16924  //
 16925  // API parameter values that are decorated as "sensitive" in the API will not
 16926  // be included in the string output. The member name will be present, but the
 16927  // value will be replaced with "sensitive".
 16928  func (s GetAppliedSchemaVersionOutput) String() string {
 16929  	return awsutil.Prettify(s)
 16930  }
 16931  
 16932  // GoString returns the string representation.
 16933  //
 16934  // API parameter values that are decorated as "sensitive" in the API will not
 16935  // be included in the string output. The member name will be present, but the
 16936  // value will be replaced with "sensitive".
 16937  func (s GetAppliedSchemaVersionOutput) GoString() string {
 16938  	return s.String()
 16939  }
 16940  
 16941  // SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
 16942  func (s *GetAppliedSchemaVersionOutput) SetAppliedSchemaArn(v string) *GetAppliedSchemaVersionOutput {
 16943  	s.AppliedSchemaArn = &v
 16944  	return s
 16945  }
 16946  
 16947  type GetDirectoryInput struct {
 16948  	_ struct{} `type:"structure" nopayload:"true"`
 16949  
 16950  	// The ARN of the directory.
 16951  	//
 16952  	// DirectoryArn is a required field
 16953  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 16954  }
 16955  
 16956  // String returns the string representation.
 16957  //
 16958  // API parameter values that are decorated as "sensitive" in the API will not
 16959  // be included in the string output. The member name will be present, but the
 16960  // value will be replaced with "sensitive".
 16961  func (s GetDirectoryInput) String() string {
 16962  	return awsutil.Prettify(s)
 16963  }
 16964  
 16965  // GoString returns the string representation.
 16966  //
 16967  // API parameter values that are decorated as "sensitive" in the API will not
 16968  // be included in the string output. The member name will be present, but the
 16969  // value will be replaced with "sensitive".
 16970  func (s GetDirectoryInput) GoString() string {
 16971  	return s.String()
 16972  }
 16973  
 16974  // Validate inspects the fields of the type to determine if they are valid.
 16975  func (s *GetDirectoryInput) Validate() error {
 16976  	invalidParams := request.ErrInvalidParams{Context: "GetDirectoryInput"}
 16977  	if s.DirectoryArn == nil {
 16978  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 16979  	}
 16980  
 16981  	if invalidParams.Len() > 0 {
 16982  		return invalidParams
 16983  	}
 16984  	return nil
 16985  }
 16986  
 16987  // SetDirectoryArn sets the DirectoryArn field's value.
 16988  func (s *GetDirectoryInput) SetDirectoryArn(v string) *GetDirectoryInput {
 16989  	s.DirectoryArn = &v
 16990  	return s
 16991  }
 16992  
 16993  type GetDirectoryOutput struct {
 16994  	_ struct{} `type:"structure"`
 16995  
 16996  	// Metadata about the directory.
 16997  	//
 16998  	// Directory is a required field
 16999  	Directory *Directory `type:"structure" required:"true"`
 17000  }
 17001  
 17002  // String returns the string representation.
 17003  //
 17004  // API parameter values that are decorated as "sensitive" in the API will not
 17005  // be included in the string output. The member name will be present, but the
 17006  // value will be replaced with "sensitive".
 17007  func (s GetDirectoryOutput) String() string {
 17008  	return awsutil.Prettify(s)
 17009  }
 17010  
 17011  // GoString returns the string representation.
 17012  //
 17013  // API parameter values that are decorated as "sensitive" in the API will not
 17014  // be included in the string output. The member name will be present, but the
 17015  // value will be replaced with "sensitive".
 17016  func (s GetDirectoryOutput) GoString() string {
 17017  	return s.String()
 17018  }
 17019  
 17020  // SetDirectory sets the Directory field's value.
 17021  func (s *GetDirectoryOutput) SetDirectory(v *Directory) *GetDirectoryOutput {
 17022  	s.Directory = v
 17023  	return s
 17024  }
 17025  
 17026  type GetFacetInput struct {
 17027  	_ struct{} `type:"structure"`
 17028  
 17029  	// The name of the facet to retrieve.
 17030  	//
 17031  	// Name is a required field
 17032  	Name *string `min:"1" type:"string" required:"true"`
 17033  
 17034  	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
 17035  	// information, see arns.
 17036  	//
 17037  	// SchemaArn is a required field
 17038  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17039  }
 17040  
 17041  // String returns the string representation.
 17042  //
 17043  // API parameter values that are decorated as "sensitive" in the API will not
 17044  // be included in the string output. The member name will be present, but the
 17045  // value will be replaced with "sensitive".
 17046  func (s GetFacetInput) String() string {
 17047  	return awsutil.Prettify(s)
 17048  }
 17049  
 17050  // GoString returns the string representation.
 17051  //
 17052  // API parameter values that are decorated as "sensitive" in the API will not
 17053  // be included in the string output. The member name will be present, but the
 17054  // value will be replaced with "sensitive".
 17055  func (s GetFacetInput) GoString() string {
 17056  	return s.String()
 17057  }
 17058  
 17059  // Validate inspects the fields of the type to determine if they are valid.
 17060  func (s *GetFacetInput) Validate() error {
 17061  	invalidParams := request.ErrInvalidParams{Context: "GetFacetInput"}
 17062  	if s.Name == nil {
 17063  		invalidParams.Add(request.NewErrParamRequired("Name"))
 17064  	}
 17065  	if s.Name != nil && len(*s.Name) < 1 {
 17066  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 17067  	}
 17068  	if s.SchemaArn == nil {
 17069  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 17070  	}
 17071  
 17072  	if invalidParams.Len() > 0 {
 17073  		return invalidParams
 17074  	}
 17075  	return nil
 17076  }
 17077  
 17078  // SetName sets the Name field's value.
 17079  func (s *GetFacetInput) SetName(v string) *GetFacetInput {
 17080  	s.Name = &v
 17081  	return s
 17082  }
 17083  
 17084  // SetSchemaArn sets the SchemaArn field's value.
 17085  func (s *GetFacetInput) SetSchemaArn(v string) *GetFacetInput {
 17086  	s.SchemaArn = &v
 17087  	return s
 17088  }
 17089  
 17090  type GetFacetOutput struct {
 17091  	_ struct{} `type:"structure"`
 17092  
 17093  	// The Facet structure that is associated with the facet.
 17094  	Facet *Facet `type:"structure"`
 17095  }
 17096  
 17097  // String returns the string representation.
 17098  //
 17099  // API parameter values that are decorated as "sensitive" in the API will not
 17100  // be included in the string output. The member name will be present, but the
 17101  // value will be replaced with "sensitive".
 17102  func (s GetFacetOutput) String() string {
 17103  	return awsutil.Prettify(s)
 17104  }
 17105  
 17106  // GoString returns the string representation.
 17107  //
 17108  // API parameter values that are decorated as "sensitive" in the API will not
 17109  // be included in the string output. The member name will be present, but the
 17110  // value will be replaced with "sensitive".
 17111  func (s GetFacetOutput) GoString() string {
 17112  	return s.String()
 17113  }
 17114  
 17115  // SetFacet sets the Facet field's value.
 17116  func (s *GetFacetOutput) SetFacet(v *Facet) *GetFacetOutput {
 17117  	s.Facet = v
 17118  	return s
 17119  }
 17120  
 17121  type GetLinkAttributesInput struct {
 17122  	_ struct{} `type:"structure"`
 17123  
 17124  	// A list of attribute names whose values will be retrieved.
 17125  	//
 17126  	// AttributeNames is a required field
 17127  	AttributeNames []*string `type:"list" required:"true"`
 17128  
 17129  	// The consistency level at which to retrieve the attributes on a typed link.
 17130  	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
 17131  
 17132  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 17133  	// the typed link resides. For more information, see arns or Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 17134  	//
 17135  	// DirectoryArn is a required field
 17136  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17137  
 17138  	// Allows a typed link specifier to be accepted as input.
 17139  	//
 17140  	// TypedLinkSpecifier is a required field
 17141  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 17142  }
 17143  
 17144  // String returns the string representation.
 17145  //
 17146  // API parameter values that are decorated as "sensitive" in the API will not
 17147  // be included in the string output. The member name will be present, but the
 17148  // value will be replaced with "sensitive".
 17149  func (s GetLinkAttributesInput) String() string {
 17150  	return awsutil.Prettify(s)
 17151  }
 17152  
 17153  // GoString returns the string representation.
 17154  //
 17155  // API parameter values that are decorated as "sensitive" in the API will not
 17156  // be included in the string output. The member name will be present, but the
 17157  // value will be replaced with "sensitive".
 17158  func (s GetLinkAttributesInput) GoString() string {
 17159  	return s.String()
 17160  }
 17161  
 17162  // Validate inspects the fields of the type to determine if they are valid.
 17163  func (s *GetLinkAttributesInput) Validate() error {
 17164  	invalidParams := request.ErrInvalidParams{Context: "GetLinkAttributesInput"}
 17165  	if s.AttributeNames == nil {
 17166  		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
 17167  	}
 17168  	if s.DirectoryArn == nil {
 17169  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 17170  	}
 17171  	if s.TypedLinkSpecifier == nil {
 17172  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 17173  	}
 17174  	if s.TypedLinkSpecifier != nil {
 17175  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 17176  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 17177  		}
 17178  	}
 17179  
 17180  	if invalidParams.Len() > 0 {
 17181  		return invalidParams
 17182  	}
 17183  	return nil
 17184  }
 17185  
 17186  // SetAttributeNames sets the AttributeNames field's value.
 17187  func (s *GetLinkAttributesInput) SetAttributeNames(v []*string) *GetLinkAttributesInput {
 17188  	s.AttributeNames = v
 17189  	return s
 17190  }
 17191  
 17192  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 17193  func (s *GetLinkAttributesInput) SetConsistencyLevel(v string) *GetLinkAttributesInput {
 17194  	s.ConsistencyLevel = &v
 17195  	return s
 17196  }
 17197  
 17198  // SetDirectoryArn sets the DirectoryArn field's value.
 17199  func (s *GetLinkAttributesInput) SetDirectoryArn(v string) *GetLinkAttributesInput {
 17200  	s.DirectoryArn = &v
 17201  	return s
 17202  }
 17203  
 17204  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 17205  func (s *GetLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *GetLinkAttributesInput {
 17206  	s.TypedLinkSpecifier = v
 17207  	return s
 17208  }
 17209  
 17210  type GetLinkAttributesOutput struct {
 17211  	_ struct{} `type:"structure"`
 17212  
 17213  	// The attributes that are associated with the typed link.
 17214  	Attributes []*AttributeKeyAndValue `type:"list"`
 17215  }
 17216  
 17217  // String returns the string representation.
 17218  //
 17219  // API parameter values that are decorated as "sensitive" in the API will not
 17220  // be included in the string output. The member name will be present, but the
 17221  // value will be replaced with "sensitive".
 17222  func (s GetLinkAttributesOutput) String() string {
 17223  	return awsutil.Prettify(s)
 17224  }
 17225  
 17226  // GoString returns the string representation.
 17227  //
 17228  // API parameter values that are decorated as "sensitive" in the API will not
 17229  // be included in the string output. The member name will be present, but the
 17230  // value will be replaced with "sensitive".
 17231  func (s GetLinkAttributesOutput) GoString() string {
 17232  	return s.String()
 17233  }
 17234  
 17235  // SetAttributes sets the Attributes field's value.
 17236  func (s *GetLinkAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetLinkAttributesOutput {
 17237  	s.Attributes = v
 17238  	return s
 17239  }
 17240  
 17241  type GetObjectAttributesInput struct {
 17242  	_ struct{} `type:"structure"`
 17243  
 17244  	// List of attribute names whose values will be retrieved.
 17245  	//
 17246  	// AttributeNames is a required field
 17247  	AttributeNames []*string `type:"list" required:"true"`
 17248  
 17249  	// The consistency level at which to retrieve the attributes on an object.
 17250  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 17251  
 17252  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 17253  	// the object resides.
 17254  	//
 17255  	// DirectoryArn is a required field
 17256  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17257  
 17258  	// Reference that identifies the object whose attributes will be retrieved.
 17259  	//
 17260  	// ObjectReference is a required field
 17261  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 17262  
 17263  	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
 17264  	// for details.
 17265  	//
 17266  	// SchemaFacet is a required field
 17267  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
 17268  }
 17269  
 17270  // String returns the string representation.
 17271  //
 17272  // API parameter values that are decorated as "sensitive" in the API will not
 17273  // be included in the string output. The member name will be present, but the
 17274  // value will be replaced with "sensitive".
 17275  func (s GetObjectAttributesInput) String() string {
 17276  	return awsutil.Prettify(s)
 17277  }
 17278  
 17279  // GoString returns the string representation.
 17280  //
 17281  // API parameter values that are decorated as "sensitive" in the API will not
 17282  // be included in the string output. The member name will be present, but the
 17283  // value will be replaced with "sensitive".
 17284  func (s GetObjectAttributesInput) GoString() string {
 17285  	return s.String()
 17286  }
 17287  
 17288  // Validate inspects the fields of the type to determine if they are valid.
 17289  func (s *GetObjectAttributesInput) Validate() error {
 17290  	invalidParams := request.ErrInvalidParams{Context: "GetObjectAttributesInput"}
 17291  	if s.AttributeNames == nil {
 17292  		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
 17293  	}
 17294  	if s.DirectoryArn == nil {
 17295  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 17296  	}
 17297  	if s.ObjectReference == nil {
 17298  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 17299  	}
 17300  	if s.SchemaFacet == nil {
 17301  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
 17302  	}
 17303  	if s.SchemaFacet != nil {
 17304  		if err := s.SchemaFacet.Validate(); err != nil {
 17305  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
 17306  		}
 17307  	}
 17308  
 17309  	if invalidParams.Len() > 0 {
 17310  		return invalidParams
 17311  	}
 17312  	return nil
 17313  }
 17314  
 17315  // SetAttributeNames sets the AttributeNames field's value.
 17316  func (s *GetObjectAttributesInput) SetAttributeNames(v []*string) *GetObjectAttributesInput {
 17317  	s.AttributeNames = v
 17318  	return s
 17319  }
 17320  
 17321  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 17322  func (s *GetObjectAttributesInput) SetConsistencyLevel(v string) *GetObjectAttributesInput {
 17323  	s.ConsistencyLevel = &v
 17324  	return s
 17325  }
 17326  
 17327  // SetDirectoryArn sets the DirectoryArn field's value.
 17328  func (s *GetObjectAttributesInput) SetDirectoryArn(v string) *GetObjectAttributesInput {
 17329  	s.DirectoryArn = &v
 17330  	return s
 17331  }
 17332  
 17333  // SetObjectReference sets the ObjectReference field's value.
 17334  func (s *GetObjectAttributesInput) SetObjectReference(v *ObjectReference) *GetObjectAttributesInput {
 17335  	s.ObjectReference = v
 17336  	return s
 17337  }
 17338  
 17339  // SetSchemaFacet sets the SchemaFacet field's value.
 17340  func (s *GetObjectAttributesInput) SetSchemaFacet(v *SchemaFacet) *GetObjectAttributesInput {
 17341  	s.SchemaFacet = v
 17342  	return s
 17343  }
 17344  
 17345  type GetObjectAttributesOutput struct {
 17346  	_ struct{} `type:"structure"`
 17347  
 17348  	// The attributes that are associated with the object.
 17349  	Attributes []*AttributeKeyAndValue `type:"list"`
 17350  }
 17351  
 17352  // String returns the string representation.
 17353  //
 17354  // API parameter values that are decorated as "sensitive" in the API will not
 17355  // be included in the string output. The member name will be present, but the
 17356  // value will be replaced with "sensitive".
 17357  func (s GetObjectAttributesOutput) String() string {
 17358  	return awsutil.Prettify(s)
 17359  }
 17360  
 17361  // GoString returns the string representation.
 17362  //
 17363  // API parameter values that are decorated as "sensitive" in the API will not
 17364  // be included in the string output. The member name will be present, but the
 17365  // value will be replaced with "sensitive".
 17366  func (s GetObjectAttributesOutput) GoString() string {
 17367  	return s.String()
 17368  }
 17369  
 17370  // SetAttributes sets the Attributes field's value.
 17371  func (s *GetObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetObjectAttributesOutput {
 17372  	s.Attributes = v
 17373  	return s
 17374  }
 17375  
 17376  type GetObjectInformationInput struct {
 17377  	_ struct{} `type:"structure"`
 17378  
 17379  	// The consistency level at which to retrieve the object information.
 17380  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 17381  
 17382  	// The ARN of the directory being retrieved.
 17383  	//
 17384  	// DirectoryArn is a required field
 17385  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17386  
 17387  	// A reference to the object.
 17388  	//
 17389  	// ObjectReference is a required field
 17390  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 17391  }
 17392  
 17393  // String returns the string representation.
 17394  //
 17395  // API parameter values that are decorated as "sensitive" in the API will not
 17396  // be included in the string output. The member name will be present, but the
 17397  // value will be replaced with "sensitive".
 17398  func (s GetObjectInformationInput) String() string {
 17399  	return awsutil.Prettify(s)
 17400  }
 17401  
 17402  // GoString returns the string representation.
 17403  //
 17404  // API parameter values that are decorated as "sensitive" in the API will not
 17405  // be included in the string output. The member name will be present, but the
 17406  // value will be replaced with "sensitive".
 17407  func (s GetObjectInformationInput) GoString() string {
 17408  	return s.String()
 17409  }
 17410  
 17411  // Validate inspects the fields of the type to determine if they are valid.
 17412  func (s *GetObjectInformationInput) Validate() error {
 17413  	invalidParams := request.ErrInvalidParams{Context: "GetObjectInformationInput"}
 17414  	if s.DirectoryArn == nil {
 17415  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 17416  	}
 17417  	if s.ObjectReference == nil {
 17418  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 17419  	}
 17420  
 17421  	if invalidParams.Len() > 0 {
 17422  		return invalidParams
 17423  	}
 17424  	return nil
 17425  }
 17426  
 17427  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 17428  func (s *GetObjectInformationInput) SetConsistencyLevel(v string) *GetObjectInformationInput {
 17429  	s.ConsistencyLevel = &v
 17430  	return s
 17431  }
 17432  
 17433  // SetDirectoryArn sets the DirectoryArn field's value.
 17434  func (s *GetObjectInformationInput) SetDirectoryArn(v string) *GetObjectInformationInput {
 17435  	s.DirectoryArn = &v
 17436  	return s
 17437  }
 17438  
 17439  // SetObjectReference sets the ObjectReference field's value.
 17440  func (s *GetObjectInformationInput) SetObjectReference(v *ObjectReference) *GetObjectInformationInput {
 17441  	s.ObjectReference = v
 17442  	return s
 17443  }
 17444  
 17445  type GetObjectInformationOutput struct {
 17446  	_ struct{} `type:"structure"`
 17447  
 17448  	// The ObjectIdentifier of the specified object.
 17449  	ObjectIdentifier *string `type:"string"`
 17450  
 17451  	// The facets attached to the specified object. Although the response does not
 17452  	// include minor version information, the most recently applied minor version
 17453  	// of each Facet is in effect. See GetAppliedSchemaVersion for details.
 17454  	SchemaFacets []*SchemaFacet `type:"list"`
 17455  }
 17456  
 17457  // String returns the string representation.
 17458  //
 17459  // API parameter values that are decorated as "sensitive" in the API will not
 17460  // be included in the string output. The member name will be present, but the
 17461  // value will be replaced with "sensitive".
 17462  func (s GetObjectInformationOutput) String() string {
 17463  	return awsutil.Prettify(s)
 17464  }
 17465  
 17466  // GoString returns the string representation.
 17467  //
 17468  // API parameter values that are decorated as "sensitive" in the API will not
 17469  // be included in the string output. The member name will be present, but the
 17470  // value will be replaced with "sensitive".
 17471  func (s GetObjectInformationOutput) GoString() string {
 17472  	return s.String()
 17473  }
 17474  
 17475  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 17476  func (s *GetObjectInformationOutput) SetObjectIdentifier(v string) *GetObjectInformationOutput {
 17477  	s.ObjectIdentifier = &v
 17478  	return s
 17479  }
 17480  
 17481  // SetSchemaFacets sets the SchemaFacets field's value.
 17482  func (s *GetObjectInformationOutput) SetSchemaFacets(v []*SchemaFacet) *GetObjectInformationOutput {
 17483  	s.SchemaFacets = v
 17484  	return s
 17485  }
 17486  
 17487  type GetSchemaAsJsonInput struct {
 17488  	_ struct{} `type:"structure" nopayload:"true"`
 17489  
 17490  	// The ARN of the schema to retrieve.
 17491  	//
 17492  	// SchemaArn is a required field
 17493  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17494  }
 17495  
 17496  // String returns the string representation.
 17497  //
 17498  // API parameter values that are decorated as "sensitive" in the API will not
 17499  // be included in the string output. The member name will be present, but the
 17500  // value will be replaced with "sensitive".
 17501  func (s GetSchemaAsJsonInput) String() string {
 17502  	return awsutil.Prettify(s)
 17503  }
 17504  
 17505  // GoString returns the string representation.
 17506  //
 17507  // API parameter values that are decorated as "sensitive" in the API will not
 17508  // be included in the string output. The member name will be present, but the
 17509  // value will be replaced with "sensitive".
 17510  func (s GetSchemaAsJsonInput) GoString() string {
 17511  	return s.String()
 17512  }
 17513  
 17514  // Validate inspects the fields of the type to determine if they are valid.
 17515  func (s *GetSchemaAsJsonInput) Validate() error {
 17516  	invalidParams := request.ErrInvalidParams{Context: "GetSchemaAsJsonInput"}
 17517  	if s.SchemaArn == nil {
 17518  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 17519  	}
 17520  
 17521  	if invalidParams.Len() > 0 {
 17522  		return invalidParams
 17523  	}
 17524  	return nil
 17525  }
 17526  
 17527  // SetSchemaArn sets the SchemaArn field's value.
 17528  func (s *GetSchemaAsJsonInput) SetSchemaArn(v string) *GetSchemaAsJsonInput {
 17529  	s.SchemaArn = &v
 17530  	return s
 17531  }
 17532  
 17533  type GetSchemaAsJsonOutput struct {
 17534  	_ struct{} `type:"structure"`
 17535  
 17536  	// The JSON representation of the schema document.
 17537  	Document *string `type:"string"`
 17538  
 17539  	// The name of the retrieved schema.
 17540  	Name *string `min:"1" type:"string"`
 17541  }
 17542  
 17543  // String returns the string representation.
 17544  //
 17545  // API parameter values that are decorated as "sensitive" in the API will not
 17546  // be included in the string output. The member name will be present, but the
 17547  // value will be replaced with "sensitive".
 17548  func (s GetSchemaAsJsonOutput) String() string {
 17549  	return awsutil.Prettify(s)
 17550  }
 17551  
 17552  // GoString returns the string representation.
 17553  //
 17554  // API parameter values that are decorated as "sensitive" in the API will not
 17555  // be included in the string output. The member name will be present, but the
 17556  // value will be replaced with "sensitive".
 17557  func (s GetSchemaAsJsonOutput) GoString() string {
 17558  	return s.String()
 17559  }
 17560  
 17561  // SetDocument sets the Document field's value.
 17562  func (s *GetSchemaAsJsonOutput) SetDocument(v string) *GetSchemaAsJsonOutput {
 17563  	s.Document = &v
 17564  	return s
 17565  }
 17566  
 17567  // SetName sets the Name field's value.
 17568  func (s *GetSchemaAsJsonOutput) SetName(v string) *GetSchemaAsJsonOutput {
 17569  	s.Name = &v
 17570  	return s
 17571  }
 17572  
 17573  type GetTypedLinkFacetInformationInput struct {
 17574  	_ struct{} `type:"structure"`
 17575  
 17576  	// The unique name of the typed link facet.
 17577  	//
 17578  	// Name is a required field
 17579  	Name *string `type:"string" required:"true"`
 17580  
 17581  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 17582  	// information, see arns.
 17583  	//
 17584  	// SchemaArn is a required field
 17585  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 17586  }
 17587  
 17588  // String returns the string representation.
 17589  //
 17590  // API parameter values that are decorated as "sensitive" in the API will not
 17591  // be included in the string output. The member name will be present, but the
 17592  // value will be replaced with "sensitive".
 17593  func (s GetTypedLinkFacetInformationInput) String() string {
 17594  	return awsutil.Prettify(s)
 17595  }
 17596  
 17597  // GoString returns the string representation.
 17598  //
 17599  // API parameter values that are decorated as "sensitive" in the API will not
 17600  // be included in the string output. The member name will be present, but the
 17601  // value will be replaced with "sensitive".
 17602  func (s GetTypedLinkFacetInformationInput) GoString() string {
 17603  	return s.String()
 17604  }
 17605  
 17606  // Validate inspects the fields of the type to determine if they are valid.
 17607  func (s *GetTypedLinkFacetInformationInput) Validate() error {
 17608  	invalidParams := request.ErrInvalidParams{Context: "GetTypedLinkFacetInformationInput"}
 17609  	if s.Name == nil {
 17610  		invalidParams.Add(request.NewErrParamRequired("Name"))
 17611  	}
 17612  	if s.SchemaArn == nil {
 17613  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 17614  	}
 17615  
 17616  	if invalidParams.Len() > 0 {
 17617  		return invalidParams
 17618  	}
 17619  	return nil
 17620  }
 17621  
 17622  // SetName sets the Name field's value.
 17623  func (s *GetTypedLinkFacetInformationInput) SetName(v string) *GetTypedLinkFacetInformationInput {
 17624  	s.Name = &v
 17625  	return s
 17626  }
 17627  
 17628  // SetSchemaArn sets the SchemaArn field's value.
 17629  func (s *GetTypedLinkFacetInformationInput) SetSchemaArn(v string) *GetTypedLinkFacetInformationInput {
 17630  	s.SchemaArn = &v
 17631  	return s
 17632  }
 17633  
 17634  type GetTypedLinkFacetInformationOutput struct {
 17635  	_ struct{} `type:"structure"`
 17636  
 17637  	// The order of identity attributes for the facet, from most significant to
 17638  	// least significant. The ability to filter typed links considers the order
 17639  	// that the attributes are defined on the typed link facet. When providing ranges
 17640  	// to typed link selection, any inexact ranges must be specified at the end.
 17641  	// Any attributes that do not have a range specified are presumed to match the
 17642  	// entire range. Filters are interpreted in the order of the attributes on the
 17643  	// typed link facet, not the order in which they are supplied to any API calls.
 17644  	// For more information about identity attributes, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 17645  	IdentityAttributeOrder []*string `type:"list"`
 17646  }
 17647  
 17648  // String returns the string representation.
 17649  //
 17650  // API parameter values that are decorated as "sensitive" in the API will not
 17651  // be included in the string output. The member name will be present, but the
 17652  // value will be replaced with "sensitive".
 17653  func (s GetTypedLinkFacetInformationOutput) String() string {
 17654  	return awsutil.Prettify(s)
 17655  }
 17656  
 17657  // GoString returns the string representation.
 17658  //
 17659  // API parameter values that are decorated as "sensitive" in the API will not
 17660  // be included in the string output. The member name will be present, but the
 17661  // value will be replaced with "sensitive".
 17662  func (s GetTypedLinkFacetInformationOutput) GoString() string {
 17663  	return s.String()
 17664  }
 17665  
 17666  // SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
 17667  func (s *GetTypedLinkFacetInformationOutput) SetIdentityAttributeOrder(v []*string) *GetTypedLinkFacetInformationOutput {
 17668  	s.IdentityAttributeOrder = v
 17669  	return s
 17670  }
 17671  
 17672  // Indicates a failure occurred while performing a check for backward compatibility
 17673  // between the specified schema and the schema that is currently applied to
 17674  // the directory.
 17675  type IncompatibleSchemaException struct {
 17676  	_            struct{}                  `type:"structure"`
 17677  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17678  
 17679  	Message_ *string `locationName:"Message" type:"string"`
 17680  }
 17681  
 17682  // String returns the string representation.
 17683  //
 17684  // API parameter values that are decorated as "sensitive" in the API will not
 17685  // be included in the string output. The member name will be present, but the
 17686  // value will be replaced with "sensitive".
 17687  func (s IncompatibleSchemaException) String() string {
 17688  	return awsutil.Prettify(s)
 17689  }
 17690  
 17691  // GoString returns the string representation.
 17692  //
 17693  // API parameter values that are decorated as "sensitive" in the API will not
 17694  // be included in the string output. The member name will be present, but the
 17695  // value will be replaced with "sensitive".
 17696  func (s IncompatibleSchemaException) GoString() string {
 17697  	return s.String()
 17698  }
 17699  
 17700  func newErrorIncompatibleSchemaException(v protocol.ResponseMetadata) error {
 17701  	return &IncompatibleSchemaException{
 17702  		RespMetadata: v,
 17703  	}
 17704  }
 17705  
 17706  // Code returns the exception type name.
 17707  func (s *IncompatibleSchemaException) Code() string {
 17708  	return "IncompatibleSchemaException"
 17709  }
 17710  
 17711  // Message returns the exception's message.
 17712  func (s *IncompatibleSchemaException) Message() string {
 17713  	if s.Message_ != nil {
 17714  		return *s.Message_
 17715  	}
 17716  	return ""
 17717  }
 17718  
 17719  // OrigErr always returns nil, satisfies awserr.Error interface.
 17720  func (s *IncompatibleSchemaException) OrigErr() error {
 17721  	return nil
 17722  }
 17723  
 17724  func (s *IncompatibleSchemaException) Error() string {
 17725  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17726  }
 17727  
 17728  // Status code returns the HTTP status code for the request's response error.
 17729  func (s *IncompatibleSchemaException) StatusCode() int {
 17730  	return s.RespMetadata.StatusCode
 17731  }
 17732  
 17733  // RequestID returns the service's response RequestID for request.
 17734  func (s *IncompatibleSchemaException) RequestID() string {
 17735  	return s.RespMetadata.RequestID
 17736  }
 17737  
 17738  // Represents an index and an attached object.
 17739  type IndexAttachment struct {
 17740  	_ struct{} `type:"structure"`
 17741  
 17742  	// The indexed attribute values.
 17743  	IndexedAttributes []*AttributeKeyAndValue `type:"list"`
 17744  
 17745  	// In response to ListIndex, the ObjectIdentifier of the object attached to
 17746  	// the index. In response to ListAttachedIndices, the ObjectIdentifier of the
 17747  	// index attached to the object. This field will always contain the ObjectIdentifier
 17748  	// of the object on the opposite side of the attachment specified in the query.
 17749  	ObjectIdentifier *string `type:"string"`
 17750  }
 17751  
 17752  // String returns the string representation.
 17753  //
 17754  // API parameter values that are decorated as "sensitive" in the API will not
 17755  // be included in the string output. The member name will be present, but the
 17756  // value will be replaced with "sensitive".
 17757  func (s IndexAttachment) String() string {
 17758  	return awsutil.Prettify(s)
 17759  }
 17760  
 17761  // GoString returns the string representation.
 17762  //
 17763  // API parameter values that are decorated as "sensitive" in the API will not
 17764  // be included in the string output. The member name will be present, but the
 17765  // value will be replaced with "sensitive".
 17766  func (s IndexAttachment) GoString() string {
 17767  	return s.String()
 17768  }
 17769  
 17770  // SetIndexedAttributes sets the IndexedAttributes field's value.
 17771  func (s *IndexAttachment) SetIndexedAttributes(v []*AttributeKeyAndValue) *IndexAttachment {
 17772  	s.IndexedAttributes = v
 17773  	return s
 17774  }
 17775  
 17776  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 17777  func (s *IndexAttachment) SetObjectIdentifier(v string) *IndexAttachment {
 17778  	s.ObjectIdentifier = &v
 17779  	return s
 17780  }
 17781  
 17782  // An object has been attempted to be attached to an object that does not have
 17783  // the appropriate attribute value.
 17784  type IndexedAttributeMissingException struct {
 17785  	_            struct{}                  `type:"structure"`
 17786  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17787  
 17788  	Message_ *string `locationName:"Message" type:"string"`
 17789  }
 17790  
 17791  // String returns the string representation.
 17792  //
 17793  // API parameter values that are decorated as "sensitive" in the API will not
 17794  // be included in the string output. The member name will be present, but the
 17795  // value will be replaced with "sensitive".
 17796  func (s IndexedAttributeMissingException) String() string {
 17797  	return awsutil.Prettify(s)
 17798  }
 17799  
 17800  // GoString returns the string representation.
 17801  //
 17802  // API parameter values that are decorated as "sensitive" in the API will not
 17803  // be included in the string output. The member name will be present, but the
 17804  // value will be replaced with "sensitive".
 17805  func (s IndexedAttributeMissingException) GoString() string {
 17806  	return s.String()
 17807  }
 17808  
 17809  func newErrorIndexedAttributeMissingException(v protocol.ResponseMetadata) error {
 17810  	return &IndexedAttributeMissingException{
 17811  		RespMetadata: v,
 17812  	}
 17813  }
 17814  
 17815  // Code returns the exception type name.
 17816  func (s *IndexedAttributeMissingException) Code() string {
 17817  	return "IndexedAttributeMissingException"
 17818  }
 17819  
 17820  // Message returns the exception's message.
 17821  func (s *IndexedAttributeMissingException) Message() string {
 17822  	if s.Message_ != nil {
 17823  		return *s.Message_
 17824  	}
 17825  	return ""
 17826  }
 17827  
 17828  // OrigErr always returns nil, satisfies awserr.Error interface.
 17829  func (s *IndexedAttributeMissingException) OrigErr() error {
 17830  	return nil
 17831  }
 17832  
 17833  func (s *IndexedAttributeMissingException) Error() string {
 17834  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17835  }
 17836  
 17837  // Status code returns the HTTP status code for the request's response error.
 17838  func (s *IndexedAttributeMissingException) StatusCode() int {
 17839  	return s.RespMetadata.StatusCode
 17840  }
 17841  
 17842  // RequestID returns the service's response RequestID for request.
 17843  func (s *IndexedAttributeMissingException) RequestID() string {
 17844  	return s.RespMetadata.RequestID
 17845  }
 17846  
 17847  // Indicates a problem that must be resolved by Amazon Web Services. This might
 17848  // be a transient error in which case you can retry your request until it succeeds.
 17849  // Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
 17850  // site to see if there are any operational issues with the service.
 17851  type InternalServiceException struct {
 17852  	_            struct{}                  `type:"structure"`
 17853  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17854  
 17855  	Message_ *string `locationName:"Message" type:"string"`
 17856  }
 17857  
 17858  // String returns the string representation.
 17859  //
 17860  // API parameter values that are decorated as "sensitive" in the API will not
 17861  // be included in the string output. The member name will be present, but the
 17862  // value will be replaced with "sensitive".
 17863  func (s InternalServiceException) String() string {
 17864  	return awsutil.Prettify(s)
 17865  }
 17866  
 17867  // GoString returns the string representation.
 17868  //
 17869  // API parameter values that are decorated as "sensitive" in the API will not
 17870  // be included in the string output. The member name will be present, but the
 17871  // value will be replaced with "sensitive".
 17872  func (s InternalServiceException) GoString() string {
 17873  	return s.String()
 17874  }
 17875  
 17876  func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
 17877  	return &InternalServiceException{
 17878  		RespMetadata: v,
 17879  	}
 17880  }
 17881  
 17882  // Code returns the exception type name.
 17883  func (s *InternalServiceException) Code() string {
 17884  	return "InternalServiceException"
 17885  }
 17886  
 17887  // Message returns the exception's message.
 17888  func (s *InternalServiceException) Message() string {
 17889  	if s.Message_ != nil {
 17890  		return *s.Message_
 17891  	}
 17892  	return ""
 17893  }
 17894  
 17895  // OrigErr always returns nil, satisfies awserr.Error interface.
 17896  func (s *InternalServiceException) OrigErr() error {
 17897  	return nil
 17898  }
 17899  
 17900  func (s *InternalServiceException) Error() string {
 17901  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17902  }
 17903  
 17904  // Status code returns the HTTP status code for the request's response error.
 17905  func (s *InternalServiceException) StatusCode() int {
 17906  	return s.RespMetadata.StatusCode
 17907  }
 17908  
 17909  // RequestID returns the service's response RequestID for request.
 17910  func (s *InternalServiceException) RequestID() string {
 17911  	return s.RespMetadata.RequestID
 17912  }
 17913  
 17914  // Indicates that the provided ARN value is not valid.
 17915  type InvalidArnException struct {
 17916  	_            struct{}                  `type:"structure"`
 17917  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17918  
 17919  	Message_ *string `locationName:"Message" type:"string"`
 17920  }
 17921  
 17922  // String returns the string representation.
 17923  //
 17924  // API parameter values that are decorated as "sensitive" in the API will not
 17925  // be included in the string output. The member name will be present, but the
 17926  // value will be replaced with "sensitive".
 17927  func (s InvalidArnException) String() string {
 17928  	return awsutil.Prettify(s)
 17929  }
 17930  
 17931  // GoString returns the string representation.
 17932  //
 17933  // API parameter values that are decorated as "sensitive" in the API will not
 17934  // be included in the string output. The member name will be present, but the
 17935  // value will be replaced with "sensitive".
 17936  func (s InvalidArnException) GoString() string {
 17937  	return s.String()
 17938  }
 17939  
 17940  func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
 17941  	return &InvalidArnException{
 17942  		RespMetadata: v,
 17943  	}
 17944  }
 17945  
 17946  // Code returns the exception type name.
 17947  func (s *InvalidArnException) Code() string {
 17948  	return "InvalidArnException"
 17949  }
 17950  
 17951  // Message returns the exception's message.
 17952  func (s *InvalidArnException) Message() string {
 17953  	if s.Message_ != nil {
 17954  		return *s.Message_
 17955  	}
 17956  	return ""
 17957  }
 17958  
 17959  // OrigErr always returns nil, satisfies awserr.Error interface.
 17960  func (s *InvalidArnException) OrigErr() error {
 17961  	return nil
 17962  }
 17963  
 17964  func (s *InvalidArnException) Error() string {
 17965  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17966  }
 17967  
 17968  // Status code returns the HTTP status code for the request's response error.
 17969  func (s *InvalidArnException) StatusCode() int {
 17970  	return s.RespMetadata.StatusCode
 17971  }
 17972  
 17973  // RequestID returns the service's response RequestID for request.
 17974  func (s *InvalidArnException) RequestID() string {
 17975  	return s.RespMetadata.RequestID
 17976  }
 17977  
 17978  // Indicates that an attempt to make an attachment was invalid. For example,
 17979  // attaching two nodes with a link type that is not applicable to the nodes
 17980  // or attempting to apply a schema to a directory a second time.
 17981  type InvalidAttachmentException struct {
 17982  	_            struct{}                  `type:"structure"`
 17983  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17984  
 17985  	Message_ *string `locationName:"Message" type:"string"`
 17986  }
 17987  
 17988  // String returns the string representation.
 17989  //
 17990  // API parameter values that are decorated as "sensitive" in the API will not
 17991  // be included in the string output. The member name will be present, but the
 17992  // value will be replaced with "sensitive".
 17993  func (s InvalidAttachmentException) String() string {
 17994  	return awsutil.Prettify(s)
 17995  }
 17996  
 17997  // GoString returns the string representation.
 17998  //
 17999  // API parameter values that are decorated as "sensitive" in the API will not
 18000  // be included in the string output. The member name will be present, but the
 18001  // value will be replaced with "sensitive".
 18002  func (s InvalidAttachmentException) GoString() string {
 18003  	return s.String()
 18004  }
 18005  
 18006  func newErrorInvalidAttachmentException(v protocol.ResponseMetadata) error {
 18007  	return &InvalidAttachmentException{
 18008  		RespMetadata: v,
 18009  	}
 18010  }
 18011  
 18012  // Code returns the exception type name.
 18013  func (s *InvalidAttachmentException) Code() string {
 18014  	return "InvalidAttachmentException"
 18015  }
 18016  
 18017  // Message returns the exception's message.
 18018  func (s *InvalidAttachmentException) Message() string {
 18019  	if s.Message_ != nil {
 18020  		return *s.Message_
 18021  	}
 18022  	return ""
 18023  }
 18024  
 18025  // OrigErr always returns nil, satisfies awserr.Error interface.
 18026  func (s *InvalidAttachmentException) OrigErr() error {
 18027  	return nil
 18028  }
 18029  
 18030  func (s *InvalidAttachmentException) Error() string {
 18031  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18032  }
 18033  
 18034  // Status code returns the HTTP status code for the request's response error.
 18035  func (s *InvalidAttachmentException) StatusCode() int {
 18036  	return s.RespMetadata.StatusCode
 18037  }
 18038  
 18039  // RequestID returns the service's response RequestID for request.
 18040  func (s *InvalidAttachmentException) RequestID() string {
 18041  	return s.RespMetadata.RequestID
 18042  }
 18043  
 18044  // An attempt to modify a Facet resulted in an invalid schema exception.
 18045  type InvalidFacetUpdateException struct {
 18046  	_            struct{}                  `type:"structure"`
 18047  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18048  
 18049  	Message_ *string `locationName:"Message" type:"string"`
 18050  }
 18051  
 18052  // String returns the string representation.
 18053  //
 18054  // API parameter values that are decorated as "sensitive" in the API will not
 18055  // be included in the string output. The member name will be present, but the
 18056  // value will be replaced with "sensitive".
 18057  func (s InvalidFacetUpdateException) String() string {
 18058  	return awsutil.Prettify(s)
 18059  }
 18060  
 18061  // GoString returns the string representation.
 18062  //
 18063  // API parameter values that are decorated as "sensitive" in the API will not
 18064  // be included in the string output. The member name will be present, but the
 18065  // value will be replaced with "sensitive".
 18066  func (s InvalidFacetUpdateException) GoString() string {
 18067  	return s.String()
 18068  }
 18069  
 18070  func newErrorInvalidFacetUpdateException(v protocol.ResponseMetadata) error {
 18071  	return &InvalidFacetUpdateException{
 18072  		RespMetadata: v,
 18073  	}
 18074  }
 18075  
 18076  // Code returns the exception type name.
 18077  func (s *InvalidFacetUpdateException) Code() string {
 18078  	return "InvalidFacetUpdateException"
 18079  }
 18080  
 18081  // Message returns the exception's message.
 18082  func (s *InvalidFacetUpdateException) Message() string {
 18083  	if s.Message_ != nil {
 18084  		return *s.Message_
 18085  	}
 18086  	return ""
 18087  }
 18088  
 18089  // OrigErr always returns nil, satisfies awserr.Error interface.
 18090  func (s *InvalidFacetUpdateException) OrigErr() error {
 18091  	return nil
 18092  }
 18093  
 18094  func (s *InvalidFacetUpdateException) Error() string {
 18095  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18096  }
 18097  
 18098  // Status code returns the HTTP status code for the request's response error.
 18099  func (s *InvalidFacetUpdateException) StatusCode() int {
 18100  	return s.RespMetadata.StatusCode
 18101  }
 18102  
 18103  // RequestID returns the service's response RequestID for request.
 18104  func (s *InvalidFacetUpdateException) RequestID() string {
 18105  	return s.RespMetadata.RequestID
 18106  }
 18107  
 18108  // Indicates that the NextToken value is not valid.
 18109  type InvalidNextTokenException struct {
 18110  	_            struct{}                  `type:"structure"`
 18111  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18112  
 18113  	Message_ *string `locationName:"Message" type:"string"`
 18114  }
 18115  
 18116  // String returns the string representation.
 18117  //
 18118  // API parameter values that are decorated as "sensitive" in the API will not
 18119  // be included in the string output. The member name will be present, but the
 18120  // value will be replaced with "sensitive".
 18121  func (s InvalidNextTokenException) String() string {
 18122  	return awsutil.Prettify(s)
 18123  }
 18124  
 18125  // GoString returns the string representation.
 18126  //
 18127  // API parameter values that are decorated as "sensitive" in the API will not
 18128  // be included in the string output. The member name will be present, but the
 18129  // value will be replaced with "sensitive".
 18130  func (s InvalidNextTokenException) GoString() string {
 18131  	return s.String()
 18132  }
 18133  
 18134  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
 18135  	return &InvalidNextTokenException{
 18136  		RespMetadata: v,
 18137  	}
 18138  }
 18139  
 18140  // Code returns the exception type name.
 18141  func (s *InvalidNextTokenException) Code() string {
 18142  	return "InvalidNextTokenException"
 18143  }
 18144  
 18145  // Message returns the exception's message.
 18146  func (s *InvalidNextTokenException) Message() string {
 18147  	if s.Message_ != nil {
 18148  		return *s.Message_
 18149  	}
 18150  	return ""
 18151  }
 18152  
 18153  // OrigErr always returns nil, satisfies awserr.Error interface.
 18154  func (s *InvalidNextTokenException) OrigErr() error {
 18155  	return nil
 18156  }
 18157  
 18158  func (s *InvalidNextTokenException) Error() string {
 18159  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18160  }
 18161  
 18162  // Status code returns the HTTP status code for the request's response error.
 18163  func (s *InvalidNextTokenException) StatusCode() int {
 18164  	return s.RespMetadata.StatusCode
 18165  }
 18166  
 18167  // RequestID returns the service's response RequestID for request.
 18168  func (s *InvalidNextTokenException) RequestID() string {
 18169  	return s.RespMetadata.RequestID
 18170  }
 18171  
 18172  // Occurs when any of the rule parameter keys or values are invalid.
 18173  type InvalidRuleException struct {
 18174  	_            struct{}                  `type:"structure"`
 18175  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18176  
 18177  	Message_ *string `locationName:"Message" type:"string"`
 18178  }
 18179  
 18180  // String returns the string representation.
 18181  //
 18182  // API parameter values that are decorated as "sensitive" in the API will not
 18183  // be included in the string output. The member name will be present, but the
 18184  // value will be replaced with "sensitive".
 18185  func (s InvalidRuleException) String() string {
 18186  	return awsutil.Prettify(s)
 18187  }
 18188  
 18189  // GoString returns the string representation.
 18190  //
 18191  // API parameter values that are decorated as "sensitive" in the API will not
 18192  // be included in the string output. The member name will be present, but the
 18193  // value will be replaced with "sensitive".
 18194  func (s InvalidRuleException) GoString() string {
 18195  	return s.String()
 18196  }
 18197  
 18198  func newErrorInvalidRuleException(v protocol.ResponseMetadata) error {
 18199  	return &InvalidRuleException{
 18200  		RespMetadata: v,
 18201  	}
 18202  }
 18203  
 18204  // Code returns the exception type name.
 18205  func (s *InvalidRuleException) Code() string {
 18206  	return "InvalidRuleException"
 18207  }
 18208  
 18209  // Message returns the exception's message.
 18210  func (s *InvalidRuleException) Message() string {
 18211  	if s.Message_ != nil {
 18212  		return *s.Message_
 18213  	}
 18214  	return ""
 18215  }
 18216  
 18217  // OrigErr always returns nil, satisfies awserr.Error interface.
 18218  func (s *InvalidRuleException) OrigErr() error {
 18219  	return nil
 18220  }
 18221  
 18222  func (s *InvalidRuleException) Error() string {
 18223  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18224  }
 18225  
 18226  // Status code returns the HTTP status code for the request's response error.
 18227  func (s *InvalidRuleException) StatusCode() int {
 18228  	return s.RespMetadata.StatusCode
 18229  }
 18230  
 18231  // RequestID returns the service's response RequestID for request.
 18232  func (s *InvalidRuleException) RequestID() string {
 18233  	return s.RespMetadata.RequestID
 18234  }
 18235  
 18236  // Indicates that the provided SchemaDoc value is not valid.
 18237  type InvalidSchemaDocException struct {
 18238  	_            struct{}                  `type:"structure"`
 18239  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18240  
 18241  	Message_ *string `locationName:"Message" type:"string"`
 18242  }
 18243  
 18244  // String returns the string representation.
 18245  //
 18246  // API parameter values that are decorated as "sensitive" in the API will not
 18247  // be included in the string output. The member name will be present, but the
 18248  // value will be replaced with "sensitive".
 18249  func (s InvalidSchemaDocException) String() string {
 18250  	return awsutil.Prettify(s)
 18251  }
 18252  
 18253  // GoString returns the string representation.
 18254  //
 18255  // API parameter values that are decorated as "sensitive" in the API will not
 18256  // be included in the string output. The member name will be present, but the
 18257  // value will be replaced with "sensitive".
 18258  func (s InvalidSchemaDocException) GoString() string {
 18259  	return s.String()
 18260  }
 18261  
 18262  func newErrorInvalidSchemaDocException(v protocol.ResponseMetadata) error {
 18263  	return &InvalidSchemaDocException{
 18264  		RespMetadata: v,
 18265  	}
 18266  }
 18267  
 18268  // Code returns the exception type name.
 18269  func (s *InvalidSchemaDocException) Code() string {
 18270  	return "InvalidSchemaDocException"
 18271  }
 18272  
 18273  // Message returns the exception's message.
 18274  func (s *InvalidSchemaDocException) Message() string {
 18275  	if s.Message_ != nil {
 18276  		return *s.Message_
 18277  	}
 18278  	return ""
 18279  }
 18280  
 18281  // OrigErr always returns nil, satisfies awserr.Error interface.
 18282  func (s *InvalidSchemaDocException) OrigErr() error {
 18283  	return nil
 18284  }
 18285  
 18286  func (s *InvalidSchemaDocException) Error() string {
 18287  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18288  }
 18289  
 18290  // Status code returns the HTTP status code for the request's response error.
 18291  func (s *InvalidSchemaDocException) StatusCode() int {
 18292  	return s.RespMetadata.StatusCode
 18293  }
 18294  
 18295  // RequestID returns the service's response RequestID for request.
 18296  func (s *InvalidSchemaDocException) RequestID() string {
 18297  	return s.RespMetadata.RequestID
 18298  }
 18299  
 18300  // Can occur for multiple reasons such as when you tag a resource that doesn’t
 18301  // exist or if you specify a higher number of tags for a resource than the allowed
 18302  // limit. Allowed limit is 50 tags per resource.
 18303  type InvalidTaggingRequestException struct {
 18304  	_            struct{}                  `type:"structure"`
 18305  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18306  
 18307  	Message_ *string `locationName:"Message" type:"string"`
 18308  }
 18309  
 18310  // String returns the string representation.
 18311  //
 18312  // API parameter values that are decorated as "sensitive" in the API will not
 18313  // be included in the string output. The member name will be present, but the
 18314  // value will be replaced with "sensitive".
 18315  func (s InvalidTaggingRequestException) String() string {
 18316  	return awsutil.Prettify(s)
 18317  }
 18318  
 18319  // GoString returns the string representation.
 18320  //
 18321  // API parameter values that are decorated as "sensitive" in the API will not
 18322  // be included in the string output. The member name will be present, but the
 18323  // value will be replaced with "sensitive".
 18324  func (s InvalidTaggingRequestException) GoString() string {
 18325  	return s.String()
 18326  }
 18327  
 18328  func newErrorInvalidTaggingRequestException(v protocol.ResponseMetadata) error {
 18329  	return &InvalidTaggingRequestException{
 18330  		RespMetadata: v,
 18331  	}
 18332  }
 18333  
 18334  // Code returns the exception type name.
 18335  func (s *InvalidTaggingRequestException) Code() string {
 18336  	return "InvalidTaggingRequestException"
 18337  }
 18338  
 18339  // Message returns the exception's message.
 18340  func (s *InvalidTaggingRequestException) Message() string {
 18341  	if s.Message_ != nil {
 18342  		return *s.Message_
 18343  	}
 18344  	return ""
 18345  }
 18346  
 18347  // OrigErr always returns nil, satisfies awserr.Error interface.
 18348  func (s *InvalidTaggingRequestException) OrigErr() error {
 18349  	return nil
 18350  }
 18351  
 18352  func (s *InvalidTaggingRequestException) Error() string {
 18353  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18354  }
 18355  
 18356  // Status code returns the HTTP status code for the request's response error.
 18357  func (s *InvalidTaggingRequestException) StatusCode() int {
 18358  	return s.RespMetadata.StatusCode
 18359  }
 18360  
 18361  // RequestID returns the service's response RequestID for request.
 18362  func (s *InvalidTaggingRequestException) RequestID() string {
 18363  	return s.RespMetadata.RequestID
 18364  }
 18365  
 18366  // Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
 18367  // for more information.
 18368  type LimitExceededException struct {
 18369  	_            struct{}                  `type:"structure"`
 18370  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18371  
 18372  	Message_ *string `locationName:"Message" type:"string"`
 18373  }
 18374  
 18375  // String returns the string representation.
 18376  //
 18377  // API parameter values that are decorated as "sensitive" in the API will not
 18378  // be included in the string output. The member name will be present, but the
 18379  // value will be replaced with "sensitive".
 18380  func (s LimitExceededException) String() string {
 18381  	return awsutil.Prettify(s)
 18382  }
 18383  
 18384  // GoString returns the string representation.
 18385  //
 18386  // API parameter values that are decorated as "sensitive" in the API will not
 18387  // be included in the string output. The member name will be present, but the
 18388  // value will be replaced with "sensitive".
 18389  func (s LimitExceededException) GoString() string {
 18390  	return s.String()
 18391  }
 18392  
 18393  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 18394  	return &LimitExceededException{
 18395  		RespMetadata: v,
 18396  	}
 18397  }
 18398  
 18399  // Code returns the exception type name.
 18400  func (s *LimitExceededException) Code() string {
 18401  	return "LimitExceededException"
 18402  }
 18403  
 18404  // Message returns the exception's message.
 18405  func (s *LimitExceededException) Message() string {
 18406  	if s.Message_ != nil {
 18407  		return *s.Message_
 18408  	}
 18409  	return ""
 18410  }
 18411  
 18412  // OrigErr always returns nil, satisfies awserr.Error interface.
 18413  func (s *LimitExceededException) OrigErr() error {
 18414  	return nil
 18415  }
 18416  
 18417  func (s *LimitExceededException) Error() string {
 18418  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18419  }
 18420  
 18421  // Status code returns the HTTP status code for the request's response error.
 18422  func (s *LimitExceededException) StatusCode() int {
 18423  	return s.RespMetadata.StatusCode
 18424  }
 18425  
 18426  // RequestID returns the service's response RequestID for request.
 18427  func (s *LimitExceededException) RequestID() string {
 18428  	return s.RespMetadata.RequestID
 18429  }
 18430  
 18431  // The action to take on a typed link attribute value. Updates are only supported
 18432  // for attributes which don’t contribute to link identity.
 18433  type LinkAttributeAction struct {
 18434  	_ struct{} `type:"structure"`
 18435  
 18436  	// A type that can be either UPDATE_OR_CREATE or DELETE.
 18437  	AttributeActionType *string `type:"string" enum:"UpdateActionType"`
 18438  
 18439  	// The value that you want to update to.
 18440  	AttributeUpdateValue *TypedAttributeValue `type:"structure"`
 18441  }
 18442  
 18443  // String returns the string representation.
 18444  //
 18445  // API parameter values that are decorated as "sensitive" in the API will not
 18446  // be included in the string output. The member name will be present, but the
 18447  // value will be replaced with "sensitive".
 18448  func (s LinkAttributeAction) String() string {
 18449  	return awsutil.Prettify(s)
 18450  }
 18451  
 18452  // GoString returns the string representation.
 18453  //
 18454  // API parameter values that are decorated as "sensitive" in the API will not
 18455  // be included in the string output. The member name will be present, but the
 18456  // value will be replaced with "sensitive".
 18457  func (s LinkAttributeAction) GoString() string {
 18458  	return s.String()
 18459  }
 18460  
 18461  // SetAttributeActionType sets the AttributeActionType field's value.
 18462  func (s *LinkAttributeAction) SetAttributeActionType(v string) *LinkAttributeAction {
 18463  	s.AttributeActionType = &v
 18464  	return s
 18465  }
 18466  
 18467  // SetAttributeUpdateValue sets the AttributeUpdateValue field's value.
 18468  func (s *LinkAttributeAction) SetAttributeUpdateValue(v *TypedAttributeValue) *LinkAttributeAction {
 18469  	s.AttributeUpdateValue = v
 18470  	return s
 18471  }
 18472  
 18473  // Structure that contains attribute update information.
 18474  type LinkAttributeUpdate struct {
 18475  	_ struct{} `type:"structure"`
 18476  
 18477  	// The action to perform as part of the attribute update.
 18478  	AttributeAction *LinkAttributeAction `type:"structure"`
 18479  
 18480  	// The key of the attribute being updated.
 18481  	AttributeKey *AttributeKey `type:"structure"`
 18482  }
 18483  
 18484  // String returns the string representation.
 18485  //
 18486  // API parameter values that are decorated as "sensitive" in the API will not
 18487  // be included in the string output. The member name will be present, but the
 18488  // value will be replaced with "sensitive".
 18489  func (s LinkAttributeUpdate) String() string {
 18490  	return awsutil.Prettify(s)
 18491  }
 18492  
 18493  // GoString returns the string representation.
 18494  //
 18495  // API parameter values that are decorated as "sensitive" in the API will not
 18496  // be included in the string output. The member name will be present, but the
 18497  // value will be replaced with "sensitive".
 18498  func (s LinkAttributeUpdate) GoString() string {
 18499  	return s.String()
 18500  }
 18501  
 18502  // Validate inspects the fields of the type to determine if they are valid.
 18503  func (s *LinkAttributeUpdate) Validate() error {
 18504  	invalidParams := request.ErrInvalidParams{Context: "LinkAttributeUpdate"}
 18505  	if s.AttributeKey != nil {
 18506  		if err := s.AttributeKey.Validate(); err != nil {
 18507  			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
 18508  		}
 18509  	}
 18510  
 18511  	if invalidParams.Len() > 0 {
 18512  		return invalidParams
 18513  	}
 18514  	return nil
 18515  }
 18516  
 18517  // SetAttributeAction sets the AttributeAction field's value.
 18518  func (s *LinkAttributeUpdate) SetAttributeAction(v *LinkAttributeAction) *LinkAttributeUpdate {
 18519  	s.AttributeAction = v
 18520  	return s
 18521  }
 18522  
 18523  // SetAttributeKey sets the AttributeKey field's value.
 18524  func (s *LinkAttributeUpdate) SetAttributeKey(v *AttributeKey) *LinkAttributeUpdate {
 18525  	s.AttributeKey = v
 18526  	return s
 18527  }
 18528  
 18529  // Indicates that a link could not be created due to a naming conflict. Choose
 18530  // a different name and then try again.
 18531  type LinkNameAlreadyInUseException struct {
 18532  	_            struct{}                  `type:"structure"`
 18533  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18534  
 18535  	Message_ *string `locationName:"Message" type:"string"`
 18536  }
 18537  
 18538  // String returns the string representation.
 18539  //
 18540  // API parameter values that are decorated as "sensitive" in the API will not
 18541  // be included in the string output. The member name will be present, but the
 18542  // value will be replaced with "sensitive".
 18543  func (s LinkNameAlreadyInUseException) String() string {
 18544  	return awsutil.Prettify(s)
 18545  }
 18546  
 18547  // GoString returns the string representation.
 18548  //
 18549  // API parameter values that are decorated as "sensitive" in the API will not
 18550  // be included in the string output. The member name will be present, but the
 18551  // value will be replaced with "sensitive".
 18552  func (s LinkNameAlreadyInUseException) GoString() string {
 18553  	return s.String()
 18554  }
 18555  
 18556  func newErrorLinkNameAlreadyInUseException(v protocol.ResponseMetadata) error {
 18557  	return &LinkNameAlreadyInUseException{
 18558  		RespMetadata: v,
 18559  	}
 18560  }
 18561  
 18562  // Code returns the exception type name.
 18563  func (s *LinkNameAlreadyInUseException) Code() string {
 18564  	return "LinkNameAlreadyInUseException"
 18565  }
 18566  
 18567  // Message returns the exception's message.
 18568  func (s *LinkNameAlreadyInUseException) Message() string {
 18569  	if s.Message_ != nil {
 18570  		return *s.Message_
 18571  	}
 18572  	return ""
 18573  }
 18574  
 18575  // OrigErr always returns nil, satisfies awserr.Error interface.
 18576  func (s *LinkNameAlreadyInUseException) OrigErr() error {
 18577  	return nil
 18578  }
 18579  
 18580  func (s *LinkNameAlreadyInUseException) Error() string {
 18581  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18582  }
 18583  
 18584  // Status code returns the HTTP status code for the request's response error.
 18585  func (s *LinkNameAlreadyInUseException) StatusCode() int {
 18586  	return s.RespMetadata.StatusCode
 18587  }
 18588  
 18589  // RequestID returns the service's response RequestID for request.
 18590  func (s *LinkNameAlreadyInUseException) RequestID() string {
 18591  	return s.RespMetadata.RequestID
 18592  }
 18593  
 18594  type ListAppliedSchemaArnsInput struct {
 18595  	_ struct{} `type:"structure"`
 18596  
 18597  	// The ARN of the directory you are listing.
 18598  	//
 18599  	// DirectoryArn is a required field
 18600  	DirectoryArn *string `type:"string" required:"true"`
 18601  
 18602  	// The maximum number of results to retrieve.
 18603  	MaxResults *int64 `min:"1" type:"integer"`
 18604  
 18605  	// The pagination token.
 18606  	NextToken *string `type:"string"`
 18607  
 18608  	// The response for ListAppliedSchemaArns when this parameter is used will list
 18609  	// all minor version ARNs for a major version.
 18610  	SchemaArn *string `type:"string"`
 18611  }
 18612  
 18613  // String returns the string representation.
 18614  //
 18615  // API parameter values that are decorated as "sensitive" in the API will not
 18616  // be included in the string output. The member name will be present, but the
 18617  // value will be replaced with "sensitive".
 18618  func (s ListAppliedSchemaArnsInput) String() string {
 18619  	return awsutil.Prettify(s)
 18620  }
 18621  
 18622  // GoString returns the string representation.
 18623  //
 18624  // API parameter values that are decorated as "sensitive" in the API will not
 18625  // be included in the string output. The member name will be present, but the
 18626  // value will be replaced with "sensitive".
 18627  func (s ListAppliedSchemaArnsInput) GoString() string {
 18628  	return s.String()
 18629  }
 18630  
 18631  // Validate inspects the fields of the type to determine if they are valid.
 18632  func (s *ListAppliedSchemaArnsInput) Validate() error {
 18633  	invalidParams := request.ErrInvalidParams{Context: "ListAppliedSchemaArnsInput"}
 18634  	if s.DirectoryArn == nil {
 18635  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 18636  	}
 18637  	if s.MaxResults != nil && *s.MaxResults < 1 {
 18638  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 18639  	}
 18640  
 18641  	if invalidParams.Len() > 0 {
 18642  		return invalidParams
 18643  	}
 18644  	return nil
 18645  }
 18646  
 18647  // SetDirectoryArn sets the DirectoryArn field's value.
 18648  func (s *ListAppliedSchemaArnsInput) SetDirectoryArn(v string) *ListAppliedSchemaArnsInput {
 18649  	s.DirectoryArn = &v
 18650  	return s
 18651  }
 18652  
 18653  // SetMaxResults sets the MaxResults field's value.
 18654  func (s *ListAppliedSchemaArnsInput) SetMaxResults(v int64) *ListAppliedSchemaArnsInput {
 18655  	s.MaxResults = &v
 18656  	return s
 18657  }
 18658  
 18659  // SetNextToken sets the NextToken field's value.
 18660  func (s *ListAppliedSchemaArnsInput) SetNextToken(v string) *ListAppliedSchemaArnsInput {
 18661  	s.NextToken = &v
 18662  	return s
 18663  }
 18664  
 18665  // SetSchemaArn sets the SchemaArn field's value.
 18666  func (s *ListAppliedSchemaArnsInput) SetSchemaArn(v string) *ListAppliedSchemaArnsInput {
 18667  	s.SchemaArn = &v
 18668  	return s
 18669  }
 18670  
 18671  type ListAppliedSchemaArnsOutput struct {
 18672  	_ struct{} `type:"structure"`
 18673  
 18674  	// The pagination token.
 18675  	NextToken *string `type:"string"`
 18676  
 18677  	// The ARNs of schemas that are applied to the directory.
 18678  	SchemaArns []*string `type:"list"`
 18679  }
 18680  
 18681  // String returns the string representation.
 18682  //
 18683  // API parameter values that are decorated as "sensitive" in the API will not
 18684  // be included in the string output. The member name will be present, but the
 18685  // value will be replaced with "sensitive".
 18686  func (s ListAppliedSchemaArnsOutput) String() string {
 18687  	return awsutil.Prettify(s)
 18688  }
 18689  
 18690  // GoString returns the string representation.
 18691  //
 18692  // API parameter values that are decorated as "sensitive" in the API will not
 18693  // be included in the string output. The member name will be present, but the
 18694  // value will be replaced with "sensitive".
 18695  func (s ListAppliedSchemaArnsOutput) GoString() string {
 18696  	return s.String()
 18697  }
 18698  
 18699  // SetNextToken sets the NextToken field's value.
 18700  func (s *ListAppliedSchemaArnsOutput) SetNextToken(v string) *ListAppliedSchemaArnsOutput {
 18701  	s.NextToken = &v
 18702  	return s
 18703  }
 18704  
 18705  // SetSchemaArns sets the SchemaArns field's value.
 18706  func (s *ListAppliedSchemaArnsOutput) SetSchemaArns(v []*string) *ListAppliedSchemaArnsOutput {
 18707  	s.SchemaArns = v
 18708  	return s
 18709  }
 18710  
 18711  type ListAttachedIndicesInput struct {
 18712  	_ struct{} `type:"structure"`
 18713  
 18714  	// The consistency level to use for this operation.
 18715  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 18716  
 18717  	// The ARN of the directory.
 18718  	//
 18719  	// DirectoryArn is a required field
 18720  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 18721  
 18722  	// The maximum number of results to retrieve.
 18723  	MaxResults *int64 `min:"1" type:"integer"`
 18724  
 18725  	// The pagination token.
 18726  	NextToken *string `type:"string"`
 18727  
 18728  	// A reference to the object that has indices attached.
 18729  	//
 18730  	// TargetReference is a required field
 18731  	TargetReference *ObjectReference `type:"structure" required:"true"`
 18732  }
 18733  
 18734  // String returns the string representation.
 18735  //
 18736  // API parameter values that are decorated as "sensitive" in the API will not
 18737  // be included in the string output. The member name will be present, but the
 18738  // value will be replaced with "sensitive".
 18739  func (s ListAttachedIndicesInput) String() string {
 18740  	return awsutil.Prettify(s)
 18741  }
 18742  
 18743  // GoString returns the string representation.
 18744  //
 18745  // API parameter values that are decorated as "sensitive" in the API will not
 18746  // be included in the string output. The member name will be present, but the
 18747  // value will be replaced with "sensitive".
 18748  func (s ListAttachedIndicesInput) GoString() string {
 18749  	return s.String()
 18750  }
 18751  
 18752  // Validate inspects the fields of the type to determine if they are valid.
 18753  func (s *ListAttachedIndicesInput) Validate() error {
 18754  	invalidParams := request.ErrInvalidParams{Context: "ListAttachedIndicesInput"}
 18755  	if s.DirectoryArn == nil {
 18756  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 18757  	}
 18758  	if s.MaxResults != nil && *s.MaxResults < 1 {
 18759  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 18760  	}
 18761  	if s.TargetReference == nil {
 18762  		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
 18763  	}
 18764  
 18765  	if invalidParams.Len() > 0 {
 18766  		return invalidParams
 18767  	}
 18768  	return nil
 18769  }
 18770  
 18771  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 18772  func (s *ListAttachedIndicesInput) SetConsistencyLevel(v string) *ListAttachedIndicesInput {
 18773  	s.ConsistencyLevel = &v
 18774  	return s
 18775  }
 18776  
 18777  // SetDirectoryArn sets the DirectoryArn field's value.
 18778  func (s *ListAttachedIndicesInput) SetDirectoryArn(v string) *ListAttachedIndicesInput {
 18779  	s.DirectoryArn = &v
 18780  	return s
 18781  }
 18782  
 18783  // SetMaxResults sets the MaxResults field's value.
 18784  func (s *ListAttachedIndicesInput) SetMaxResults(v int64) *ListAttachedIndicesInput {
 18785  	s.MaxResults = &v
 18786  	return s
 18787  }
 18788  
 18789  // SetNextToken sets the NextToken field's value.
 18790  func (s *ListAttachedIndicesInput) SetNextToken(v string) *ListAttachedIndicesInput {
 18791  	s.NextToken = &v
 18792  	return s
 18793  }
 18794  
 18795  // SetTargetReference sets the TargetReference field's value.
 18796  func (s *ListAttachedIndicesInput) SetTargetReference(v *ObjectReference) *ListAttachedIndicesInput {
 18797  	s.TargetReference = v
 18798  	return s
 18799  }
 18800  
 18801  type ListAttachedIndicesOutput struct {
 18802  	_ struct{} `type:"structure"`
 18803  
 18804  	// The indices attached to the specified object.
 18805  	IndexAttachments []*IndexAttachment `type:"list"`
 18806  
 18807  	// The pagination token.
 18808  	NextToken *string `type:"string"`
 18809  }
 18810  
 18811  // String returns the string representation.
 18812  //
 18813  // API parameter values that are decorated as "sensitive" in the API will not
 18814  // be included in the string output. The member name will be present, but the
 18815  // value will be replaced with "sensitive".
 18816  func (s ListAttachedIndicesOutput) String() string {
 18817  	return awsutil.Prettify(s)
 18818  }
 18819  
 18820  // GoString returns the string representation.
 18821  //
 18822  // API parameter values that are decorated as "sensitive" in the API will not
 18823  // be included in the string output. The member name will be present, but the
 18824  // value will be replaced with "sensitive".
 18825  func (s ListAttachedIndicesOutput) GoString() string {
 18826  	return s.String()
 18827  }
 18828  
 18829  // SetIndexAttachments sets the IndexAttachments field's value.
 18830  func (s *ListAttachedIndicesOutput) SetIndexAttachments(v []*IndexAttachment) *ListAttachedIndicesOutput {
 18831  	s.IndexAttachments = v
 18832  	return s
 18833  }
 18834  
 18835  // SetNextToken sets the NextToken field's value.
 18836  func (s *ListAttachedIndicesOutput) SetNextToken(v string) *ListAttachedIndicesOutput {
 18837  	s.NextToken = &v
 18838  	return s
 18839  }
 18840  
 18841  type ListDevelopmentSchemaArnsInput struct {
 18842  	_ struct{} `type:"structure"`
 18843  
 18844  	// The maximum number of results to retrieve.
 18845  	MaxResults *int64 `min:"1" type:"integer"`
 18846  
 18847  	// The pagination token.
 18848  	NextToken *string `type:"string"`
 18849  }
 18850  
 18851  // String returns the string representation.
 18852  //
 18853  // API parameter values that are decorated as "sensitive" in the API will not
 18854  // be included in the string output. The member name will be present, but the
 18855  // value will be replaced with "sensitive".
 18856  func (s ListDevelopmentSchemaArnsInput) String() string {
 18857  	return awsutil.Prettify(s)
 18858  }
 18859  
 18860  // GoString returns the string representation.
 18861  //
 18862  // API parameter values that are decorated as "sensitive" in the API will not
 18863  // be included in the string output. The member name will be present, but the
 18864  // value will be replaced with "sensitive".
 18865  func (s ListDevelopmentSchemaArnsInput) GoString() string {
 18866  	return s.String()
 18867  }
 18868  
 18869  // Validate inspects the fields of the type to determine if they are valid.
 18870  func (s *ListDevelopmentSchemaArnsInput) Validate() error {
 18871  	invalidParams := request.ErrInvalidParams{Context: "ListDevelopmentSchemaArnsInput"}
 18872  	if s.MaxResults != nil && *s.MaxResults < 1 {
 18873  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 18874  	}
 18875  
 18876  	if invalidParams.Len() > 0 {
 18877  		return invalidParams
 18878  	}
 18879  	return nil
 18880  }
 18881  
 18882  // SetMaxResults sets the MaxResults field's value.
 18883  func (s *ListDevelopmentSchemaArnsInput) SetMaxResults(v int64) *ListDevelopmentSchemaArnsInput {
 18884  	s.MaxResults = &v
 18885  	return s
 18886  }
 18887  
 18888  // SetNextToken sets the NextToken field's value.
 18889  func (s *ListDevelopmentSchemaArnsInput) SetNextToken(v string) *ListDevelopmentSchemaArnsInput {
 18890  	s.NextToken = &v
 18891  	return s
 18892  }
 18893  
 18894  type ListDevelopmentSchemaArnsOutput struct {
 18895  	_ struct{} `type:"structure"`
 18896  
 18897  	// The pagination token.
 18898  	NextToken *string `type:"string"`
 18899  
 18900  	// The ARNs of retrieved development schemas.
 18901  	SchemaArns []*string `type:"list"`
 18902  }
 18903  
 18904  // String returns the string representation.
 18905  //
 18906  // API parameter values that are decorated as "sensitive" in the API will not
 18907  // be included in the string output. The member name will be present, but the
 18908  // value will be replaced with "sensitive".
 18909  func (s ListDevelopmentSchemaArnsOutput) String() string {
 18910  	return awsutil.Prettify(s)
 18911  }
 18912  
 18913  // GoString returns the string representation.
 18914  //
 18915  // API parameter values that are decorated as "sensitive" in the API will not
 18916  // be included in the string output. The member name will be present, but the
 18917  // value will be replaced with "sensitive".
 18918  func (s ListDevelopmentSchemaArnsOutput) GoString() string {
 18919  	return s.String()
 18920  }
 18921  
 18922  // SetNextToken sets the NextToken field's value.
 18923  func (s *ListDevelopmentSchemaArnsOutput) SetNextToken(v string) *ListDevelopmentSchemaArnsOutput {
 18924  	s.NextToken = &v
 18925  	return s
 18926  }
 18927  
 18928  // SetSchemaArns sets the SchemaArns field's value.
 18929  func (s *ListDevelopmentSchemaArnsOutput) SetSchemaArns(v []*string) *ListDevelopmentSchemaArnsOutput {
 18930  	s.SchemaArns = v
 18931  	return s
 18932  }
 18933  
 18934  type ListDirectoriesInput struct {
 18935  	_ struct{} `type:"structure"`
 18936  
 18937  	// The maximum number of results to retrieve.
 18938  	MaxResults *int64 `min:"1" type:"integer"`
 18939  
 18940  	// The pagination token.
 18941  	NextToken *string `type:"string"`
 18942  
 18943  	// The state of the directories in the list. Can be either Enabled, Disabled,
 18944  	// or Deleted.
 18945  	State *string `locationName:"state" type:"string" enum:"DirectoryState"`
 18946  }
 18947  
 18948  // String returns the string representation.
 18949  //
 18950  // API parameter values that are decorated as "sensitive" in the API will not
 18951  // be included in the string output. The member name will be present, but the
 18952  // value will be replaced with "sensitive".
 18953  func (s ListDirectoriesInput) String() string {
 18954  	return awsutil.Prettify(s)
 18955  }
 18956  
 18957  // GoString returns the string representation.
 18958  //
 18959  // API parameter values that are decorated as "sensitive" in the API will not
 18960  // be included in the string output. The member name will be present, but the
 18961  // value will be replaced with "sensitive".
 18962  func (s ListDirectoriesInput) GoString() string {
 18963  	return s.String()
 18964  }
 18965  
 18966  // Validate inspects the fields of the type to determine if they are valid.
 18967  func (s *ListDirectoriesInput) Validate() error {
 18968  	invalidParams := request.ErrInvalidParams{Context: "ListDirectoriesInput"}
 18969  	if s.MaxResults != nil && *s.MaxResults < 1 {
 18970  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 18971  	}
 18972  
 18973  	if invalidParams.Len() > 0 {
 18974  		return invalidParams
 18975  	}
 18976  	return nil
 18977  }
 18978  
 18979  // SetMaxResults sets the MaxResults field's value.
 18980  func (s *ListDirectoriesInput) SetMaxResults(v int64) *ListDirectoriesInput {
 18981  	s.MaxResults = &v
 18982  	return s
 18983  }
 18984  
 18985  // SetNextToken sets the NextToken field's value.
 18986  func (s *ListDirectoriesInput) SetNextToken(v string) *ListDirectoriesInput {
 18987  	s.NextToken = &v
 18988  	return s
 18989  }
 18990  
 18991  // SetState sets the State field's value.
 18992  func (s *ListDirectoriesInput) SetState(v string) *ListDirectoriesInput {
 18993  	s.State = &v
 18994  	return s
 18995  }
 18996  
 18997  type ListDirectoriesOutput struct {
 18998  	_ struct{} `type:"structure"`
 18999  
 19000  	// Lists all directories that are associated with your account in pagination
 19001  	// fashion.
 19002  	//
 19003  	// Directories is a required field
 19004  	Directories []*Directory `type:"list" required:"true"`
 19005  
 19006  	// The pagination token.
 19007  	NextToken *string `type:"string"`
 19008  }
 19009  
 19010  // String returns the string representation.
 19011  //
 19012  // API parameter values that are decorated as "sensitive" in the API will not
 19013  // be included in the string output. The member name will be present, but the
 19014  // value will be replaced with "sensitive".
 19015  func (s ListDirectoriesOutput) String() string {
 19016  	return awsutil.Prettify(s)
 19017  }
 19018  
 19019  // GoString returns the string representation.
 19020  //
 19021  // API parameter values that are decorated as "sensitive" in the API will not
 19022  // be included in the string output. The member name will be present, but the
 19023  // value will be replaced with "sensitive".
 19024  func (s ListDirectoriesOutput) GoString() string {
 19025  	return s.String()
 19026  }
 19027  
 19028  // SetDirectories sets the Directories field's value.
 19029  func (s *ListDirectoriesOutput) SetDirectories(v []*Directory) *ListDirectoriesOutput {
 19030  	s.Directories = v
 19031  	return s
 19032  }
 19033  
 19034  // SetNextToken sets the NextToken field's value.
 19035  func (s *ListDirectoriesOutput) SetNextToken(v string) *ListDirectoriesOutput {
 19036  	s.NextToken = &v
 19037  	return s
 19038  }
 19039  
 19040  type ListFacetAttributesInput struct {
 19041  	_ struct{} `type:"structure"`
 19042  
 19043  	// The maximum number of results to retrieve.
 19044  	MaxResults *int64 `min:"1" type:"integer"`
 19045  
 19046  	// The name of the facet whose attributes will be retrieved.
 19047  	//
 19048  	// Name is a required field
 19049  	Name *string `min:"1" type:"string" required:"true"`
 19050  
 19051  	// The pagination token.
 19052  	NextToken *string `type:"string"`
 19053  
 19054  	// The ARN of the schema where the facet resides.
 19055  	//
 19056  	// SchemaArn is a required field
 19057  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19058  }
 19059  
 19060  // String returns the string representation.
 19061  //
 19062  // API parameter values that are decorated as "sensitive" in the API will not
 19063  // be included in the string output. The member name will be present, but the
 19064  // value will be replaced with "sensitive".
 19065  func (s ListFacetAttributesInput) String() string {
 19066  	return awsutil.Prettify(s)
 19067  }
 19068  
 19069  // GoString returns the string representation.
 19070  //
 19071  // API parameter values that are decorated as "sensitive" in the API will not
 19072  // be included in the string output. The member name will be present, but the
 19073  // value will be replaced with "sensitive".
 19074  func (s ListFacetAttributesInput) GoString() string {
 19075  	return s.String()
 19076  }
 19077  
 19078  // Validate inspects the fields of the type to determine if they are valid.
 19079  func (s *ListFacetAttributesInput) Validate() error {
 19080  	invalidParams := request.ErrInvalidParams{Context: "ListFacetAttributesInput"}
 19081  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19082  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19083  	}
 19084  	if s.Name == nil {
 19085  		invalidParams.Add(request.NewErrParamRequired("Name"))
 19086  	}
 19087  	if s.Name != nil && len(*s.Name) < 1 {
 19088  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 19089  	}
 19090  	if s.SchemaArn == nil {
 19091  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 19092  	}
 19093  
 19094  	if invalidParams.Len() > 0 {
 19095  		return invalidParams
 19096  	}
 19097  	return nil
 19098  }
 19099  
 19100  // SetMaxResults sets the MaxResults field's value.
 19101  func (s *ListFacetAttributesInput) SetMaxResults(v int64) *ListFacetAttributesInput {
 19102  	s.MaxResults = &v
 19103  	return s
 19104  }
 19105  
 19106  // SetName sets the Name field's value.
 19107  func (s *ListFacetAttributesInput) SetName(v string) *ListFacetAttributesInput {
 19108  	s.Name = &v
 19109  	return s
 19110  }
 19111  
 19112  // SetNextToken sets the NextToken field's value.
 19113  func (s *ListFacetAttributesInput) SetNextToken(v string) *ListFacetAttributesInput {
 19114  	s.NextToken = &v
 19115  	return s
 19116  }
 19117  
 19118  // SetSchemaArn sets the SchemaArn field's value.
 19119  func (s *ListFacetAttributesInput) SetSchemaArn(v string) *ListFacetAttributesInput {
 19120  	s.SchemaArn = &v
 19121  	return s
 19122  }
 19123  
 19124  type ListFacetAttributesOutput struct {
 19125  	_ struct{} `type:"structure"`
 19126  
 19127  	// The attributes attached to the facet.
 19128  	Attributes []*FacetAttribute `type:"list"`
 19129  
 19130  	// The pagination token.
 19131  	NextToken *string `type:"string"`
 19132  }
 19133  
 19134  // String returns the string representation.
 19135  //
 19136  // API parameter values that are decorated as "sensitive" in the API will not
 19137  // be included in the string output. The member name will be present, but the
 19138  // value will be replaced with "sensitive".
 19139  func (s ListFacetAttributesOutput) String() string {
 19140  	return awsutil.Prettify(s)
 19141  }
 19142  
 19143  // GoString returns the string representation.
 19144  //
 19145  // API parameter values that are decorated as "sensitive" in the API will not
 19146  // be included in the string output. The member name will be present, but the
 19147  // value will be replaced with "sensitive".
 19148  func (s ListFacetAttributesOutput) GoString() string {
 19149  	return s.String()
 19150  }
 19151  
 19152  // SetAttributes sets the Attributes field's value.
 19153  func (s *ListFacetAttributesOutput) SetAttributes(v []*FacetAttribute) *ListFacetAttributesOutput {
 19154  	s.Attributes = v
 19155  	return s
 19156  }
 19157  
 19158  // SetNextToken sets the NextToken field's value.
 19159  func (s *ListFacetAttributesOutput) SetNextToken(v string) *ListFacetAttributesOutput {
 19160  	s.NextToken = &v
 19161  	return s
 19162  }
 19163  
 19164  type ListFacetNamesInput struct {
 19165  	_ struct{} `type:"structure"`
 19166  
 19167  	// The maximum number of results to retrieve.
 19168  	MaxResults *int64 `min:"1" type:"integer"`
 19169  
 19170  	// The pagination token.
 19171  	NextToken *string `type:"string"`
 19172  
 19173  	// The Amazon Resource Name (ARN) to retrieve facet names from.
 19174  	//
 19175  	// SchemaArn is a required field
 19176  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19177  }
 19178  
 19179  // String returns the string representation.
 19180  //
 19181  // API parameter values that are decorated as "sensitive" in the API will not
 19182  // be included in the string output. The member name will be present, but the
 19183  // value will be replaced with "sensitive".
 19184  func (s ListFacetNamesInput) String() string {
 19185  	return awsutil.Prettify(s)
 19186  }
 19187  
 19188  // GoString returns the string representation.
 19189  //
 19190  // API parameter values that are decorated as "sensitive" in the API will not
 19191  // be included in the string output. The member name will be present, but the
 19192  // value will be replaced with "sensitive".
 19193  func (s ListFacetNamesInput) GoString() string {
 19194  	return s.String()
 19195  }
 19196  
 19197  // Validate inspects the fields of the type to determine if they are valid.
 19198  func (s *ListFacetNamesInput) Validate() error {
 19199  	invalidParams := request.ErrInvalidParams{Context: "ListFacetNamesInput"}
 19200  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19201  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19202  	}
 19203  	if s.SchemaArn == nil {
 19204  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 19205  	}
 19206  
 19207  	if invalidParams.Len() > 0 {
 19208  		return invalidParams
 19209  	}
 19210  	return nil
 19211  }
 19212  
 19213  // SetMaxResults sets the MaxResults field's value.
 19214  func (s *ListFacetNamesInput) SetMaxResults(v int64) *ListFacetNamesInput {
 19215  	s.MaxResults = &v
 19216  	return s
 19217  }
 19218  
 19219  // SetNextToken sets the NextToken field's value.
 19220  func (s *ListFacetNamesInput) SetNextToken(v string) *ListFacetNamesInput {
 19221  	s.NextToken = &v
 19222  	return s
 19223  }
 19224  
 19225  // SetSchemaArn sets the SchemaArn field's value.
 19226  func (s *ListFacetNamesInput) SetSchemaArn(v string) *ListFacetNamesInput {
 19227  	s.SchemaArn = &v
 19228  	return s
 19229  }
 19230  
 19231  type ListFacetNamesOutput struct {
 19232  	_ struct{} `type:"structure"`
 19233  
 19234  	// The names of facets that exist within the schema.
 19235  	FacetNames []*string `type:"list"`
 19236  
 19237  	// The pagination token.
 19238  	NextToken *string `type:"string"`
 19239  }
 19240  
 19241  // String returns the string representation.
 19242  //
 19243  // API parameter values that are decorated as "sensitive" in the API will not
 19244  // be included in the string output. The member name will be present, but the
 19245  // value will be replaced with "sensitive".
 19246  func (s ListFacetNamesOutput) String() string {
 19247  	return awsutil.Prettify(s)
 19248  }
 19249  
 19250  // GoString returns the string representation.
 19251  //
 19252  // API parameter values that are decorated as "sensitive" in the API will not
 19253  // be included in the string output. The member name will be present, but the
 19254  // value will be replaced with "sensitive".
 19255  func (s ListFacetNamesOutput) GoString() string {
 19256  	return s.String()
 19257  }
 19258  
 19259  // SetFacetNames sets the FacetNames field's value.
 19260  func (s *ListFacetNamesOutput) SetFacetNames(v []*string) *ListFacetNamesOutput {
 19261  	s.FacetNames = v
 19262  	return s
 19263  }
 19264  
 19265  // SetNextToken sets the NextToken field's value.
 19266  func (s *ListFacetNamesOutput) SetNextToken(v string) *ListFacetNamesOutput {
 19267  	s.NextToken = &v
 19268  	return s
 19269  }
 19270  
 19271  type ListIncomingTypedLinksInput struct {
 19272  	_ struct{} `type:"structure"`
 19273  
 19274  	// The consistency level to execute the request at.
 19275  	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
 19276  
 19277  	// The Amazon Resource Name (ARN) of the directory where you want to list the
 19278  	// typed links.
 19279  	//
 19280  	// DirectoryArn is a required field
 19281  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19282  
 19283  	// Provides range filters for multiple attributes. When providing ranges to
 19284  	// typed link selection, any inexact ranges must be specified at the end. Any
 19285  	// attributes that do not have a range specified are presumed to match the entire
 19286  	// range.
 19287  	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
 19288  
 19289  	// Filters are interpreted in the order of the attributes on the typed link
 19290  	// facet, not the order in which they are supplied to any API calls.
 19291  	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
 19292  
 19293  	// The maximum number of results to retrieve.
 19294  	MaxResults *int64 `min:"1" type:"integer"`
 19295  
 19296  	// The pagination token.
 19297  	NextToken *string `type:"string"`
 19298  
 19299  	// Reference that identifies the object whose attributes will be listed.
 19300  	//
 19301  	// ObjectReference is a required field
 19302  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 19303  }
 19304  
 19305  // String returns the string representation.
 19306  //
 19307  // API parameter values that are decorated as "sensitive" in the API will not
 19308  // be included in the string output. The member name will be present, but the
 19309  // value will be replaced with "sensitive".
 19310  func (s ListIncomingTypedLinksInput) String() string {
 19311  	return awsutil.Prettify(s)
 19312  }
 19313  
 19314  // GoString returns the string representation.
 19315  //
 19316  // API parameter values that are decorated as "sensitive" in the API will not
 19317  // be included in the string output. The member name will be present, but the
 19318  // value will be replaced with "sensitive".
 19319  func (s ListIncomingTypedLinksInput) GoString() string {
 19320  	return s.String()
 19321  }
 19322  
 19323  // Validate inspects the fields of the type to determine if they are valid.
 19324  func (s *ListIncomingTypedLinksInput) Validate() error {
 19325  	invalidParams := request.ErrInvalidParams{Context: "ListIncomingTypedLinksInput"}
 19326  	if s.DirectoryArn == nil {
 19327  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 19328  	}
 19329  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19330  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19331  	}
 19332  	if s.ObjectReference == nil {
 19333  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 19334  	}
 19335  	if s.FilterAttributeRanges != nil {
 19336  		for i, v := range s.FilterAttributeRanges {
 19337  			if v == nil {
 19338  				continue
 19339  			}
 19340  			if err := v.Validate(); err != nil {
 19341  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
 19342  			}
 19343  		}
 19344  	}
 19345  	if s.FilterTypedLink != nil {
 19346  		if err := s.FilterTypedLink.Validate(); err != nil {
 19347  			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
 19348  		}
 19349  	}
 19350  
 19351  	if invalidParams.Len() > 0 {
 19352  		return invalidParams
 19353  	}
 19354  	return nil
 19355  }
 19356  
 19357  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 19358  func (s *ListIncomingTypedLinksInput) SetConsistencyLevel(v string) *ListIncomingTypedLinksInput {
 19359  	s.ConsistencyLevel = &v
 19360  	return s
 19361  }
 19362  
 19363  // SetDirectoryArn sets the DirectoryArn field's value.
 19364  func (s *ListIncomingTypedLinksInput) SetDirectoryArn(v string) *ListIncomingTypedLinksInput {
 19365  	s.DirectoryArn = &v
 19366  	return s
 19367  }
 19368  
 19369  // SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
 19370  func (s *ListIncomingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListIncomingTypedLinksInput {
 19371  	s.FilterAttributeRanges = v
 19372  	return s
 19373  }
 19374  
 19375  // SetFilterTypedLink sets the FilterTypedLink field's value.
 19376  func (s *ListIncomingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListIncomingTypedLinksInput {
 19377  	s.FilterTypedLink = v
 19378  	return s
 19379  }
 19380  
 19381  // SetMaxResults sets the MaxResults field's value.
 19382  func (s *ListIncomingTypedLinksInput) SetMaxResults(v int64) *ListIncomingTypedLinksInput {
 19383  	s.MaxResults = &v
 19384  	return s
 19385  }
 19386  
 19387  // SetNextToken sets the NextToken field's value.
 19388  func (s *ListIncomingTypedLinksInput) SetNextToken(v string) *ListIncomingTypedLinksInput {
 19389  	s.NextToken = &v
 19390  	return s
 19391  }
 19392  
 19393  // SetObjectReference sets the ObjectReference field's value.
 19394  func (s *ListIncomingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListIncomingTypedLinksInput {
 19395  	s.ObjectReference = v
 19396  	return s
 19397  }
 19398  
 19399  type ListIncomingTypedLinksOutput struct {
 19400  	_ struct{} `type:"structure"`
 19401  
 19402  	// Returns one or more typed link specifiers as output.
 19403  	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
 19404  
 19405  	// The pagination token.
 19406  	NextToken *string `type:"string"`
 19407  }
 19408  
 19409  // String returns the string representation.
 19410  //
 19411  // API parameter values that are decorated as "sensitive" in the API will not
 19412  // be included in the string output. The member name will be present, but the
 19413  // value will be replaced with "sensitive".
 19414  func (s ListIncomingTypedLinksOutput) String() string {
 19415  	return awsutil.Prettify(s)
 19416  }
 19417  
 19418  // GoString returns the string representation.
 19419  //
 19420  // API parameter values that are decorated as "sensitive" in the API will not
 19421  // be included in the string output. The member name will be present, but the
 19422  // value will be replaced with "sensitive".
 19423  func (s ListIncomingTypedLinksOutput) GoString() string {
 19424  	return s.String()
 19425  }
 19426  
 19427  // SetLinkSpecifiers sets the LinkSpecifiers field's value.
 19428  func (s *ListIncomingTypedLinksOutput) SetLinkSpecifiers(v []*TypedLinkSpecifier) *ListIncomingTypedLinksOutput {
 19429  	s.LinkSpecifiers = v
 19430  	return s
 19431  }
 19432  
 19433  // SetNextToken sets the NextToken field's value.
 19434  func (s *ListIncomingTypedLinksOutput) SetNextToken(v string) *ListIncomingTypedLinksOutput {
 19435  	s.NextToken = &v
 19436  	return s
 19437  }
 19438  
 19439  type ListIndexInput struct {
 19440  	_ struct{} `type:"structure"`
 19441  
 19442  	// The consistency level to execute the request at.
 19443  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 19444  
 19445  	// The ARN of the directory that the index exists in.
 19446  	//
 19447  	// DirectoryArn is a required field
 19448  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19449  
 19450  	// The reference to the index to list.
 19451  	//
 19452  	// IndexReference is a required field
 19453  	IndexReference *ObjectReference `type:"structure" required:"true"`
 19454  
 19455  	// The maximum number of objects in a single page to retrieve from the index
 19456  	// during a request. For more information, see Amazon Cloud Directory Limits
 19457  	// (http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
 19458  	MaxResults *int64 `min:"1" type:"integer"`
 19459  
 19460  	// The pagination token.
 19461  	NextToken *string `type:"string"`
 19462  
 19463  	// Specifies the ranges of indexed values that you want to query.
 19464  	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
 19465  }
 19466  
 19467  // String returns the string representation.
 19468  //
 19469  // API parameter values that are decorated as "sensitive" in the API will not
 19470  // be included in the string output. The member name will be present, but the
 19471  // value will be replaced with "sensitive".
 19472  func (s ListIndexInput) String() string {
 19473  	return awsutil.Prettify(s)
 19474  }
 19475  
 19476  // GoString returns the string representation.
 19477  //
 19478  // API parameter values that are decorated as "sensitive" in the API will not
 19479  // be included in the string output. The member name will be present, but the
 19480  // value will be replaced with "sensitive".
 19481  func (s ListIndexInput) GoString() string {
 19482  	return s.String()
 19483  }
 19484  
 19485  // Validate inspects the fields of the type to determine if they are valid.
 19486  func (s *ListIndexInput) Validate() error {
 19487  	invalidParams := request.ErrInvalidParams{Context: "ListIndexInput"}
 19488  	if s.DirectoryArn == nil {
 19489  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 19490  	}
 19491  	if s.IndexReference == nil {
 19492  		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
 19493  	}
 19494  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19495  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19496  	}
 19497  	if s.RangesOnIndexedValues != nil {
 19498  		for i, v := range s.RangesOnIndexedValues {
 19499  			if v == nil {
 19500  				continue
 19501  			}
 19502  			if err := v.Validate(); err != nil {
 19503  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
 19504  			}
 19505  		}
 19506  	}
 19507  
 19508  	if invalidParams.Len() > 0 {
 19509  		return invalidParams
 19510  	}
 19511  	return nil
 19512  }
 19513  
 19514  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 19515  func (s *ListIndexInput) SetConsistencyLevel(v string) *ListIndexInput {
 19516  	s.ConsistencyLevel = &v
 19517  	return s
 19518  }
 19519  
 19520  // SetDirectoryArn sets the DirectoryArn field's value.
 19521  func (s *ListIndexInput) SetDirectoryArn(v string) *ListIndexInput {
 19522  	s.DirectoryArn = &v
 19523  	return s
 19524  }
 19525  
 19526  // SetIndexReference sets the IndexReference field's value.
 19527  func (s *ListIndexInput) SetIndexReference(v *ObjectReference) *ListIndexInput {
 19528  	s.IndexReference = v
 19529  	return s
 19530  }
 19531  
 19532  // SetMaxResults sets the MaxResults field's value.
 19533  func (s *ListIndexInput) SetMaxResults(v int64) *ListIndexInput {
 19534  	s.MaxResults = &v
 19535  	return s
 19536  }
 19537  
 19538  // SetNextToken sets the NextToken field's value.
 19539  func (s *ListIndexInput) SetNextToken(v string) *ListIndexInput {
 19540  	s.NextToken = &v
 19541  	return s
 19542  }
 19543  
 19544  // SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
 19545  func (s *ListIndexInput) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *ListIndexInput {
 19546  	s.RangesOnIndexedValues = v
 19547  	return s
 19548  }
 19549  
 19550  type ListIndexOutput struct {
 19551  	_ struct{} `type:"structure"`
 19552  
 19553  	// The objects and indexed values attached to the index.
 19554  	IndexAttachments []*IndexAttachment `type:"list"`
 19555  
 19556  	// The pagination token.
 19557  	NextToken *string `type:"string"`
 19558  }
 19559  
 19560  // String returns the string representation.
 19561  //
 19562  // API parameter values that are decorated as "sensitive" in the API will not
 19563  // be included in the string output. The member name will be present, but the
 19564  // value will be replaced with "sensitive".
 19565  func (s ListIndexOutput) String() string {
 19566  	return awsutil.Prettify(s)
 19567  }
 19568  
 19569  // GoString returns the string representation.
 19570  //
 19571  // API parameter values that are decorated as "sensitive" in the API will not
 19572  // be included in the string output. The member name will be present, but the
 19573  // value will be replaced with "sensitive".
 19574  func (s ListIndexOutput) GoString() string {
 19575  	return s.String()
 19576  }
 19577  
 19578  // SetIndexAttachments sets the IndexAttachments field's value.
 19579  func (s *ListIndexOutput) SetIndexAttachments(v []*IndexAttachment) *ListIndexOutput {
 19580  	s.IndexAttachments = v
 19581  	return s
 19582  }
 19583  
 19584  // SetNextToken sets the NextToken field's value.
 19585  func (s *ListIndexOutput) SetNextToken(v string) *ListIndexOutput {
 19586  	s.NextToken = &v
 19587  	return s
 19588  }
 19589  
 19590  type ListManagedSchemaArnsInput struct {
 19591  	_ struct{} `type:"structure"`
 19592  
 19593  	// The maximum number of results to retrieve.
 19594  	MaxResults *int64 `min:"1" type:"integer"`
 19595  
 19596  	// The pagination token.
 19597  	NextToken *string `type:"string"`
 19598  
 19599  	// The response for ListManagedSchemaArns. When this parameter is used, all
 19600  	// minor version ARNs for a major version are listed.
 19601  	SchemaArn *string `type:"string"`
 19602  }
 19603  
 19604  // String returns the string representation.
 19605  //
 19606  // API parameter values that are decorated as "sensitive" in the API will not
 19607  // be included in the string output. The member name will be present, but the
 19608  // value will be replaced with "sensitive".
 19609  func (s ListManagedSchemaArnsInput) String() string {
 19610  	return awsutil.Prettify(s)
 19611  }
 19612  
 19613  // GoString returns the string representation.
 19614  //
 19615  // API parameter values that are decorated as "sensitive" in the API will not
 19616  // be included in the string output. The member name will be present, but the
 19617  // value will be replaced with "sensitive".
 19618  func (s ListManagedSchemaArnsInput) GoString() string {
 19619  	return s.String()
 19620  }
 19621  
 19622  // Validate inspects the fields of the type to determine if they are valid.
 19623  func (s *ListManagedSchemaArnsInput) Validate() error {
 19624  	invalidParams := request.ErrInvalidParams{Context: "ListManagedSchemaArnsInput"}
 19625  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19626  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19627  	}
 19628  
 19629  	if invalidParams.Len() > 0 {
 19630  		return invalidParams
 19631  	}
 19632  	return nil
 19633  }
 19634  
 19635  // SetMaxResults sets the MaxResults field's value.
 19636  func (s *ListManagedSchemaArnsInput) SetMaxResults(v int64) *ListManagedSchemaArnsInput {
 19637  	s.MaxResults = &v
 19638  	return s
 19639  }
 19640  
 19641  // SetNextToken sets the NextToken field's value.
 19642  func (s *ListManagedSchemaArnsInput) SetNextToken(v string) *ListManagedSchemaArnsInput {
 19643  	s.NextToken = &v
 19644  	return s
 19645  }
 19646  
 19647  // SetSchemaArn sets the SchemaArn field's value.
 19648  func (s *ListManagedSchemaArnsInput) SetSchemaArn(v string) *ListManagedSchemaArnsInput {
 19649  	s.SchemaArn = &v
 19650  	return s
 19651  }
 19652  
 19653  type ListManagedSchemaArnsOutput struct {
 19654  	_ struct{} `type:"structure"`
 19655  
 19656  	// The pagination token.
 19657  	NextToken *string `type:"string"`
 19658  
 19659  	// The ARNs for all AWS managed schemas.
 19660  	SchemaArns []*string `type:"list"`
 19661  }
 19662  
 19663  // String returns the string representation.
 19664  //
 19665  // API parameter values that are decorated as "sensitive" in the API will not
 19666  // be included in the string output. The member name will be present, but the
 19667  // value will be replaced with "sensitive".
 19668  func (s ListManagedSchemaArnsOutput) String() string {
 19669  	return awsutil.Prettify(s)
 19670  }
 19671  
 19672  // GoString returns the string representation.
 19673  //
 19674  // API parameter values that are decorated as "sensitive" in the API will not
 19675  // be included in the string output. The member name will be present, but the
 19676  // value will be replaced with "sensitive".
 19677  func (s ListManagedSchemaArnsOutput) GoString() string {
 19678  	return s.String()
 19679  }
 19680  
 19681  // SetNextToken sets the NextToken field's value.
 19682  func (s *ListManagedSchemaArnsOutput) SetNextToken(v string) *ListManagedSchemaArnsOutput {
 19683  	s.NextToken = &v
 19684  	return s
 19685  }
 19686  
 19687  // SetSchemaArns sets the SchemaArns field's value.
 19688  func (s *ListManagedSchemaArnsOutput) SetSchemaArns(v []*string) *ListManagedSchemaArnsOutput {
 19689  	s.SchemaArns = v
 19690  	return s
 19691  }
 19692  
 19693  type ListObjectAttributesInput struct {
 19694  	_ struct{} `type:"structure"`
 19695  
 19696  	// Represents the manner and timing in which the successful write or update
 19697  	// of an object is reflected in a subsequent read operation of that same object.
 19698  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 19699  
 19700  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 19701  	// the object resides. For more information, see arns.
 19702  	//
 19703  	// DirectoryArn is a required field
 19704  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19705  
 19706  	// Used to filter the list of object attributes that are associated with a certain
 19707  	// facet.
 19708  	FacetFilter *SchemaFacet `type:"structure"`
 19709  
 19710  	// The maximum number of items to be retrieved in a single call. This is an
 19711  	// approximate number.
 19712  	MaxResults *int64 `min:"1" type:"integer"`
 19713  
 19714  	// The pagination token.
 19715  	NextToken *string `type:"string"`
 19716  
 19717  	// The reference that identifies the object whose attributes will be listed.
 19718  	//
 19719  	// ObjectReference is a required field
 19720  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 19721  }
 19722  
 19723  // String returns the string representation.
 19724  //
 19725  // API parameter values that are decorated as "sensitive" in the API will not
 19726  // be included in the string output. The member name will be present, but the
 19727  // value will be replaced with "sensitive".
 19728  func (s ListObjectAttributesInput) String() string {
 19729  	return awsutil.Prettify(s)
 19730  }
 19731  
 19732  // GoString returns the string representation.
 19733  //
 19734  // API parameter values that are decorated as "sensitive" in the API will not
 19735  // be included in the string output. The member name will be present, but the
 19736  // value will be replaced with "sensitive".
 19737  func (s ListObjectAttributesInput) GoString() string {
 19738  	return s.String()
 19739  }
 19740  
 19741  // Validate inspects the fields of the type to determine if they are valid.
 19742  func (s *ListObjectAttributesInput) Validate() error {
 19743  	invalidParams := request.ErrInvalidParams{Context: "ListObjectAttributesInput"}
 19744  	if s.DirectoryArn == nil {
 19745  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 19746  	}
 19747  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19748  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19749  	}
 19750  	if s.ObjectReference == nil {
 19751  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 19752  	}
 19753  	if s.FacetFilter != nil {
 19754  		if err := s.FacetFilter.Validate(); err != nil {
 19755  			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
 19756  		}
 19757  	}
 19758  
 19759  	if invalidParams.Len() > 0 {
 19760  		return invalidParams
 19761  	}
 19762  	return nil
 19763  }
 19764  
 19765  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 19766  func (s *ListObjectAttributesInput) SetConsistencyLevel(v string) *ListObjectAttributesInput {
 19767  	s.ConsistencyLevel = &v
 19768  	return s
 19769  }
 19770  
 19771  // SetDirectoryArn sets the DirectoryArn field's value.
 19772  func (s *ListObjectAttributesInput) SetDirectoryArn(v string) *ListObjectAttributesInput {
 19773  	s.DirectoryArn = &v
 19774  	return s
 19775  }
 19776  
 19777  // SetFacetFilter sets the FacetFilter field's value.
 19778  func (s *ListObjectAttributesInput) SetFacetFilter(v *SchemaFacet) *ListObjectAttributesInput {
 19779  	s.FacetFilter = v
 19780  	return s
 19781  }
 19782  
 19783  // SetMaxResults sets the MaxResults field's value.
 19784  func (s *ListObjectAttributesInput) SetMaxResults(v int64) *ListObjectAttributesInput {
 19785  	s.MaxResults = &v
 19786  	return s
 19787  }
 19788  
 19789  // SetNextToken sets the NextToken field's value.
 19790  func (s *ListObjectAttributesInput) SetNextToken(v string) *ListObjectAttributesInput {
 19791  	s.NextToken = &v
 19792  	return s
 19793  }
 19794  
 19795  // SetObjectReference sets the ObjectReference field's value.
 19796  func (s *ListObjectAttributesInput) SetObjectReference(v *ObjectReference) *ListObjectAttributesInput {
 19797  	s.ObjectReference = v
 19798  	return s
 19799  }
 19800  
 19801  type ListObjectAttributesOutput struct {
 19802  	_ struct{} `type:"structure"`
 19803  
 19804  	// Attributes map that is associated with the object. AttributeArn is the key,
 19805  	// and attribute value is the value.
 19806  	Attributes []*AttributeKeyAndValue `type:"list"`
 19807  
 19808  	// The pagination token.
 19809  	NextToken *string `type:"string"`
 19810  }
 19811  
 19812  // String returns the string representation.
 19813  //
 19814  // API parameter values that are decorated as "sensitive" in the API will not
 19815  // be included in the string output. The member name will be present, but the
 19816  // value will be replaced with "sensitive".
 19817  func (s ListObjectAttributesOutput) String() string {
 19818  	return awsutil.Prettify(s)
 19819  }
 19820  
 19821  // GoString returns the string representation.
 19822  //
 19823  // API parameter values that are decorated as "sensitive" in the API will not
 19824  // be included in the string output. The member name will be present, but the
 19825  // value will be replaced with "sensitive".
 19826  func (s ListObjectAttributesOutput) GoString() string {
 19827  	return s.String()
 19828  }
 19829  
 19830  // SetAttributes sets the Attributes field's value.
 19831  func (s *ListObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *ListObjectAttributesOutput {
 19832  	s.Attributes = v
 19833  	return s
 19834  }
 19835  
 19836  // SetNextToken sets the NextToken field's value.
 19837  func (s *ListObjectAttributesOutput) SetNextToken(v string) *ListObjectAttributesOutput {
 19838  	s.NextToken = &v
 19839  	return s
 19840  }
 19841  
 19842  type ListObjectChildrenInput struct {
 19843  	_ struct{} `type:"structure"`
 19844  
 19845  	// Represents the manner and timing in which the successful write or update
 19846  	// of an object is reflected in a subsequent read operation of that same object.
 19847  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 19848  
 19849  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 19850  	// the object resides. For more information, see arns.
 19851  	//
 19852  	// DirectoryArn is a required field
 19853  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19854  
 19855  	// The maximum number of items to be retrieved in a single call. This is an
 19856  	// approximate number.
 19857  	MaxResults *int64 `min:"1" type:"integer"`
 19858  
 19859  	// The pagination token.
 19860  	NextToken *string `type:"string"`
 19861  
 19862  	// The reference that identifies the object for which child objects are being
 19863  	// listed.
 19864  	//
 19865  	// ObjectReference is a required field
 19866  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 19867  }
 19868  
 19869  // String returns the string representation.
 19870  //
 19871  // API parameter values that are decorated as "sensitive" in the API will not
 19872  // be included in the string output. The member name will be present, but the
 19873  // value will be replaced with "sensitive".
 19874  func (s ListObjectChildrenInput) String() string {
 19875  	return awsutil.Prettify(s)
 19876  }
 19877  
 19878  // GoString returns the string representation.
 19879  //
 19880  // API parameter values that are decorated as "sensitive" in the API will not
 19881  // be included in the string output. The member name will be present, but the
 19882  // value will be replaced with "sensitive".
 19883  func (s ListObjectChildrenInput) GoString() string {
 19884  	return s.String()
 19885  }
 19886  
 19887  // Validate inspects the fields of the type to determine if they are valid.
 19888  func (s *ListObjectChildrenInput) Validate() error {
 19889  	invalidParams := request.ErrInvalidParams{Context: "ListObjectChildrenInput"}
 19890  	if s.DirectoryArn == nil {
 19891  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 19892  	}
 19893  	if s.MaxResults != nil && *s.MaxResults < 1 {
 19894  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 19895  	}
 19896  	if s.ObjectReference == nil {
 19897  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 19898  	}
 19899  
 19900  	if invalidParams.Len() > 0 {
 19901  		return invalidParams
 19902  	}
 19903  	return nil
 19904  }
 19905  
 19906  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 19907  func (s *ListObjectChildrenInput) SetConsistencyLevel(v string) *ListObjectChildrenInput {
 19908  	s.ConsistencyLevel = &v
 19909  	return s
 19910  }
 19911  
 19912  // SetDirectoryArn sets the DirectoryArn field's value.
 19913  func (s *ListObjectChildrenInput) SetDirectoryArn(v string) *ListObjectChildrenInput {
 19914  	s.DirectoryArn = &v
 19915  	return s
 19916  }
 19917  
 19918  // SetMaxResults sets the MaxResults field's value.
 19919  func (s *ListObjectChildrenInput) SetMaxResults(v int64) *ListObjectChildrenInput {
 19920  	s.MaxResults = &v
 19921  	return s
 19922  }
 19923  
 19924  // SetNextToken sets the NextToken field's value.
 19925  func (s *ListObjectChildrenInput) SetNextToken(v string) *ListObjectChildrenInput {
 19926  	s.NextToken = &v
 19927  	return s
 19928  }
 19929  
 19930  // SetObjectReference sets the ObjectReference field's value.
 19931  func (s *ListObjectChildrenInput) SetObjectReference(v *ObjectReference) *ListObjectChildrenInput {
 19932  	s.ObjectReference = v
 19933  	return s
 19934  }
 19935  
 19936  type ListObjectChildrenOutput struct {
 19937  	_ struct{} `type:"structure"`
 19938  
 19939  	// Children structure, which is a map with key as the LinkName and ObjectIdentifier
 19940  	// as the value.
 19941  	Children map[string]*string `type:"map"`
 19942  
 19943  	// The pagination token.
 19944  	NextToken *string `type:"string"`
 19945  }
 19946  
 19947  // String returns the string representation.
 19948  //
 19949  // API parameter values that are decorated as "sensitive" in the API will not
 19950  // be included in the string output. The member name will be present, but the
 19951  // value will be replaced with "sensitive".
 19952  func (s ListObjectChildrenOutput) String() string {
 19953  	return awsutil.Prettify(s)
 19954  }
 19955  
 19956  // GoString returns the string representation.
 19957  //
 19958  // API parameter values that are decorated as "sensitive" in the API will not
 19959  // be included in the string output. The member name will be present, but the
 19960  // value will be replaced with "sensitive".
 19961  func (s ListObjectChildrenOutput) GoString() string {
 19962  	return s.String()
 19963  }
 19964  
 19965  // SetChildren sets the Children field's value.
 19966  func (s *ListObjectChildrenOutput) SetChildren(v map[string]*string) *ListObjectChildrenOutput {
 19967  	s.Children = v
 19968  	return s
 19969  }
 19970  
 19971  // SetNextToken sets the NextToken field's value.
 19972  func (s *ListObjectChildrenOutput) SetNextToken(v string) *ListObjectChildrenOutput {
 19973  	s.NextToken = &v
 19974  	return s
 19975  }
 19976  
 19977  type ListObjectParentPathsInput struct {
 19978  	_ struct{} `type:"structure"`
 19979  
 19980  	// The ARN of the directory to which the parent path applies.
 19981  	//
 19982  	// DirectoryArn is a required field
 19983  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 19984  
 19985  	// The maximum number of items to be retrieved in a single call. This is an
 19986  	// approximate number.
 19987  	MaxResults *int64 `min:"1" type:"integer"`
 19988  
 19989  	// The pagination token.
 19990  	NextToken *string `type:"string"`
 19991  
 19992  	// The reference that identifies the object whose parent paths are listed.
 19993  	//
 19994  	// ObjectReference is a required field
 19995  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 19996  }
 19997  
 19998  // String returns the string representation.
 19999  //
 20000  // API parameter values that are decorated as "sensitive" in the API will not
 20001  // be included in the string output. The member name will be present, but the
 20002  // value will be replaced with "sensitive".
 20003  func (s ListObjectParentPathsInput) String() string {
 20004  	return awsutil.Prettify(s)
 20005  }
 20006  
 20007  // GoString returns the string representation.
 20008  //
 20009  // API parameter values that are decorated as "sensitive" in the API will not
 20010  // be included in the string output. The member name will be present, but the
 20011  // value will be replaced with "sensitive".
 20012  func (s ListObjectParentPathsInput) GoString() string {
 20013  	return s.String()
 20014  }
 20015  
 20016  // Validate inspects the fields of the type to determine if they are valid.
 20017  func (s *ListObjectParentPathsInput) Validate() error {
 20018  	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentPathsInput"}
 20019  	if s.DirectoryArn == nil {
 20020  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 20021  	}
 20022  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20023  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20024  	}
 20025  	if s.ObjectReference == nil {
 20026  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 20027  	}
 20028  
 20029  	if invalidParams.Len() > 0 {
 20030  		return invalidParams
 20031  	}
 20032  	return nil
 20033  }
 20034  
 20035  // SetDirectoryArn sets the DirectoryArn field's value.
 20036  func (s *ListObjectParentPathsInput) SetDirectoryArn(v string) *ListObjectParentPathsInput {
 20037  	s.DirectoryArn = &v
 20038  	return s
 20039  }
 20040  
 20041  // SetMaxResults sets the MaxResults field's value.
 20042  func (s *ListObjectParentPathsInput) SetMaxResults(v int64) *ListObjectParentPathsInput {
 20043  	s.MaxResults = &v
 20044  	return s
 20045  }
 20046  
 20047  // SetNextToken sets the NextToken field's value.
 20048  func (s *ListObjectParentPathsInput) SetNextToken(v string) *ListObjectParentPathsInput {
 20049  	s.NextToken = &v
 20050  	return s
 20051  }
 20052  
 20053  // SetObjectReference sets the ObjectReference field's value.
 20054  func (s *ListObjectParentPathsInput) SetObjectReference(v *ObjectReference) *ListObjectParentPathsInput {
 20055  	s.ObjectReference = v
 20056  	return s
 20057  }
 20058  
 20059  type ListObjectParentPathsOutput struct {
 20060  	_ struct{} `type:"structure"`
 20061  
 20062  	// The pagination token.
 20063  	NextToken *string `type:"string"`
 20064  
 20065  	// Returns the path to the ObjectIdentifiers that are associated with the directory.
 20066  	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
 20067  }
 20068  
 20069  // String returns the string representation.
 20070  //
 20071  // API parameter values that are decorated as "sensitive" in the API will not
 20072  // be included in the string output. The member name will be present, but the
 20073  // value will be replaced with "sensitive".
 20074  func (s ListObjectParentPathsOutput) String() string {
 20075  	return awsutil.Prettify(s)
 20076  }
 20077  
 20078  // GoString returns the string representation.
 20079  //
 20080  // API parameter values that are decorated as "sensitive" in the API will not
 20081  // be included in the string output. The member name will be present, but the
 20082  // value will be replaced with "sensitive".
 20083  func (s ListObjectParentPathsOutput) GoString() string {
 20084  	return s.String()
 20085  }
 20086  
 20087  // SetNextToken sets the NextToken field's value.
 20088  func (s *ListObjectParentPathsOutput) SetNextToken(v string) *ListObjectParentPathsOutput {
 20089  	s.NextToken = &v
 20090  	return s
 20091  }
 20092  
 20093  // SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
 20094  func (s *ListObjectParentPathsOutput) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *ListObjectParentPathsOutput {
 20095  	s.PathToObjectIdentifiersList = v
 20096  	return s
 20097  }
 20098  
 20099  type ListObjectParentsInput struct {
 20100  	_ struct{} `type:"structure"`
 20101  
 20102  	// Represents the manner and timing in which the successful write or update
 20103  	// of an object is reflected in a subsequent read operation of that same object.
 20104  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 20105  
 20106  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 20107  	// the object resides. For more information, see arns.
 20108  	//
 20109  	// DirectoryArn is a required field
 20110  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 20111  
 20112  	// When set to True, returns all ListObjectParentsResponse$ParentLinks. There
 20113  	// could be multiple links between a parent-child pair.
 20114  	IncludeAllLinksToEachParent *bool `type:"boolean"`
 20115  
 20116  	// The maximum number of items to be retrieved in a single call. This is an
 20117  	// approximate number.
 20118  	MaxResults *int64 `min:"1" type:"integer"`
 20119  
 20120  	// The pagination token.
 20121  	NextToken *string `type:"string"`
 20122  
 20123  	// The reference that identifies the object for which parent objects are being
 20124  	// listed.
 20125  	//
 20126  	// ObjectReference is a required field
 20127  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 20128  }
 20129  
 20130  // String returns the string representation.
 20131  //
 20132  // API parameter values that are decorated as "sensitive" in the API will not
 20133  // be included in the string output. The member name will be present, but the
 20134  // value will be replaced with "sensitive".
 20135  func (s ListObjectParentsInput) String() string {
 20136  	return awsutil.Prettify(s)
 20137  }
 20138  
 20139  // GoString returns the string representation.
 20140  //
 20141  // API parameter values that are decorated as "sensitive" in the API will not
 20142  // be included in the string output. The member name will be present, but the
 20143  // value will be replaced with "sensitive".
 20144  func (s ListObjectParentsInput) GoString() string {
 20145  	return s.String()
 20146  }
 20147  
 20148  // Validate inspects the fields of the type to determine if they are valid.
 20149  func (s *ListObjectParentsInput) Validate() error {
 20150  	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentsInput"}
 20151  	if s.DirectoryArn == nil {
 20152  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 20153  	}
 20154  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20155  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20156  	}
 20157  	if s.ObjectReference == nil {
 20158  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 20159  	}
 20160  
 20161  	if invalidParams.Len() > 0 {
 20162  		return invalidParams
 20163  	}
 20164  	return nil
 20165  }
 20166  
 20167  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 20168  func (s *ListObjectParentsInput) SetConsistencyLevel(v string) *ListObjectParentsInput {
 20169  	s.ConsistencyLevel = &v
 20170  	return s
 20171  }
 20172  
 20173  // SetDirectoryArn sets the DirectoryArn field's value.
 20174  func (s *ListObjectParentsInput) SetDirectoryArn(v string) *ListObjectParentsInput {
 20175  	s.DirectoryArn = &v
 20176  	return s
 20177  }
 20178  
 20179  // SetIncludeAllLinksToEachParent sets the IncludeAllLinksToEachParent field's value.
 20180  func (s *ListObjectParentsInput) SetIncludeAllLinksToEachParent(v bool) *ListObjectParentsInput {
 20181  	s.IncludeAllLinksToEachParent = &v
 20182  	return s
 20183  }
 20184  
 20185  // SetMaxResults sets the MaxResults field's value.
 20186  func (s *ListObjectParentsInput) SetMaxResults(v int64) *ListObjectParentsInput {
 20187  	s.MaxResults = &v
 20188  	return s
 20189  }
 20190  
 20191  // SetNextToken sets the NextToken field's value.
 20192  func (s *ListObjectParentsInput) SetNextToken(v string) *ListObjectParentsInput {
 20193  	s.NextToken = &v
 20194  	return s
 20195  }
 20196  
 20197  // SetObjectReference sets the ObjectReference field's value.
 20198  func (s *ListObjectParentsInput) SetObjectReference(v *ObjectReference) *ListObjectParentsInput {
 20199  	s.ObjectReference = v
 20200  	return s
 20201  }
 20202  
 20203  type ListObjectParentsOutput struct {
 20204  	_ struct{} `type:"structure"`
 20205  
 20206  	// The pagination token.
 20207  	NextToken *string `type:"string"`
 20208  
 20209  	// Returns a list of parent reference and LinkName Tuples.
 20210  	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
 20211  
 20212  	// The parent structure, which is a map with key as the ObjectIdentifier and
 20213  	// LinkName as the value.
 20214  	Parents map[string]*string `type:"map"`
 20215  }
 20216  
 20217  // String returns the string representation.
 20218  //
 20219  // API parameter values that are decorated as "sensitive" in the API will not
 20220  // be included in the string output. The member name will be present, but the
 20221  // value will be replaced with "sensitive".
 20222  func (s ListObjectParentsOutput) String() string {
 20223  	return awsutil.Prettify(s)
 20224  }
 20225  
 20226  // GoString returns the string representation.
 20227  //
 20228  // API parameter values that are decorated as "sensitive" in the API will not
 20229  // be included in the string output. The member name will be present, but the
 20230  // value will be replaced with "sensitive".
 20231  func (s ListObjectParentsOutput) GoString() string {
 20232  	return s.String()
 20233  }
 20234  
 20235  // SetNextToken sets the NextToken field's value.
 20236  func (s *ListObjectParentsOutput) SetNextToken(v string) *ListObjectParentsOutput {
 20237  	s.NextToken = &v
 20238  	return s
 20239  }
 20240  
 20241  // SetParentLinks sets the ParentLinks field's value.
 20242  func (s *ListObjectParentsOutput) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *ListObjectParentsOutput {
 20243  	s.ParentLinks = v
 20244  	return s
 20245  }
 20246  
 20247  // SetParents sets the Parents field's value.
 20248  func (s *ListObjectParentsOutput) SetParents(v map[string]*string) *ListObjectParentsOutput {
 20249  	s.Parents = v
 20250  	return s
 20251  }
 20252  
 20253  type ListObjectPoliciesInput struct {
 20254  	_ struct{} `type:"structure"`
 20255  
 20256  	// Represents the manner and timing in which the successful write or update
 20257  	// of an object is reflected in a subsequent read operation of that same object.
 20258  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 20259  
 20260  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 20261  	// objects reside. For more information, see arns.
 20262  	//
 20263  	// DirectoryArn is a required field
 20264  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 20265  
 20266  	// The maximum number of items to be retrieved in a single call. This is an
 20267  	// approximate number.
 20268  	MaxResults *int64 `min:"1" type:"integer"`
 20269  
 20270  	// The pagination token.
 20271  	NextToken *string `type:"string"`
 20272  
 20273  	// Reference that identifies the object for which policies will be listed.
 20274  	//
 20275  	// ObjectReference is a required field
 20276  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 20277  }
 20278  
 20279  // String returns the string representation.
 20280  //
 20281  // API parameter values that are decorated as "sensitive" in the API will not
 20282  // be included in the string output. The member name will be present, but the
 20283  // value will be replaced with "sensitive".
 20284  func (s ListObjectPoliciesInput) String() string {
 20285  	return awsutil.Prettify(s)
 20286  }
 20287  
 20288  // GoString returns the string representation.
 20289  //
 20290  // API parameter values that are decorated as "sensitive" in the API will not
 20291  // be included in the string output. The member name will be present, but the
 20292  // value will be replaced with "sensitive".
 20293  func (s ListObjectPoliciesInput) GoString() string {
 20294  	return s.String()
 20295  }
 20296  
 20297  // Validate inspects the fields of the type to determine if they are valid.
 20298  func (s *ListObjectPoliciesInput) Validate() error {
 20299  	invalidParams := request.ErrInvalidParams{Context: "ListObjectPoliciesInput"}
 20300  	if s.DirectoryArn == nil {
 20301  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 20302  	}
 20303  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20304  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20305  	}
 20306  	if s.ObjectReference == nil {
 20307  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 20308  	}
 20309  
 20310  	if invalidParams.Len() > 0 {
 20311  		return invalidParams
 20312  	}
 20313  	return nil
 20314  }
 20315  
 20316  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 20317  func (s *ListObjectPoliciesInput) SetConsistencyLevel(v string) *ListObjectPoliciesInput {
 20318  	s.ConsistencyLevel = &v
 20319  	return s
 20320  }
 20321  
 20322  // SetDirectoryArn sets the DirectoryArn field's value.
 20323  func (s *ListObjectPoliciesInput) SetDirectoryArn(v string) *ListObjectPoliciesInput {
 20324  	s.DirectoryArn = &v
 20325  	return s
 20326  }
 20327  
 20328  // SetMaxResults sets the MaxResults field's value.
 20329  func (s *ListObjectPoliciesInput) SetMaxResults(v int64) *ListObjectPoliciesInput {
 20330  	s.MaxResults = &v
 20331  	return s
 20332  }
 20333  
 20334  // SetNextToken sets the NextToken field's value.
 20335  func (s *ListObjectPoliciesInput) SetNextToken(v string) *ListObjectPoliciesInput {
 20336  	s.NextToken = &v
 20337  	return s
 20338  }
 20339  
 20340  // SetObjectReference sets the ObjectReference field's value.
 20341  func (s *ListObjectPoliciesInput) SetObjectReference(v *ObjectReference) *ListObjectPoliciesInput {
 20342  	s.ObjectReference = v
 20343  	return s
 20344  }
 20345  
 20346  type ListObjectPoliciesOutput struct {
 20347  	_ struct{} `type:"structure"`
 20348  
 20349  	// A list of policy ObjectIdentifiers, that are attached to the object.
 20350  	AttachedPolicyIds []*string `type:"list"`
 20351  
 20352  	// The pagination token.
 20353  	NextToken *string `type:"string"`
 20354  }
 20355  
 20356  // String returns the string representation.
 20357  //
 20358  // API parameter values that are decorated as "sensitive" in the API will not
 20359  // be included in the string output. The member name will be present, but the
 20360  // value will be replaced with "sensitive".
 20361  func (s ListObjectPoliciesOutput) String() string {
 20362  	return awsutil.Prettify(s)
 20363  }
 20364  
 20365  // GoString returns the string representation.
 20366  //
 20367  // API parameter values that are decorated as "sensitive" in the API will not
 20368  // be included in the string output. The member name will be present, but the
 20369  // value will be replaced with "sensitive".
 20370  func (s ListObjectPoliciesOutput) GoString() string {
 20371  	return s.String()
 20372  }
 20373  
 20374  // SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
 20375  func (s *ListObjectPoliciesOutput) SetAttachedPolicyIds(v []*string) *ListObjectPoliciesOutput {
 20376  	s.AttachedPolicyIds = v
 20377  	return s
 20378  }
 20379  
 20380  // SetNextToken sets the NextToken field's value.
 20381  func (s *ListObjectPoliciesOutput) SetNextToken(v string) *ListObjectPoliciesOutput {
 20382  	s.NextToken = &v
 20383  	return s
 20384  }
 20385  
 20386  type ListOutgoingTypedLinksInput struct {
 20387  	_ struct{} `type:"structure"`
 20388  
 20389  	// The consistency level to execute the request at.
 20390  	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
 20391  
 20392  	// The Amazon Resource Name (ARN) of the directory where you want to list the
 20393  	// typed links.
 20394  	//
 20395  	// DirectoryArn is a required field
 20396  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 20397  
 20398  	// Provides range filters for multiple attributes. When providing ranges to
 20399  	// typed link selection, any inexact ranges must be specified at the end. Any
 20400  	// attributes that do not have a range specified are presumed to match the entire
 20401  	// range.
 20402  	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
 20403  
 20404  	// Filters are interpreted in the order of the attributes defined on the typed
 20405  	// link facet, not the order they are supplied to any API calls.
 20406  	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
 20407  
 20408  	// The maximum number of results to retrieve.
 20409  	MaxResults *int64 `min:"1" type:"integer"`
 20410  
 20411  	// The pagination token.
 20412  	NextToken *string `type:"string"`
 20413  
 20414  	// A reference that identifies the object whose attributes will be listed.
 20415  	//
 20416  	// ObjectReference is a required field
 20417  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 20418  }
 20419  
 20420  // String returns the string representation.
 20421  //
 20422  // API parameter values that are decorated as "sensitive" in the API will not
 20423  // be included in the string output. The member name will be present, but the
 20424  // value will be replaced with "sensitive".
 20425  func (s ListOutgoingTypedLinksInput) String() string {
 20426  	return awsutil.Prettify(s)
 20427  }
 20428  
 20429  // GoString returns the string representation.
 20430  //
 20431  // API parameter values that are decorated as "sensitive" in the API will not
 20432  // be included in the string output. The member name will be present, but the
 20433  // value will be replaced with "sensitive".
 20434  func (s ListOutgoingTypedLinksInput) GoString() string {
 20435  	return s.String()
 20436  }
 20437  
 20438  // Validate inspects the fields of the type to determine if they are valid.
 20439  func (s *ListOutgoingTypedLinksInput) Validate() error {
 20440  	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingTypedLinksInput"}
 20441  	if s.DirectoryArn == nil {
 20442  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 20443  	}
 20444  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20445  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20446  	}
 20447  	if s.ObjectReference == nil {
 20448  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 20449  	}
 20450  	if s.FilterAttributeRanges != nil {
 20451  		for i, v := range s.FilterAttributeRanges {
 20452  			if v == nil {
 20453  				continue
 20454  			}
 20455  			if err := v.Validate(); err != nil {
 20456  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
 20457  			}
 20458  		}
 20459  	}
 20460  	if s.FilterTypedLink != nil {
 20461  		if err := s.FilterTypedLink.Validate(); err != nil {
 20462  			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
 20463  		}
 20464  	}
 20465  
 20466  	if invalidParams.Len() > 0 {
 20467  		return invalidParams
 20468  	}
 20469  	return nil
 20470  }
 20471  
 20472  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 20473  func (s *ListOutgoingTypedLinksInput) SetConsistencyLevel(v string) *ListOutgoingTypedLinksInput {
 20474  	s.ConsistencyLevel = &v
 20475  	return s
 20476  }
 20477  
 20478  // SetDirectoryArn sets the DirectoryArn field's value.
 20479  func (s *ListOutgoingTypedLinksInput) SetDirectoryArn(v string) *ListOutgoingTypedLinksInput {
 20480  	s.DirectoryArn = &v
 20481  	return s
 20482  }
 20483  
 20484  // SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
 20485  func (s *ListOutgoingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListOutgoingTypedLinksInput {
 20486  	s.FilterAttributeRanges = v
 20487  	return s
 20488  }
 20489  
 20490  // SetFilterTypedLink sets the FilterTypedLink field's value.
 20491  func (s *ListOutgoingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListOutgoingTypedLinksInput {
 20492  	s.FilterTypedLink = v
 20493  	return s
 20494  }
 20495  
 20496  // SetMaxResults sets the MaxResults field's value.
 20497  func (s *ListOutgoingTypedLinksInput) SetMaxResults(v int64) *ListOutgoingTypedLinksInput {
 20498  	s.MaxResults = &v
 20499  	return s
 20500  }
 20501  
 20502  // SetNextToken sets the NextToken field's value.
 20503  func (s *ListOutgoingTypedLinksInput) SetNextToken(v string) *ListOutgoingTypedLinksInput {
 20504  	s.NextToken = &v
 20505  	return s
 20506  }
 20507  
 20508  // SetObjectReference sets the ObjectReference field's value.
 20509  func (s *ListOutgoingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListOutgoingTypedLinksInput {
 20510  	s.ObjectReference = v
 20511  	return s
 20512  }
 20513  
 20514  type ListOutgoingTypedLinksOutput struct {
 20515  	_ struct{} `type:"structure"`
 20516  
 20517  	// The pagination token.
 20518  	NextToken *string `type:"string"`
 20519  
 20520  	// Returns a typed link specifier as output.
 20521  	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
 20522  }
 20523  
 20524  // String returns the string representation.
 20525  //
 20526  // API parameter values that are decorated as "sensitive" in the API will not
 20527  // be included in the string output. The member name will be present, but the
 20528  // value will be replaced with "sensitive".
 20529  func (s ListOutgoingTypedLinksOutput) String() string {
 20530  	return awsutil.Prettify(s)
 20531  }
 20532  
 20533  // GoString returns the string representation.
 20534  //
 20535  // API parameter values that are decorated as "sensitive" in the API will not
 20536  // be included in the string output. The member name will be present, but the
 20537  // value will be replaced with "sensitive".
 20538  func (s ListOutgoingTypedLinksOutput) GoString() string {
 20539  	return s.String()
 20540  }
 20541  
 20542  // SetNextToken sets the NextToken field's value.
 20543  func (s *ListOutgoingTypedLinksOutput) SetNextToken(v string) *ListOutgoingTypedLinksOutput {
 20544  	s.NextToken = &v
 20545  	return s
 20546  }
 20547  
 20548  // SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
 20549  func (s *ListOutgoingTypedLinksOutput) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *ListOutgoingTypedLinksOutput {
 20550  	s.TypedLinkSpecifiers = v
 20551  	return s
 20552  }
 20553  
 20554  type ListPolicyAttachmentsInput struct {
 20555  	_ struct{} `type:"structure"`
 20556  
 20557  	// Represents the manner and timing in which the successful write or update
 20558  	// of an object is reflected in a subsequent read operation of that same object.
 20559  	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
 20560  
 20561  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 20562  	// objects reside. For more information, see arns.
 20563  	//
 20564  	// DirectoryArn is a required field
 20565  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 20566  
 20567  	// The maximum number of items to be retrieved in a single call. This is an
 20568  	// approximate number.
 20569  	MaxResults *int64 `min:"1" type:"integer"`
 20570  
 20571  	// The pagination token.
 20572  	NextToken *string `type:"string"`
 20573  
 20574  	// The reference that identifies the policy object.
 20575  	//
 20576  	// PolicyReference is a required field
 20577  	PolicyReference *ObjectReference `type:"structure" required:"true"`
 20578  }
 20579  
 20580  // String returns the string representation.
 20581  //
 20582  // API parameter values that are decorated as "sensitive" in the API will not
 20583  // be included in the string output. The member name will be present, but the
 20584  // value will be replaced with "sensitive".
 20585  func (s ListPolicyAttachmentsInput) String() string {
 20586  	return awsutil.Prettify(s)
 20587  }
 20588  
 20589  // GoString returns the string representation.
 20590  //
 20591  // API parameter values that are decorated as "sensitive" in the API will not
 20592  // be included in the string output. The member name will be present, but the
 20593  // value will be replaced with "sensitive".
 20594  func (s ListPolicyAttachmentsInput) GoString() string {
 20595  	return s.String()
 20596  }
 20597  
 20598  // Validate inspects the fields of the type to determine if they are valid.
 20599  func (s *ListPolicyAttachmentsInput) Validate() error {
 20600  	invalidParams := request.ErrInvalidParams{Context: "ListPolicyAttachmentsInput"}
 20601  	if s.DirectoryArn == nil {
 20602  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 20603  	}
 20604  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20605  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20606  	}
 20607  	if s.PolicyReference == nil {
 20608  		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
 20609  	}
 20610  
 20611  	if invalidParams.Len() > 0 {
 20612  		return invalidParams
 20613  	}
 20614  	return nil
 20615  }
 20616  
 20617  // SetConsistencyLevel sets the ConsistencyLevel field's value.
 20618  func (s *ListPolicyAttachmentsInput) SetConsistencyLevel(v string) *ListPolicyAttachmentsInput {
 20619  	s.ConsistencyLevel = &v
 20620  	return s
 20621  }
 20622  
 20623  // SetDirectoryArn sets the DirectoryArn field's value.
 20624  func (s *ListPolicyAttachmentsInput) SetDirectoryArn(v string) *ListPolicyAttachmentsInput {
 20625  	s.DirectoryArn = &v
 20626  	return s
 20627  }
 20628  
 20629  // SetMaxResults sets the MaxResults field's value.
 20630  func (s *ListPolicyAttachmentsInput) SetMaxResults(v int64) *ListPolicyAttachmentsInput {
 20631  	s.MaxResults = &v
 20632  	return s
 20633  }
 20634  
 20635  // SetNextToken sets the NextToken field's value.
 20636  func (s *ListPolicyAttachmentsInput) SetNextToken(v string) *ListPolicyAttachmentsInput {
 20637  	s.NextToken = &v
 20638  	return s
 20639  }
 20640  
 20641  // SetPolicyReference sets the PolicyReference field's value.
 20642  func (s *ListPolicyAttachmentsInput) SetPolicyReference(v *ObjectReference) *ListPolicyAttachmentsInput {
 20643  	s.PolicyReference = v
 20644  	return s
 20645  }
 20646  
 20647  type ListPolicyAttachmentsOutput struct {
 20648  	_ struct{} `type:"structure"`
 20649  
 20650  	// The pagination token.
 20651  	NextToken *string `type:"string"`
 20652  
 20653  	// A list of ObjectIdentifiers to which the policy is attached.
 20654  	ObjectIdentifiers []*string `type:"list"`
 20655  }
 20656  
 20657  // String returns the string representation.
 20658  //
 20659  // API parameter values that are decorated as "sensitive" in the API will not
 20660  // be included in the string output. The member name will be present, but the
 20661  // value will be replaced with "sensitive".
 20662  func (s ListPolicyAttachmentsOutput) String() string {
 20663  	return awsutil.Prettify(s)
 20664  }
 20665  
 20666  // GoString returns the string representation.
 20667  //
 20668  // API parameter values that are decorated as "sensitive" in the API will not
 20669  // be included in the string output. The member name will be present, but the
 20670  // value will be replaced with "sensitive".
 20671  func (s ListPolicyAttachmentsOutput) GoString() string {
 20672  	return s.String()
 20673  }
 20674  
 20675  // SetNextToken sets the NextToken field's value.
 20676  func (s *ListPolicyAttachmentsOutput) SetNextToken(v string) *ListPolicyAttachmentsOutput {
 20677  	s.NextToken = &v
 20678  	return s
 20679  }
 20680  
 20681  // SetObjectIdentifiers sets the ObjectIdentifiers field's value.
 20682  func (s *ListPolicyAttachmentsOutput) SetObjectIdentifiers(v []*string) *ListPolicyAttachmentsOutput {
 20683  	s.ObjectIdentifiers = v
 20684  	return s
 20685  }
 20686  
 20687  type ListPublishedSchemaArnsInput struct {
 20688  	_ struct{} `type:"structure"`
 20689  
 20690  	// The maximum number of results to retrieve.
 20691  	MaxResults *int64 `min:"1" type:"integer"`
 20692  
 20693  	// The pagination token.
 20694  	NextToken *string `type:"string"`
 20695  
 20696  	// The response for ListPublishedSchemaArns when this parameter is used will
 20697  	// list all minor version ARNs for a major version.
 20698  	SchemaArn *string `type:"string"`
 20699  }
 20700  
 20701  // String returns the string representation.
 20702  //
 20703  // API parameter values that are decorated as "sensitive" in the API will not
 20704  // be included in the string output. The member name will be present, but the
 20705  // value will be replaced with "sensitive".
 20706  func (s ListPublishedSchemaArnsInput) String() string {
 20707  	return awsutil.Prettify(s)
 20708  }
 20709  
 20710  // GoString returns the string representation.
 20711  //
 20712  // API parameter values that are decorated as "sensitive" in the API will not
 20713  // be included in the string output. The member name will be present, but the
 20714  // value will be replaced with "sensitive".
 20715  func (s ListPublishedSchemaArnsInput) GoString() string {
 20716  	return s.String()
 20717  }
 20718  
 20719  // Validate inspects the fields of the type to determine if they are valid.
 20720  func (s *ListPublishedSchemaArnsInput) Validate() error {
 20721  	invalidParams := request.ErrInvalidParams{Context: "ListPublishedSchemaArnsInput"}
 20722  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20723  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20724  	}
 20725  
 20726  	if invalidParams.Len() > 0 {
 20727  		return invalidParams
 20728  	}
 20729  	return nil
 20730  }
 20731  
 20732  // SetMaxResults sets the MaxResults field's value.
 20733  func (s *ListPublishedSchemaArnsInput) SetMaxResults(v int64) *ListPublishedSchemaArnsInput {
 20734  	s.MaxResults = &v
 20735  	return s
 20736  }
 20737  
 20738  // SetNextToken sets the NextToken field's value.
 20739  func (s *ListPublishedSchemaArnsInput) SetNextToken(v string) *ListPublishedSchemaArnsInput {
 20740  	s.NextToken = &v
 20741  	return s
 20742  }
 20743  
 20744  // SetSchemaArn sets the SchemaArn field's value.
 20745  func (s *ListPublishedSchemaArnsInput) SetSchemaArn(v string) *ListPublishedSchemaArnsInput {
 20746  	s.SchemaArn = &v
 20747  	return s
 20748  }
 20749  
 20750  type ListPublishedSchemaArnsOutput struct {
 20751  	_ struct{} `type:"structure"`
 20752  
 20753  	// The pagination token.
 20754  	NextToken *string `type:"string"`
 20755  
 20756  	// The ARNs of published schemas.
 20757  	SchemaArns []*string `type:"list"`
 20758  }
 20759  
 20760  // String returns the string representation.
 20761  //
 20762  // API parameter values that are decorated as "sensitive" in the API will not
 20763  // be included in the string output. The member name will be present, but the
 20764  // value will be replaced with "sensitive".
 20765  func (s ListPublishedSchemaArnsOutput) String() string {
 20766  	return awsutil.Prettify(s)
 20767  }
 20768  
 20769  // GoString returns the string representation.
 20770  //
 20771  // API parameter values that are decorated as "sensitive" in the API will not
 20772  // be included in the string output. The member name will be present, but the
 20773  // value will be replaced with "sensitive".
 20774  func (s ListPublishedSchemaArnsOutput) GoString() string {
 20775  	return s.String()
 20776  }
 20777  
 20778  // SetNextToken sets the NextToken field's value.
 20779  func (s *ListPublishedSchemaArnsOutput) SetNextToken(v string) *ListPublishedSchemaArnsOutput {
 20780  	s.NextToken = &v
 20781  	return s
 20782  }
 20783  
 20784  // SetSchemaArns sets the SchemaArns field's value.
 20785  func (s *ListPublishedSchemaArnsOutput) SetSchemaArns(v []*string) *ListPublishedSchemaArnsOutput {
 20786  	s.SchemaArns = v
 20787  	return s
 20788  }
 20789  
 20790  type ListTagsForResourceInput struct {
 20791  	_ struct{} `type:"structure"`
 20792  
 20793  	// The MaxResults parameter sets the maximum number of results returned in a
 20794  	// single page. This is for future use and is not supported currently.
 20795  	MaxResults *int64 `min:"50" type:"integer"`
 20796  
 20797  	// The pagination token. This is for future use. Currently pagination is not
 20798  	// supported for tagging.
 20799  	NextToken *string `type:"string"`
 20800  
 20801  	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
 20802  	// for directories.
 20803  	//
 20804  	// ResourceArn is a required field
 20805  	ResourceArn *string `type:"string" required:"true"`
 20806  }
 20807  
 20808  // String returns the string representation.
 20809  //
 20810  // API parameter values that are decorated as "sensitive" in the API will not
 20811  // be included in the string output. The member name will be present, but the
 20812  // value will be replaced with "sensitive".
 20813  func (s ListTagsForResourceInput) String() string {
 20814  	return awsutil.Prettify(s)
 20815  }
 20816  
 20817  // GoString returns the string representation.
 20818  //
 20819  // API parameter values that are decorated as "sensitive" in the API will not
 20820  // be included in the string output. The member name will be present, but the
 20821  // value will be replaced with "sensitive".
 20822  func (s ListTagsForResourceInput) GoString() string {
 20823  	return s.String()
 20824  }
 20825  
 20826  // Validate inspects the fields of the type to determine if they are valid.
 20827  func (s *ListTagsForResourceInput) Validate() error {
 20828  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 20829  	if s.MaxResults != nil && *s.MaxResults < 50 {
 20830  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
 20831  	}
 20832  	if s.ResourceArn == nil {
 20833  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 20834  	}
 20835  
 20836  	if invalidParams.Len() > 0 {
 20837  		return invalidParams
 20838  	}
 20839  	return nil
 20840  }
 20841  
 20842  // SetMaxResults sets the MaxResults field's value.
 20843  func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
 20844  	s.MaxResults = &v
 20845  	return s
 20846  }
 20847  
 20848  // SetNextToken sets the NextToken field's value.
 20849  func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
 20850  	s.NextToken = &v
 20851  	return s
 20852  }
 20853  
 20854  // SetResourceArn sets the ResourceArn field's value.
 20855  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
 20856  	s.ResourceArn = &v
 20857  	return s
 20858  }
 20859  
 20860  type ListTagsForResourceOutput struct {
 20861  	_ struct{} `type:"structure"`
 20862  
 20863  	// The token to use to retrieve the next page of results. This value is null
 20864  	// when there are no more results to return.
 20865  	NextToken *string `type:"string"`
 20866  
 20867  	// A list of tag key value pairs that are associated with the response.
 20868  	Tags []*Tag `type:"list"`
 20869  }
 20870  
 20871  // String returns the string representation.
 20872  //
 20873  // API parameter values that are decorated as "sensitive" in the API will not
 20874  // be included in the string output. The member name will be present, but the
 20875  // value will be replaced with "sensitive".
 20876  func (s ListTagsForResourceOutput) String() string {
 20877  	return awsutil.Prettify(s)
 20878  }
 20879  
 20880  // GoString returns the string representation.
 20881  //
 20882  // API parameter values that are decorated as "sensitive" in the API will not
 20883  // be included in the string output. The member name will be present, but the
 20884  // value will be replaced with "sensitive".
 20885  func (s ListTagsForResourceOutput) GoString() string {
 20886  	return s.String()
 20887  }
 20888  
 20889  // SetNextToken sets the NextToken field's value.
 20890  func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
 20891  	s.NextToken = &v
 20892  	return s
 20893  }
 20894  
 20895  // SetTags sets the Tags field's value.
 20896  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 20897  	s.Tags = v
 20898  	return s
 20899  }
 20900  
 20901  type ListTypedLinkFacetAttributesInput struct {
 20902  	_ struct{} `type:"structure"`
 20903  
 20904  	// The maximum number of results to retrieve.
 20905  	MaxResults *int64 `min:"1" type:"integer"`
 20906  
 20907  	// The unique name of the typed link facet.
 20908  	//
 20909  	// Name is a required field
 20910  	Name *string `type:"string" required:"true"`
 20911  
 20912  	// The pagination token.
 20913  	NextToken *string `type:"string"`
 20914  
 20915  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 20916  	// information, see arns.
 20917  	//
 20918  	// SchemaArn is a required field
 20919  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 20920  }
 20921  
 20922  // String returns the string representation.
 20923  //
 20924  // API parameter values that are decorated as "sensitive" in the API will not
 20925  // be included in the string output. The member name will be present, but the
 20926  // value will be replaced with "sensitive".
 20927  func (s ListTypedLinkFacetAttributesInput) String() string {
 20928  	return awsutil.Prettify(s)
 20929  }
 20930  
 20931  // GoString returns the string representation.
 20932  //
 20933  // API parameter values that are decorated as "sensitive" in the API will not
 20934  // be included in the string output. The member name will be present, but the
 20935  // value will be replaced with "sensitive".
 20936  func (s ListTypedLinkFacetAttributesInput) GoString() string {
 20937  	return s.String()
 20938  }
 20939  
 20940  // Validate inspects the fields of the type to determine if they are valid.
 20941  func (s *ListTypedLinkFacetAttributesInput) Validate() error {
 20942  	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetAttributesInput"}
 20943  	if s.MaxResults != nil && *s.MaxResults < 1 {
 20944  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 20945  	}
 20946  	if s.Name == nil {
 20947  		invalidParams.Add(request.NewErrParamRequired("Name"))
 20948  	}
 20949  	if s.SchemaArn == nil {
 20950  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 20951  	}
 20952  
 20953  	if invalidParams.Len() > 0 {
 20954  		return invalidParams
 20955  	}
 20956  	return nil
 20957  }
 20958  
 20959  // SetMaxResults sets the MaxResults field's value.
 20960  func (s *ListTypedLinkFacetAttributesInput) SetMaxResults(v int64) *ListTypedLinkFacetAttributesInput {
 20961  	s.MaxResults = &v
 20962  	return s
 20963  }
 20964  
 20965  // SetName sets the Name field's value.
 20966  func (s *ListTypedLinkFacetAttributesInput) SetName(v string) *ListTypedLinkFacetAttributesInput {
 20967  	s.Name = &v
 20968  	return s
 20969  }
 20970  
 20971  // SetNextToken sets the NextToken field's value.
 20972  func (s *ListTypedLinkFacetAttributesInput) SetNextToken(v string) *ListTypedLinkFacetAttributesInput {
 20973  	s.NextToken = &v
 20974  	return s
 20975  }
 20976  
 20977  // SetSchemaArn sets the SchemaArn field's value.
 20978  func (s *ListTypedLinkFacetAttributesInput) SetSchemaArn(v string) *ListTypedLinkFacetAttributesInput {
 20979  	s.SchemaArn = &v
 20980  	return s
 20981  }
 20982  
 20983  type ListTypedLinkFacetAttributesOutput struct {
 20984  	_ struct{} `type:"structure"`
 20985  
 20986  	// An ordered set of attributes associate with the typed link.
 20987  	Attributes []*TypedLinkAttributeDefinition `type:"list"`
 20988  
 20989  	// The pagination token.
 20990  	NextToken *string `type:"string"`
 20991  }
 20992  
 20993  // String returns the string representation.
 20994  //
 20995  // API parameter values that are decorated as "sensitive" in the API will not
 20996  // be included in the string output. The member name will be present, but the
 20997  // value will be replaced with "sensitive".
 20998  func (s ListTypedLinkFacetAttributesOutput) String() string {
 20999  	return awsutil.Prettify(s)
 21000  }
 21001  
 21002  // GoString returns the string representation.
 21003  //
 21004  // API parameter values that are decorated as "sensitive" in the API will not
 21005  // be included in the string output. The member name will be present, but the
 21006  // value will be replaced with "sensitive".
 21007  func (s ListTypedLinkFacetAttributesOutput) GoString() string {
 21008  	return s.String()
 21009  }
 21010  
 21011  // SetAttributes sets the Attributes field's value.
 21012  func (s *ListTypedLinkFacetAttributesOutput) SetAttributes(v []*TypedLinkAttributeDefinition) *ListTypedLinkFacetAttributesOutput {
 21013  	s.Attributes = v
 21014  	return s
 21015  }
 21016  
 21017  // SetNextToken sets the NextToken field's value.
 21018  func (s *ListTypedLinkFacetAttributesOutput) SetNextToken(v string) *ListTypedLinkFacetAttributesOutput {
 21019  	s.NextToken = &v
 21020  	return s
 21021  }
 21022  
 21023  type ListTypedLinkFacetNamesInput struct {
 21024  	_ struct{} `type:"structure"`
 21025  
 21026  	// The maximum number of results to retrieve.
 21027  	MaxResults *int64 `min:"1" type:"integer"`
 21028  
 21029  	// The pagination token.
 21030  	NextToken *string `type:"string"`
 21031  
 21032  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 21033  	// information, see arns.
 21034  	//
 21035  	// SchemaArn is a required field
 21036  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 21037  }
 21038  
 21039  // String returns the string representation.
 21040  //
 21041  // API parameter values that are decorated as "sensitive" in the API will not
 21042  // be included in the string output. The member name will be present, but the
 21043  // value will be replaced with "sensitive".
 21044  func (s ListTypedLinkFacetNamesInput) String() string {
 21045  	return awsutil.Prettify(s)
 21046  }
 21047  
 21048  // GoString returns the string representation.
 21049  //
 21050  // API parameter values that are decorated as "sensitive" in the API will not
 21051  // be included in the string output. The member name will be present, but the
 21052  // value will be replaced with "sensitive".
 21053  func (s ListTypedLinkFacetNamesInput) GoString() string {
 21054  	return s.String()
 21055  }
 21056  
 21057  // Validate inspects the fields of the type to determine if they are valid.
 21058  func (s *ListTypedLinkFacetNamesInput) Validate() error {
 21059  	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetNamesInput"}
 21060  	if s.MaxResults != nil && *s.MaxResults < 1 {
 21061  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 21062  	}
 21063  	if s.SchemaArn == nil {
 21064  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 21065  	}
 21066  
 21067  	if invalidParams.Len() > 0 {
 21068  		return invalidParams
 21069  	}
 21070  	return nil
 21071  }
 21072  
 21073  // SetMaxResults sets the MaxResults field's value.
 21074  func (s *ListTypedLinkFacetNamesInput) SetMaxResults(v int64) *ListTypedLinkFacetNamesInput {
 21075  	s.MaxResults = &v
 21076  	return s
 21077  }
 21078  
 21079  // SetNextToken sets the NextToken field's value.
 21080  func (s *ListTypedLinkFacetNamesInput) SetNextToken(v string) *ListTypedLinkFacetNamesInput {
 21081  	s.NextToken = &v
 21082  	return s
 21083  }
 21084  
 21085  // SetSchemaArn sets the SchemaArn field's value.
 21086  func (s *ListTypedLinkFacetNamesInput) SetSchemaArn(v string) *ListTypedLinkFacetNamesInput {
 21087  	s.SchemaArn = &v
 21088  	return s
 21089  }
 21090  
 21091  type ListTypedLinkFacetNamesOutput struct {
 21092  	_ struct{} `type:"structure"`
 21093  
 21094  	// The names of typed link facets that exist within the schema.
 21095  	FacetNames []*string `type:"list"`
 21096  
 21097  	// The pagination token.
 21098  	NextToken *string `type:"string"`
 21099  }
 21100  
 21101  // String returns the string representation.
 21102  //
 21103  // API parameter values that are decorated as "sensitive" in the API will not
 21104  // be included in the string output. The member name will be present, but the
 21105  // value will be replaced with "sensitive".
 21106  func (s ListTypedLinkFacetNamesOutput) String() string {
 21107  	return awsutil.Prettify(s)
 21108  }
 21109  
 21110  // GoString returns the string representation.
 21111  //
 21112  // API parameter values that are decorated as "sensitive" in the API will not
 21113  // be included in the string output. The member name will be present, but the
 21114  // value will be replaced with "sensitive".
 21115  func (s ListTypedLinkFacetNamesOutput) GoString() string {
 21116  	return s.String()
 21117  }
 21118  
 21119  // SetFacetNames sets the FacetNames field's value.
 21120  func (s *ListTypedLinkFacetNamesOutput) SetFacetNames(v []*string) *ListTypedLinkFacetNamesOutput {
 21121  	s.FacetNames = v
 21122  	return s
 21123  }
 21124  
 21125  // SetNextToken sets the NextToken field's value.
 21126  func (s *ListTypedLinkFacetNamesOutput) SetNextToken(v string) *ListTypedLinkFacetNamesOutput {
 21127  	s.NextToken = &v
 21128  	return s
 21129  }
 21130  
 21131  type LookupPolicyInput struct {
 21132  	_ struct{} `type:"structure"`
 21133  
 21134  	// The Amazon Resource Name (ARN) that is associated with the Directory. For
 21135  	// more information, see arns.
 21136  	//
 21137  	// DirectoryArn is a required field
 21138  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 21139  
 21140  	// The maximum number of items to be retrieved in a single call. This is an
 21141  	// approximate number.
 21142  	MaxResults *int64 `min:"1" type:"integer"`
 21143  
 21144  	// The token to request the next page of results.
 21145  	NextToken *string `type:"string"`
 21146  
 21147  	// Reference that identifies the object whose policies will be looked up.
 21148  	//
 21149  	// ObjectReference is a required field
 21150  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 21151  }
 21152  
 21153  // String returns the string representation.
 21154  //
 21155  // API parameter values that are decorated as "sensitive" in the API will not
 21156  // be included in the string output. The member name will be present, but the
 21157  // value will be replaced with "sensitive".
 21158  func (s LookupPolicyInput) String() string {
 21159  	return awsutil.Prettify(s)
 21160  }
 21161  
 21162  // GoString returns the string representation.
 21163  //
 21164  // API parameter values that are decorated as "sensitive" in the API will not
 21165  // be included in the string output. The member name will be present, but the
 21166  // value will be replaced with "sensitive".
 21167  func (s LookupPolicyInput) GoString() string {
 21168  	return s.String()
 21169  }
 21170  
 21171  // Validate inspects the fields of the type to determine if they are valid.
 21172  func (s *LookupPolicyInput) Validate() error {
 21173  	invalidParams := request.ErrInvalidParams{Context: "LookupPolicyInput"}
 21174  	if s.DirectoryArn == nil {
 21175  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 21176  	}
 21177  	if s.MaxResults != nil && *s.MaxResults < 1 {
 21178  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 21179  	}
 21180  	if s.ObjectReference == nil {
 21181  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 21182  	}
 21183  
 21184  	if invalidParams.Len() > 0 {
 21185  		return invalidParams
 21186  	}
 21187  	return nil
 21188  }
 21189  
 21190  // SetDirectoryArn sets the DirectoryArn field's value.
 21191  func (s *LookupPolicyInput) SetDirectoryArn(v string) *LookupPolicyInput {
 21192  	s.DirectoryArn = &v
 21193  	return s
 21194  }
 21195  
 21196  // SetMaxResults sets the MaxResults field's value.
 21197  func (s *LookupPolicyInput) SetMaxResults(v int64) *LookupPolicyInput {
 21198  	s.MaxResults = &v
 21199  	return s
 21200  }
 21201  
 21202  // SetNextToken sets the NextToken field's value.
 21203  func (s *LookupPolicyInput) SetNextToken(v string) *LookupPolicyInput {
 21204  	s.NextToken = &v
 21205  	return s
 21206  }
 21207  
 21208  // SetObjectReference sets the ObjectReference field's value.
 21209  func (s *LookupPolicyInput) SetObjectReference(v *ObjectReference) *LookupPolicyInput {
 21210  	s.ObjectReference = v
 21211  	return s
 21212  }
 21213  
 21214  type LookupPolicyOutput struct {
 21215  	_ struct{} `type:"structure"`
 21216  
 21217  	// The pagination token.
 21218  	NextToken *string `type:"string"`
 21219  
 21220  	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
 21221  	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 21222  	PolicyToPathList []*PolicyToPath `type:"list"`
 21223  }
 21224  
 21225  // String returns the string representation.
 21226  //
 21227  // API parameter values that are decorated as "sensitive" in the API will not
 21228  // be included in the string output. The member name will be present, but the
 21229  // value will be replaced with "sensitive".
 21230  func (s LookupPolicyOutput) String() string {
 21231  	return awsutil.Prettify(s)
 21232  }
 21233  
 21234  // GoString returns the string representation.
 21235  //
 21236  // API parameter values that are decorated as "sensitive" in the API will not
 21237  // be included in the string output. The member name will be present, but the
 21238  // value will be replaced with "sensitive".
 21239  func (s LookupPolicyOutput) GoString() string {
 21240  	return s.String()
 21241  }
 21242  
 21243  // SetNextToken sets the NextToken field's value.
 21244  func (s *LookupPolicyOutput) SetNextToken(v string) *LookupPolicyOutput {
 21245  	s.NextToken = &v
 21246  	return s
 21247  }
 21248  
 21249  // SetPolicyToPathList sets the PolicyToPathList field's value.
 21250  func (s *LookupPolicyOutput) SetPolicyToPathList(v []*PolicyToPath) *LookupPolicyOutput {
 21251  	s.PolicyToPathList = v
 21252  	return s
 21253  }
 21254  
 21255  // Indicates that the requested operation can only operate on index objects.
 21256  type NotIndexException struct {
 21257  	_            struct{}                  `type:"structure"`
 21258  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21259  
 21260  	Message_ *string `locationName:"Message" type:"string"`
 21261  }
 21262  
 21263  // String returns the string representation.
 21264  //
 21265  // API parameter values that are decorated as "sensitive" in the API will not
 21266  // be included in the string output. The member name will be present, but the
 21267  // value will be replaced with "sensitive".
 21268  func (s NotIndexException) String() string {
 21269  	return awsutil.Prettify(s)
 21270  }
 21271  
 21272  // GoString returns the string representation.
 21273  //
 21274  // API parameter values that are decorated as "sensitive" in the API will not
 21275  // be included in the string output. The member name will be present, but the
 21276  // value will be replaced with "sensitive".
 21277  func (s NotIndexException) GoString() string {
 21278  	return s.String()
 21279  }
 21280  
 21281  func newErrorNotIndexException(v protocol.ResponseMetadata) error {
 21282  	return &NotIndexException{
 21283  		RespMetadata: v,
 21284  	}
 21285  }
 21286  
 21287  // Code returns the exception type name.
 21288  func (s *NotIndexException) Code() string {
 21289  	return "NotIndexException"
 21290  }
 21291  
 21292  // Message returns the exception's message.
 21293  func (s *NotIndexException) Message() string {
 21294  	if s.Message_ != nil {
 21295  		return *s.Message_
 21296  	}
 21297  	return ""
 21298  }
 21299  
 21300  // OrigErr always returns nil, satisfies awserr.Error interface.
 21301  func (s *NotIndexException) OrigErr() error {
 21302  	return nil
 21303  }
 21304  
 21305  func (s *NotIndexException) Error() string {
 21306  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21307  }
 21308  
 21309  // Status code returns the HTTP status code for the request's response error.
 21310  func (s *NotIndexException) StatusCode() int {
 21311  	return s.RespMetadata.StatusCode
 21312  }
 21313  
 21314  // RequestID returns the service's response RequestID for request.
 21315  func (s *NotIndexException) RequestID() string {
 21316  	return s.RespMetadata.RequestID
 21317  }
 21318  
 21319  // Occurs when any invalid operations are performed on an object that is not
 21320  // a node, such as calling ListObjectChildren for a leaf node object.
 21321  type NotNodeException struct {
 21322  	_            struct{}                  `type:"structure"`
 21323  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21324  
 21325  	Message_ *string `locationName:"Message" type:"string"`
 21326  }
 21327  
 21328  // String returns the string representation.
 21329  //
 21330  // API parameter values that are decorated as "sensitive" in the API will not
 21331  // be included in the string output. The member name will be present, but the
 21332  // value will be replaced with "sensitive".
 21333  func (s NotNodeException) String() string {
 21334  	return awsutil.Prettify(s)
 21335  }
 21336  
 21337  // GoString returns the string representation.
 21338  //
 21339  // API parameter values that are decorated as "sensitive" in the API will not
 21340  // be included in the string output. The member name will be present, but the
 21341  // value will be replaced with "sensitive".
 21342  func (s NotNodeException) GoString() string {
 21343  	return s.String()
 21344  }
 21345  
 21346  func newErrorNotNodeException(v protocol.ResponseMetadata) error {
 21347  	return &NotNodeException{
 21348  		RespMetadata: v,
 21349  	}
 21350  }
 21351  
 21352  // Code returns the exception type name.
 21353  func (s *NotNodeException) Code() string {
 21354  	return "NotNodeException"
 21355  }
 21356  
 21357  // Message returns the exception's message.
 21358  func (s *NotNodeException) Message() string {
 21359  	if s.Message_ != nil {
 21360  		return *s.Message_
 21361  	}
 21362  	return ""
 21363  }
 21364  
 21365  // OrigErr always returns nil, satisfies awserr.Error interface.
 21366  func (s *NotNodeException) OrigErr() error {
 21367  	return nil
 21368  }
 21369  
 21370  func (s *NotNodeException) Error() string {
 21371  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21372  }
 21373  
 21374  // Status code returns the HTTP status code for the request's response error.
 21375  func (s *NotNodeException) StatusCode() int {
 21376  	return s.RespMetadata.StatusCode
 21377  }
 21378  
 21379  // RequestID returns the service's response RequestID for request.
 21380  func (s *NotNodeException) RequestID() string {
 21381  	return s.RespMetadata.RequestID
 21382  }
 21383  
 21384  // Indicates that the requested operation can only operate on policy objects.
 21385  type NotPolicyException struct {
 21386  	_            struct{}                  `type:"structure"`
 21387  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21388  
 21389  	Message_ *string `locationName:"Message" type:"string"`
 21390  }
 21391  
 21392  // String returns the string representation.
 21393  //
 21394  // API parameter values that are decorated as "sensitive" in the API will not
 21395  // be included in the string output. The member name will be present, but the
 21396  // value will be replaced with "sensitive".
 21397  func (s NotPolicyException) String() string {
 21398  	return awsutil.Prettify(s)
 21399  }
 21400  
 21401  // GoString returns the string representation.
 21402  //
 21403  // API parameter values that are decorated as "sensitive" in the API will not
 21404  // be included in the string output. The member name will be present, but the
 21405  // value will be replaced with "sensitive".
 21406  func (s NotPolicyException) GoString() string {
 21407  	return s.String()
 21408  }
 21409  
 21410  func newErrorNotPolicyException(v protocol.ResponseMetadata) error {
 21411  	return &NotPolicyException{
 21412  		RespMetadata: v,
 21413  	}
 21414  }
 21415  
 21416  // Code returns the exception type name.
 21417  func (s *NotPolicyException) Code() string {
 21418  	return "NotPolicyException"
 21419  }
 21420  
 21421  // Message returns the exception's message.
 21422  func (s *NotPolicyException) Message() string {
 21423  	if s.Message_ != nil {
 21424  		return *s.Message_
 21425  	}
 21426  	return ""
 21427  }
 21428  
 21429  // OrigErr always returns nil, satisfies awserr.Error interface.
 21430  func (s *NotPolicyException) OrigErr() error {
 21431  	return nil
 21432  }
 21433  
 21434  func (s *NotPolicyException) Error() string {
 21435  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21436  }
 21437  
 21438  // Status code returns the HTTP status code for the request's response error.
 21439  func (s *NotPolicyException) StatusCode() int {
 21440  	return s.RespMetadata.StatusCode
 21441  }
 21442  
 21443  // RequestID returns the service's response RequestID for request.
 21444  func (s *NotPolicyException) RequestID() string {
 21445  	return s.RespMetadata.RequestID
 21446  }
 21447  
 21448  // Indicates that the object is not attached to the index.
 21449  type ObjectAlreadyDetachedException struct {
 21450  	_            struct{}                  `type:"structure"`
 21451  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21452  
 21453  	Message_ *string `locationName:"Message" type:"string"`
 21454  }
 21455  
 21456  // String returns the string representation.
 21457  //
 21458  // API parameter values that are decorated as "sensitive" in the API will not
 21459  // be included in the string output. The member name will be present, but the
 21460  // value will be replaced with "sensitive".
 21461  func (s ObjectAlreadyDetachedException) String() string {
 21462  	return awsutil.Prettify(s)
 21463  }
 21464  
 21465  // GoString returns the string representation.
 21466  //
 21467  // API parameter values that are decorated as "sensitive" in the API will not
 21468  // be included in the string output. The member name will be present, but the
 21469  // value will be replaced with "sensitive".
 21470  func (s ObjectAlreadyDetachedException) GoString() string {
 21471  	return s.String()
 21472  }
 21473  
 21474  func newErrorObjectAlreadyDetachedException(v protocol.ResponseMetadata) error {
 21475  	return &ObjectAlreadyDetachedException{
 21476  		RespMetadata: v,
 21477  	}
 21478  }
 21479  
 21480  // Code returns the exception type name.
 21481  func (s *ObjectAlreadyDetachedException) Code() string {
 21482  	return "ObjectAlreadyDetachedException"
 21483  }
 21484  
 21485  // Message returns the exception's message.
 21486  func (s *ObjectAlreadyDetachedException) Message() string {
 21487  	if s.Message_ != nil {
 21488  		return *s.Message_
 21489  	}
 21490  	return ""
 21491  }
 21492  
 21493  // OrigErr always returns nil, satisfies awserr.Error interface.
 21494  func (s *ObjectAlreadyDetachedException) OrigErr() error {
 21495  	return nil
 21496  }
 21497  
 21498  func (s *ObjectAlreadyDetachedException) Error() string {
 21499  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21500  }
 21501  
 21502  // Status code returns the HTTP status code for the request's response error.
 21503  func (s *ObjectAlreadyDetachedException) StatusCode() int {
 21504  	return s.RespMetadata.StatusCode
 21505  }
 21506  
 21507  // RequestID returns the service's response RequestID for request.
 21508  func (s *ObjectAlreadyDetachedException) RequestID() string {
 21509  	return s.RespMetadata.RequestID
 21510  }
 21511  
 21512  // The action to take on the object attribute.
 21513  type ObjectAttributeAction struct {
 21514  	_ struct{} `type:"structure"`
 21515  
 21516  	// A type that can be either Update or Delete.
 21517  	ObjectAttributeActionType *string `type:"string" enum:"UpdateActionType"`
 21518  
 21519  	// The value that you want to update to.
 21520  	ObjectAttributeUpdateValue *TypedAttributeValue `type:"structure"`
 21521  }
 21522  
 21523  // String returns the string representation.
 21524  //
 21525  // API parameter values that are decorated as "sensitive" in the API will not
 21526  // be included in the string output. The member name will be present, but the
 21527  // value will be replaced with "sensitive".
 21528  func (s ObjectAttributeAction) String() string {
 21529  	return awsutil.Prettify(s)
 21530  }
 21531  
 21532  // GoString returns the string representation.
 21533  //
 21534  // API parameter values that are decorated as "sensitive" in the API will not
 21535  // be included in the string output. The member name will be present, but the
 21536  // value will be replaced with "sensitive".
 21537  func (s ObjectAttributeAction) GoString() string {
 21538  	return s.String()
 21539  }
 21540  
 21541  // SetObjectAttributeActionType sets the ObjectAttributeActionType field's value.
 21542  func (s *ObjectAttributeAction) SetObjectAttributeActionType(v string) *ObjectAttributeAction {
 21543  	s.ObjectAttributeActionType = &v
 21544  	return s
 21545  }
 21546  
 21547  // SetObjectAttributeUpdateValue sets the ObjectAttributeUpdateValue field's value.
 21548  func (s *ObjectAttributeAction) SetObjectAttributeUpdateValue(v *TypedAttributeValue) *ObjectAttributeAction {
 21549  	s.ObjectAttributeUpdateValue = v
 21550  	return s
 21551  }
 21552  
 21553  // A range of attributes.
 21554  type ObjectAttributeRange struct {
 21555  	_ struct{} `type:"structure"`
 21556  
 21557  	// The key of the attribute that the attribute range covers.
 21558  	AttributeKey *AttributeKey `type:"structure"`
 21559  
 21560  	// The range of attribute values being selected.
 21561  	Range *TypedAttributeValueRange `type:"structure"`
 21562  }
 21563  
 21564  // String returns the string representation.
 21565  //
 21566  // API parameter values that are decorated as "sensitive" in the API will not
 21567  // be included in the string output. The member name will be present, but the
 21568  // value will be replaced with "sensitive".
 21569  func (s ObjectAttributeRange) String() string {
 21570  	return awsutil.Prettify(s)
 21571  }
 21572  
 21573  // GoString returns the string representation.
 21574  //
 21575  // API parameter values that are decorated as "sensitive" in the API will not
 21576  // be included in the string output. The member name will be present, but the
 21577  // value will be replaced with "sensitive".
 21578  func (s ObjectAttributeRange) GoString() string {
 21579  	return s.String()
 21580  }
 21581  
 21582  // Validate inspects the fields of the type to determine if they are valid.
 21583  func (s *ObjectAttributeRange) Validate() error {
 21584  	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeRange"}
 21585  	if s.AttributeKey != nil {
 21586  		if err := s.AttributeKey.Validate(); err != nil {
 21587  			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
 21588  		}
 21589  	}
 21590  	if s.Range != nil {
 21591  		if err := s.Range.Validate(); err != nil {
 21592  			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
 21593  		}
 21594  	}
 21595  
 21596  	if invalidParams.Len() > 0 {
 21597  		return invalidParams
 21598  	}
 21599  	return nil
 21600  }
 21601  
 21602  // SetAttributeKey sets the AttributeKey field's value.
 21603  func (s *ObjectAttributeRange) SetAttributeKey(v *AttributeKey) *ObjectAttributeRange {
 21604  	s.AttributeKey = v
 21605  	return s
 21606  }
 21607  
 21608  // SetRange sets the Range field's value.
 21609  func (s *ObjectAttributeRange) SetRange(v *TypedAttributeValueRange) *ObjectAttributeRange {
 21610  	s.Range = v
 21611  	return s
 21612  }
 21613  
 21614  // Structure that contains attribute update information.
 21615  type ObjectAttributeUpdate struct {
 21616  	_ struct{} `type:"structure"`
 21617  
 21618  	// The action to perform as part of the attribute update.
 21619  	ObjectAttributeAction *ObjectAttributeAction `type:"structure"`
 21620  
 21621  	// The key of the attribute being updated.
 21622  	ObjectAttributeKey *AttributeKey `type:"structure"`
 21623  }
 21624  
 21625  // String returns the string representation.
 21626  //
 21627  // API parameter values that are decorated as "sensitive" in the API will not
 21628  // be included in the string output. The member name will be present, but the
 21629  // value will be replaced with "sensitive".
 21630  func (s ObjectAttributeUpdate) String() string {
 21631  	return awsutil.Prettify(s)
 21632  }
 21633  
 21634  // GoString returns the string representation.
 21635  //
 21636  // API parameter values that are decorated as "sensitive" in the API will not
 21637  // be included in the string output. The member name will be present, but the
 21638  // value will be replaced with "sensitive".
 21639  func (s ObjectAttributeUpdate) GoString() string {
 21640  	return s.String()
 21641  }
 21642  
 21643  // Validate inspects the fields of the type to determine if they are valid.
 21644  func (s *ObjectAttributeUpdate) Validate() error {
 21645  	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeUpdate"}
 21646  	if s.ObjectAttributeKey != nil {
 21647  		if err := s.ObjectAttributeKey.Validate(); err != nil {
 21648  			invalidParams.AddNested("ObjectAttributeKey", err.(request.ErrInvalidParams))
 21649  		}
 21650  	}
 21651  
 21652  	if invalidParams.Len() > 0 {
 21653  		return invalidParams
 21654  	}
 21655  	return nil
 21656  }
 21657  
 21658  // SetObjectAttributeAction sets the ObjectAttributeAction field's value.
 21659  func (s *ObjectAttributeUpdate) SetObjectAttributeAction(v *ObjectAttributeAction) *ObjectAttributeUpdate {
 21660  	s.ObjectAttributeAction = v
 21661  	return s
 21662  }
 21663  
 21664  // SetObjectAttributeKey sets the ObjectAttributeKey field's value.
 21665  func (s *ObjectAttributeUpdate) SetObjectAttributeKey(v *AttributeKey) *ObjectAttributeUpdate {
 21666  	s.ObjectAttributeKey = v
 21667  	return s
 21668  }
 21669  
 21670  // A pair of ObjectIdentifier and LinkName.
 21671  type ObjectIdentifierAndLinkNameTuple struct {
 21672  	_ struct{} `type:"structure"`
 21673  
 21674  	// The name of the link between the parent and the child object.
 21675  	LinkName *string `min:"1" type:"string"`
 21676  
 21677  	// The ID that is associated with the object.
 21678  	ObjectIdentifier *string `type:"string"`
 21679  }
 21680  
 21681  // String returns the string representation.
 21682  //
 21683  // API parameter values that are decorated as "sensitive" in the API will not
 21684  // be included in the string output. The member name will be present, but the
 21685  // value will be replaced with "sensitive".
 21686  func (s ObjectIdentifierAndLinkNameTuple) String() string {
 21687  	return awsutil.Prettify(s)
 21688  }
 21689  
 21690  // GoString returns the string representation.
 21691  //
 21692  // API parameter values that are decorated as "sensitive" in the API will not
 21693  // be included in the string output. The member name will be present, but the
 21694  // value will be replaced with "sensitive".
 21695  func (s ObjectIdentifierAndLinkNameTuple) GoString() string {
 21696  	return s.String()
 21697  }
 21698  
 21699  // SetLinkName sets the LinkName field's value.
 21700  func (s *ObjectIdentifierAndLinkNameTuple) SetLinkName(v string) *ObjectIdentifierAndLinkNameTuple {
 21701  	s.LinkName = &v
 21702  	return s
 21703  }
 21704  
 21705  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 21706  func (s *ObjectIdentifierAndLinkNameTuple) SetObjectIdentifier(v string) *ObjectIdentifierAndLinkNameTuple {
 21707  	s.ObjectIdentifier = &v
 21708  	return s
 21709  }
 21710  
 21711  // Indicates that the requested operation cannot be completed because the object
 21712  // has not been detached from the tree.
 21713  type ObjectNotDetachedException struct {
 21714  	_            struct{}                  `type:"structure"`
 21715  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21716  
 21717  	Message_ *string `locationName:"Message" type:"string"`
 21718  }
 21719  
 21720  // String returns the string representation.
 21721  //
 21722  // API parameter values that are decorated as "sensitive" in the API will not
 21723  // be included in the string output. The member name will be present, but the
 21724  // value will be replaced with "sensitive".
 21725  func (s ObjectNotDetachedException) String() string {
 21726  	return awsutil.Prettify(s)
 21727  }
 21728  
 21729  // GoString returns the string representation.
 21730  //
 21731  // API parameter values that are decorated as "sensitive" in the API will not
 21732  // be included in the string output. The member name will be present, but the
 21733  // value will be replaced with "sensitive".
 21734  func (s ObjectNotDetachedException) GoString() string {
 21735  	return s.String()
 21736  }
 21737  
 21738  func newErrorObjectNotDetachedException(v protocol.ResponseMetadata) error {
 21739  	return &ObjectNotDetachedException{
 21740  		RespMetadata: v,
 21741  	}
 21742  }
 21743  
 21744  // Code returns the exception type name.
 21745  func (s *ObjectNotDetachedException) Code() string {
 21746  	return "ObjectNotDetachedException"
 21747  }
 21748  
 21749  // Message returns the exception's message.
 21750  func (s *ObjectNotDetachedException) Message() string {
 21751  	if s.Message_ != nil {
 21752  		return *s.Message_
 21753  	}
 21754  	return ""
 21755  }
 21756  
 21757  // OrigErr always returns nil, satisfies awserr.Error interface.
 21758  func (s *ObjectNotDetachedException) OrigErr() error {
 21759  	return nil
 21760  }
 21761  
 21762  func (s *ObjectNotDetachedException) Error() string {
 21763  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21764  }
 21765  
 21766  // Status code returns the HTTP status code for the request's response error.
 21767  func (s *ObjectNotDetachedException) StatusCode() int {
 21768  	return s.RespMetadata.StatusCode
 21769  }
 21770  
 21771  // RequestID returns the service's response RequestID for request.
 21772  func (s *ObjectNotDetachedException) RequestID() string {
 21773  	return s.RespMetadata.RequestID
 21774  }
 21775  
 21776  // The reference that identifies an object.
 21777  type ObjectReference struct {
 21778  	_ struct{} `type:"structure"`
 21779  
 21780  	// A path selector supports easy selection of an object by the parent/child
 21781  	// links leading to it from the directory root. Use the link names from each
 21782  	// parent/child link to construct the path. Path selectors start with a slash
 21783  	// (/) and link names are separated by slashes. For more information about paths,
 21784  	// see Access Objects (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html).
 21785  	// You can identify an object in one of the following ways:
 21786  	//
 21787  	//    * $ObjectIdentifier - An object identifier is an opaque string provided
 21788  	//    by Amazon Cloud Directory. When creating objects, the system will provide
 21789  	//    you with the identifier of the created object. An object’s identifier
 21790  	//    is immutable and no two objects will ever share the same object identifier.
 21791  	//    To identify an object with ObjectIdentifier, the ObjectIdentifier must
 21792  	//    be wrapped in double quotes.
 21793  	//
 21794  	//    * /some/path - Identifies the object based on path
 21795  	//
 21796  	//    * #SomeBatchReference - Identifies the object in a batch call
 21797  	Selector *string `type:"string"`
 21798  }
 21799  
 21800  // String returns the string representation.
 21801  //
 21802  // API parameter values that are decorated as "sensitive" in the API will not
 21803  // be included in the string output. The member name will be present, but the
 21804  // value will be replaced with "sensitive".
 21805  func (s ObjectReference) String() string {
 21806  	return awsutil.Prettify(s)
 21807  }
 21808  
 21809  // GoString returns the string representation.
 21810  //
 21811  // API parameter values that are decorated as "sensitive" in the API will not
 21812  // be included in the string output. The member name will be present, but the
 21813  // value will be replaced with "sensitive".
 21814  func (s ObjectReference) GoString() string {
 21815  	return s.String()
 21816  }
 21817  
 21818  // SetSelector sets the Selector field's value.
 21819  func (s *ObjectReference) SetSelector(v string) *ObjectReference {
 21820  	s.Selector = &v
 21821  	return s
 21822  }
 21823  
 21824  // Returns the path to the ObjectIdentifiers that is associated with the directory.
 21825  type PathToObjectIdentifiers struct {
 21826  	_ struct{} `type:"structure"`
 21827  
 21828  	// Lists ObjectIdentifiers starting from directory root to the object in the
 21829  	// request.
 21830  	ObjectIdentifiers []*string `type:"list"`
 21831  
 21832  	// The path that is used to identify the object starting from directory root.
 21833  	Path *string `type:"string"`
 21834  }
 21835  
 21836  // String returns the string representation.
 21837  //
 21838  // API parameter values that are decorated as "sensitive" in the API will not
 21839  // be included in the string output. The member name will be present, but the
 21840  // value will be replaced with "sensitive".
 21841  func (s PathToObjectIdentifiers) String() string {
 21842  	return awsutil.Prettify(s)
 21843  }
 21844  
 21845  // GoString returns the string representation.
 21846  //
 21847  // API parameter values that are decorated as "sensitive" in the API will not
 21848  // be included in the string output. The member name will be present, but the
 21849  // value will be replaced with "sensitive".
 21850  func (s PathToObjectIdentifiers) GoString() string {
 21851  	return s.String()
 21852  }
 21853  
 21854  // SetObjectIdentifiers sets the ObjectIdentifiers field's value.
 21855  func (s *PathToObjectIdentifiers) SetObjectIdentifiers(v []*string) *PathToObjectIdentifiers {
 21856  	s.ObjectIdentifiers = v
 21857  	return s
 21858  }
 21859  
 21860  // SetPath sets the Path field's value.
 21861  func (s *PathToObjectIdentifiers) SetPath(v string) *PathToObjectIdentifiers {
 21862  	s.Path = &v
 21863  	return s
 21864  }
 21865  
 21866  // Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
 21867  // attached. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
 21868  type PolicyAttachment struct {
 21869  	_ struct{} `type:"structure"`
 21870  
 21871  	// The ObjectIdentifier that is associated with PolicyAttachment.
 21872  	ObjectIdentifier *string `type:"string"`
 21873  
 21874  	// The ID of PolicyAttachment.
 21875  	PolicyId *string `type:"string"`
 21876  
 21877  	// The type of policy that can be associated with PolicyAttachment.
 21878  	PolicyType *string `type:"string"`
 21879  }
 21880  
 21881  // String returns the string representation.
 21882  //
 21883  // API parameter values that are decorated as "sensitive" in the API will not
 21884  // be included in the string output. The member name will be present, but the
 21885  // value will be replaced with "sensitive".
 21886  func (s PolicyAttachment) String() string {
 21887  	return awsutil.Prettify(s)
 21888  }
 21889  
 21890  // GoString returns the string representation.
 21891  //
 21892  // API parameter values that are decorated as "sensitive" in the API will not
 21893  // be included in the string output. The member name will be present, but the
 21894  // value will be replaced with "sensitive".
 21895  func (s PolicyAttachment) GoString() string {
 21896  	return s.String()
 21897  }
 21898  
 21899  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 21900  func (s *PolicyAttachment) SetObjectIdentifier(v string) *PolicyAttachment {
 21901  	s.ObjectIdentifier = &v
 21902  	return s
 21903  }
 21904  
 21905  // SetPolicyId sets the PolicyId field's value.
 21906  func (s *PolicyAttachment) SetPolicyId(v string) *PolicyAttachment {
 21907  	s.PolicyId = &v
 21908  	return s
 21909  }
 21910  
 21911  // SetPolicyType sets the PolicyType field's value.
 21912  func (s *PolicyAttachment) SetPolicyType(v string) *PolicyAttachment {
 21913  	s.PolicyType = &v
 21914  	return s
 21915  }
 21916  
 21917  // Used when a regular object exists in a Directory and you want to find all
 21918  // of the policies that are associated with that object and the parent to that
 21919  // object.
 21920  type PolicyToPath struct {
 21921  	_ struct{} `type:"structure"`
 21922  
 21923  	// The path that is referenced from the root.
 21924  	Path *string `type:"string"`
 21925  
 21926  	// List of policy objects.
 21927  	Policies []*PolicyAttachment `type:"list"`
 21928  }
 21929  
 21930  // String returns the string representation.
 21931  //
 21932  // API parameter values that are decorated as "sensitive" in the API will not
 21933  // be included in the string output. The member name will be present, but the
 21934  // value will be replaced with "sensitive".
 21935  func (s PolicyToPath) String() string {
 21936  	return awsutil.Prettify(s)
 21937  }
 21938  
 21939  // GoString returns the string representation.
 21940  //
 21941  // API parameter values that are decorated as "sensitive" in the API will not
 21942  // be included in the string output. The member name will be present, but the
 21943  // value will be replaced with "sensitive".
 21944  func (s PolicyToPath) GoString() string {
 21945  	return s.String()
 21946  }
 21947  
 21948  // SetPath sets the Path field's value.
 21949  func (s *PolicyToPath) SetPath(v string) *PolicyToPath {
 21950  	s.Path = &v
 21951  	return s
 21952  }
 21953  
 21954  // SetPolicies sets the Policies field's value.
 21955  func (s *PolicyToPath) SetPolicies(v []*PolicyAttachment) *PolicyToPath {
 21956  	s.Policies = v
 21957  	return s
 21958  }
 21959  
 21960  type PublishSchemaInput struct {
 21961  	_ struct{} `type:"structure"`
 21962  
 21963  	// The Amazon Resource Name (ARN) that is associated with the development schema.
 21964  	// For more information, see arns.
 21965  	//
 21966  	// DevelopmentSchemaArn is a required field
 21967  	DevelopmentSchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 21968  
 21969  	// The minor version under which the schema will be published. This parameter
 21970  	// is recommended. Schemas have both a major and minor version associated with
 21971  	// them.
 21972  	MinorVersion *string `min:"1" type:"string"`
 21973  
 21974  	// The new name under which the schema will be published. If this is not provided,
 21975  	// the development schema is considered.
 21976  	Name *string `min:"1" type:"string"`
 21977  
 21978  	// The major version under which the schema will be published. Schemas have
 21979  	// both a major and minor version associated with them.
 21980  	//
 21981  	// Version is a required field
 21982  	Version *string `min:"1" type:"string" required:"true"`
 21983  }
 21984  
 21985  // String returns the string representation.
 21986  //
 21987  // API parameter values that are decorated as "sensitive" in the API will not
 21988  // be included in the string output. The member name will be present, but the
 21989  // value will be replaced with "sensitive".
 21990  func (s PublishSchemaInput) String() string {
 21991  	return awsutil.Prettify(s)
 21992  }
 21993  
 21994  // GoString returns the string representation.
 21995  //
 21996  // API parameter values that are decorated as "sensitive" in the API will not
 21997  // be included in the string output. The member name will be present, but the
 21998  // value will be replaced with "sensitive".
 21999  func (s PublishSchemaInput) GoString() string {
 22000  	return s.String()
 22001  }
 22002  
 22003  // Validate inspects the fields of the type to determine if they are valid.
 22004  func (s *PublishSchemaInput) Validate() error {
 22005  	invalidParams := request.ErrInvalidParams{Context: "PublishSchemaInput"}
 22006  	if s.DevelopmentSchemaArn == nil {
 22007  		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
 22008  	}
 22009  	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
 22010  		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
 22011  	}
 22012  	if s.Name != nil && len(*s.Name) < 1 {
 22013  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 22014  	}
 22015  	if s.Version == nil {
 22016  		invalidParams.Add(request.NewErrParamRequired("Version"))
 22017  	}
 22018  	if s.Version != nil && len(*s.Version) < 1 {
 22019  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
 22020  	}
 22021  
 22022  	if invalidParams.Len() > 0 {
 22023  		return invalidParams
 22024  	}
 22025  	return nil
 22026  }
 22027  
 22028  // SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
 22029  func (s *PublishSchemaInput) SetDevelopmentSchemaArn(v string) *PublishSchemaInput {
 22030  	s.DevelopmentSchemaArn = &v
 22031  	return s
 22032  }
 22033  
 22034  // SetMinorVersion sets the MinorVersion field's value.
 22035  func (s *PublishSchemaInput) SetMinorVersion(v string) *PublishSchemaInput {
 22036  	s.MinorVersion = &v
 22037  	return s
 22038  }
 22039  
 22040  // SetName sets the Name field's value.
 22041  func (s *PublishSchemaInput) SetName(v string) *PublishSchemaInput {
 22042  	s.Name = &v
 22043  	return s
 22044  }
 22045  
 22046  // SetVersion sets the Version field's value.
 22047  func (s *PublishSchemaInput) SetVersion(v string) *PublishSchemaInput {
 22048  	s.Version = &v
 22049  	return s
 22050  }
 22051  
 22052  type PublishSchemaOutput struct {
 22053  	_ struct{} `type:"structure"`
 22054  
 22055  	// The ARN that is associated with the published schema. For more information,
 22056  	// see arns.
 22057  	PublishedSchemaArn *string `type:"string"`
 22058  }
 22059  
 22060  // String returns the string representation.
 22061  //
 22062  // API parameter values that are decorated as "sensitive" in the API will not
 22063  // be included in the string output. The member name will be present, but the
 22064  // value will be replaced with "sensitive".
 22065  func (s PublishSchemaOutput) String() string {
 22066  	return awsutil.Prettify(s)
 22067  }
 22068  
 22069  // GoString returns the string representation.
 22070  //
 22071  // API parameter values that are decorated as "sensitive" in the API will not
 22072  // be included in the string output. The member name will be present, but the
 22073  // value will be replaced with "sensitive".
 22074  func (s PublishSchemaOutput) GoString() string {
 22075  	return s.String()
 22076  }
 22077  
 22078  // SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
 22079  func (s *PublishSchemaOutput) SetPublishedSchemaArn(v string) *PublishSchemaOutput {
 22080  	s.PublishedSchemaArn = &v
 22081  	return s
 22082  }
 22083  
 22084  type PutSchemaFromJsonInput struct {
 22085  	_ struct{} `type:"structure"`
 22086  
 22087  	// The replacement JSON schema.
 22088  	//
 22089  	// Document is a required field
 22090  	Document *string `type:"string" required:"true"`
 22091  
 22092  	// The ARN of the schema to update.
 22093  	//
 22094  	// SchemaArn is a required field
 22095  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 22096  }
 22097  
 22098  // String returns the string representation.
 22099  //
 22100  // API parameter values that are decorated as "sensitive" in the API will not
 22101  // be included in the string output. The member name will be present, but the
 22102  // value will be replaced with "sensitive".
 22103  func (s PutSchemaFromJsonInput) String() string {
 22104  	return awsutil.Prettify(s)
 22105  }
 22106  
 22107  // GoString returns the string representation.
 22108  //
 22109  // API parameter values that are decorated as "sensitive" in the API will not
 22110  // be included in the string output. The member name will be present, but the
 22111  // value will be replaced with "sensitive".
 22112  func (s PutSchemaFromJsonInput) GoString() string {
 22113  	return s.String()
 22114  }
 22115  
 22116  // Validate inspects the fields of the type to determine if they are valid.
 22117  func (s *PutSchemaFromJsonInput) Validate() error {
 22118  	invalidParams := request.ErrInvalidParams{Context: "PutSchemaFromJsonInput"}
 22119  	if s.Document == nil {
 22120  		invalidParams.Add(request.NewErrParamRequired("Document"))
 22121  	}
 22122  	if s.SchemaArn == nil {
 22123  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 22124  	}
 22125  
 22126  	if invalidParams.Len() > 0 {
 22127  		return invalidParams
 22128  	}
 22129  	return nil
 22130  }
 22131  
 22132  // SetDocument sets the Document field's value.
 22133  func (s *PutSchemaFromJsonInput) SetDocument(v string) *PutSchemaFromJsonInput {
 22134  	s.Document = &v
 22135  	return s
 22136  }
 22137  
 22138  // SetSchemaArn sets the SchemaArn field's value.
 22139  func (s *PutSchemaFromJsonInput) SetSchemaArn(v string) *PutSchemaFromJsonInput {
 22140  	s.SchemaArn = &v
 22141  	return s
 22142  }
 22143  
 22144  type PutSchemaFromJsonOutput struct {
 22145  	_ struct{} `type:"structure"`
 22146  
 22147  	// The ARN of the schema to update.
 22148  	Arn *string `type:"string"`
 22149  }
 22150  
 22151  // String returns the string representation.
 22152  //
 22153  // API parameter values that are decorated as "sensitive" in the API will not
 22154  // be included in the string output. The member name will be present, but the
 22155  // value will be replaced with "sensitive".
 22156  func (s PutSchemaFromJsonOutput) String() string {
 22157  	return awsutil.Prettify(s)
 22158  }
 22159  
 22160  // GoString returns the string representation.
 22161  //
 22162  // API parameter values that are decorated as "sensitive" in the API will not
 22163  // be included in the string output. The member name will be present, but the
 22164  // value will be replaced with "sensitive".
 22165  func (s PutSchemaFromJsonOutput) GoString() string {
 22166  	return s.String()
 22167  }
 22168  
 22169  // SetArn sets the Arn field's value.
 22170  func (s *PutSchemaFromJsonOutput) SetArn(v string) *PutSchemaFromJsonOutput {
 22171  	s.Arn = &v
 22172  	return s
 22173  }
 22174  
 22175  type RemoveFacetFromObjectInput struct {
 22176  	_ struct{} `type:"structure"`
 22177  
 22178  	// The ARN of the directory in which the object resides.
 22179  	//
 22180  	// DirectoryArn is a required field
 22181  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 22182  
 22183  	// A reference to the object to remove the facet from.
 22184  	//
 22185  	// ObjectReference is a required field
 22186  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 22187  
 22188  	// The facet to remove. See SchemaFacet for details.
 22189  	//
 22190  	// SchemaFacet is a required field
 22191  	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
 22192  }
 22193  
 22194  // String returns the string representation.
 22195  //
 22196  // API parameter values that are decorated as "sensitive" in the API will not
 22197  // be included in the string output. The member name will be present, but the
 22198  // value will be replaced with "sensitive".
 22199  func (s RemoveFacetFromObjectInput) String() string {
 22200  	return awsutil.Prettify(s)
 22201  }
 22202  
 22203  // GoString returns the string representation.
 22204  //
 22205  // API parameter values that are decorated as "sensitive" in the API will not
 22206  // be included in the string output. The member name will be present, but the
 22207  // value will be replaced with "sensitive".
 22208  func (s RemoveFacetFromObjectInput) GoString() string {
 22209  	return s.String()
 22210  }
 22211  
 22212  // Validate inspects the fields of the type to determine if they are valid.
 22213  func (s *RemoveFacetFromObjectInput) Validate() error {
 22214  	invalidParams := request.ErrInvalidParams{Context: "RemoveFacetFromObjectInput"}
 22215  	if s.DirectoryArn == nil {
 22216  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 22217  	}
 22218  	if s.ObjectReference == nil {
 22219  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 22220  	}
 22221  	if s.SchemaFacet == nil {
 22222  		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
 22223  	}
 22224  	if s.SchemaFacet != nil {
 22225  		if err := s.SchemaFacet.Validate(); err != nil {
 22226  			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
 22227  		}
 22228  	}
 22229  
 22230  	if invalidParams.Len() > 0 {
 22231  		return invalidParams
 22232  	}
 22233  	return nil
 22234  }
 22235  
 22236  // SetDirectoryArn sets the DirectoryArn field's value.
 22237  func (s *RemoveFacetFromObjectInput) SetDirectoryArn(v string) *RemoveFacetFromObjectInput {
 22238  	s.DirectoryArn = &v
 22239  	return s
 22240  }
 22241  
 22242  // SetObjectReference sets the ObjectReference field's value.
 22243  func (s *RemoveFacetFromObjectInput) SetObjectReference(v *ObjectReference) *RemoveFacetFromObjectInput {
 22244  	s.ObjectReference = v
 22245  	return s
 22246  }
 22247  
 22248  // SetSchemaFacet sets the SchemaFacet field's value.
 22249  func (s *RemoveFacetFromObjectInput) SetSchemaFacet(v *SchemaFacet) *RemoveFacetFromObjectInput {
 22250  	s.SchemaFacet = v
 22251  	return s
 22252  }
 22253  
 22254  type RemoveFacetFromObjectOutput struct {
 22255  	_ struct{} `type:"structure" nopayload:"true"`
 22256  }
 22257  
 22258  // String returns the string representation.
 22259  //
 22260  // API parameter values that are decorated as "sensitive" in the API will not
 22261  // be included in the string output. The member name will be present, but the
 22262  // value will be replaced with "sensitive".
 22263  func (s RemoveFacetFromObjectOutput) String() string {
 22264  	return awsutil.Prettify(s)
 22265  }
 22266  
 22267  // GoString returns the string representation.
 22268  //
 22269  // API parameter values that are decorated as "sensitive" in the API will not
 22270  // be included in the string output. The member name will be present, but the
 22271  // value will be replaced with "sensitive".
 22272  func (s RemoveFacetFromObjectOutput) GoString() string {
 22273  	return s.String()
 22274  }
 22275  
 22276  // The specified resource could not be found.
 22277  type ResourceNotFoundException struct {
 22278  	_            struct{}                  `type:"structure"`
 22279  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22280  
 22281  	Message_ *string `locationName:"Message" type:"string"`
 22282  }
 22283  
 22284  // String returns the string representation.
 22285  //
 22286  // API parameter values that are decorated as "sensitive" in the API will not
 22287  // be included in the string output. The member name will be present, but the
 22288  // value will be replaced with "sensitive".
 22289  func (s ResourceNotFoundException) String() string {
 22290  	return awsutil.Prettify(s)
 22291  }
 22292  
 22293  // GoString returns the string representation.
 22294  //
 22295  // API parameter values that are decorated as "sensitive" in the API will not
 22296  // be included in the string output. The member name will be present, but the
 22297  // value will be replaced with "sensitive".
 22298  func (s ResourceNotFoundException) GoString() string {
 22299  	return s.String()
 22300  }
 22301  
 22302  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 22303  	return &ResourceNotFoundException{
 22304  		RespMetadata: v,
 22305  	}
 22306  }
 22307  
 22308  // Code returns the exception type name.
 22309  func (s *ResourceNotFoundException) Code() string {
 22310  	return "ResourceNotFoundException"
 22311  }
 22312  
 22313  // Message returns the exception's message.
 22314  func (s *ResourceNotFoundException) Message() string {
 22315  	if s.Message_ != nil {
 22316  		return *s.Message_
 22317  	}
 22318  	return ""
 22319  }
 22320  
 22321  // OrigErr always returns nil, satisfies awserr.Error interface.
 22322  func (s *ResourceNotFoundException) OrigErr() error {
 22323  	return nil
 22324  }
 22325  
 22326  func (s *ResourceNotFoundException) Error() string {
 22327  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22328  }
 22329  
 22330  // Status code returns the HTTP status code for the request's response error.
 22331  func (s *ResourceNotFoundException) StatusCode() int {
 22332  	return s.RespMetadata.StatusCode
 22333  }
 22334  
 22335  // RequestID returns the service's response RequestID for request.
 22336  func (s *ResourceNotFoundException) RequestID() string {
 22337  	return s.RespMetadata.RequestID
 22338  }
 22339  
 22340  // Occurs when a conflict with a previous successful write is detected. For
 22341  // example, if a write operation occurs on an object and then an attempt is
 22342  // made to read the object using “SERIALIZABLE” consistency, this exception
 22343  // may result. This generally occurs when the previous write did not have time
 22344  // to propagate to the host serving the current request. A retry (with appropriate
 22345  // backoff logic) is the recommended response to this exception.
 22346  type RetryableConflictException struct {
 22347  	_            struct{}                  `type:"structure"`
 22348  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22349  
 22350  	Message_ *string `locationName:"Message" type:"string"`
 22351  }
 22352  
 22353  // String returns the string representation.
 22354  //
 22355  // API parameter values that are decorated as "sensitive" in the API will not
 22356  // be included in the string output. The member name will be present, but the
 22357  // value will be replaced with "sensitive".
 22358  func (s RetryableConflictException) String() string {
 22359  	return awsutil.Prettify(s)
 22360  }
 22361  
 22362  // GoString returns the string representation.
 22363  //
 22364  // API parameter values that are decorated as "sensitive" in the API will not
 22365  // be included in the string output. The member name will be present, but the
 22366  // value will be replaced with "sensitive".
 22367  func (s RetryableConflictException) GoString() string {
 22368  	return s.String()
 22369  }
 22370  
 22371  func newErrorRetryableConflictException(v protocol.ResponseMetadata) error {
 22372  	return &RetryableConflictException{
 22373  		RespMetadata: v,
 22374  	}
 22375  }
 22376  
 22377  // Code returns the exception type name.
 22378  func (s *RetryableConflictException) Code() string {
 22379  	return "RetryableConflictException"
 22380  }
 22381  
 22382  // Message returns the exception's message.
 22383  func (s *RetryableConflictException) Message() string {
 22384  	if s.Message_ != nil {
 22385  		return *s.Message_
 22386  	}
 22387  	return ""
 22388  }
 22389  
 22390  // OrigErr always returns nil, satisfies awserr.Error interface.
 22391  func (s *RetryableConflictException) OrigErr() error {
 22392  	return nil
 22393  }
 22394  
 22395  func (s *RetryableConflictException) Error() string {
 22396  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22397  }
 22398  
 22399  // Status code returns the HTTP status code for the request's response error.
 22400  func (s *RetryableConflictException) StatusCode() int {
 22401  	return s.RespMetadata.StatusCode
 22402  }
 22403  
 22404  // RequestID returns the service's response RequestID for request.
 22405  func (s *RetryableConflictException) RequestID() string {
 22406  	return s.RespMetadata.RequestID
 22407  }
 22408  
 22409  // Contains an Amazon Resource Name (ARN) and parameters that are associated
 22410  // with the rule.
 22411  type Rule struct {
 22412  	_ struct{} `type:"structure"`
 22413  
 22414  	// The minimum and maximum parameters that are associated with the rule.
 22415  	Parameters map[string]*string `type:"map"`
 22416  
 22417  	// The type of attribute validation rule.
 22418  	Type *string `type:"string" enum:"RuleType"`
 22419  }
 22420  
 22421  // String returns the string representation.
 22422  //
 22423  // API parameter values that are decorated as "sensitive" in the API will not
 22424  // be included in the string output. The member name will be present, but the
 22425  // value will be replaced with "sensitive".
 22426  func (s Rule) String() string {
 22427  	return awsutil.Prettify(s)
 22428  }
 22429  
 22430  // GoString returns the string representation.
 22431  //
 22432  // API parameter values that are decorated as "sensitive" in the API will not
 22433  // be included in the string output. The member name will be present, but the
 22434  // value will be replaced with "sensitive".
 22435  func (s Rule) GoString() string {
 22436  	return s.String()
 22437  }
 22438  
 22439  // SetParameters sets the Parameters field's value.
 22440  func (s *Rule) SetParameters(v map[string]*string) *Rule {
 22441  	s.Parameters = v
 22442  	return s
 22443  }
 22444  
 22445  // SetType sets the Type field's value.
 22446  func (s *Rule) SetType(v string) *Rule {
 22447  	s.Type = &v
 22448  	return s
 22449  }
 22450  
 22451  // Indicates that a schema could not be created due to a naming conflict. Please
 22452  // select a different name and then try again.
 22453  type SchemaAlreadyExistsException struct {
 22454  	_            struct{}                  `type:"structure"`
 22455  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22456  
 22457  	Message_ *string `locationName:"Message" type:"string"`
 22458  }
 22459  
 22460  // String returns the string representation.
 22461  //
 22462  // API parameter values that are decorated as "sensitive" in the API will not
 22463  // be included in the string output. The member name will be present, but the
 22464  // value will be replaced with "sensitive".
 22465  func (s SchemaAlreadyExistsException) String() string {
 22466  	return awsutil.Prettify(s)
 22467  }
 22468  
 22469  // GoString returns the string representation.
 22470  //
 22471  // API parameter values that are decorated as "sensitive" in the API will not
 22472  // be included in the string output. The member name will be present, but the
 22473  // value will be replaced with "sensitive".
 22474  func (s SchemaAlreadyExistsException) GoString() string {
 22475  	return s.String()
 22476  }
 22477  
 22478  func newErrorSchemaAlreadyExistsException(v protocol.ResponseMetadata) error {
 22479  	return &SchemaAlreadyExistsException{
 22480  		RespMetadata: v,
 22481  	}
 22482  }
 22483  
 22484  // Code returns the exception type name.
 22485  func (s *SchemaAlreadyExistsException) Code() string {
 22486  	return "SchemaAlreadyExistsException"
 22487  }
 22488  
 22489  // Message returns the exception's message.
 22490  func (s *SchemaAlreadyExistsException) Message() string {
 22491  	if s.Message_ != nil {
 22492  		return *s.Message_
 22493  	}
 22494  	return ""
 22495  }
 22496  
 22497  // OrigErr always returns nil, satisfies awserr.Error interface.
 22498  func (s *SchemaAlreadyExistsException) OrigErr() error {
 22499  	return nil
 22500  }
 22501  
 22502  func (s *SchemaAlreadyExistsException) Error() string {
 22503  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22504  }
 22505  
 22506  // Status code returns the HTTP status code for the request's response error.
 22507  func (s *SchemaAlreadyExistsException) StatusCode() int {
 22508  	return s.RespMetadata.StatusCode
 22509  }
 22510  
 22511  // RequestID returns the service's response RequestID for request.
 22512  func (s *SchemaAlreadyExistsException) RequestID() string {
 22513  	return s.RespMetadata.RequestID
 22514  }
 22515  
 22516  // Indicates that a schema is already published.
 22517  type SchemaAlreadyPublishedException struct {
 22518  	_            struct{}                  `type:"structure"`
 22519  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22520  
 22521  	Message_ *string `locationName:"Message" type:"string"`
 22522  }
 22523  
 22524  // String returns the string representation.
 22525  //
 22526  // API parameter values that are decorated as "sensitive" in the API will not
 22527  // be included in the string output. The member name will be present, but the
 22528  // value will be replaced with "sensitive".
 22529  func (s SchemaAlreadyPublishedException) String() string {
 22530  	return awsutil.Prettify(s)
 22531  }
 22532  
 22533  // GoString returns the string representation.
 22534  //
 22535  // API parameter values that are decorated as "sensitive" in the API will not
 22536  // be included in the string output. The member name will be present, but the
 22537  // value will be replaced with "sensitive".
 22538  func (s SchemaAlreadyPublishedException) GoString() string {
 22539  	return s.String()
 22540  }
 22541  
 22542  func newErrorSchemaAlreadyPublishedException(v protocol.ResponseMetadata) error {
 22543  	return &SchemaAlreadyPublishedException{
 22544  		RespMetadata: v,
 22545  	}
 22546  }
 22547  
 22548  // Code returns the exception type name.
 22549  func (s *SchemaAlreadyPublishedException) Code() string {
 22550  	return "SchemaAlreadyPublishedException"
 22551  }
 22552  
 22553  // Message returns the exception's message.
 22554  func (s *SchemaAlreadyPublishedException) Message() string {
 22555  	if s.Message_ != nil {
 22556  		return *s.Message_
 22557  	}
 22558  	return ""
 22559  }
 22560  
 22561  // OrigErr always returns nil, satisfies awserr.Error interface.
 22562  func (s *SchemaAlreadyPublishedException) OrigErr() error {
 22563  	return nil
 22564  }
 22565  
 22566  func (s *SchemaAlreadyPublishedException) Error() string {
 22567  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22568  }
 22569  
 22570  // Status code returns the HTTP status code for the request's response error.
 22571  func (s *SchemaAlreadyPublishedException) StatusCode() int {
 22572  	return s.RespMetadata.StatusCode
 22573  }
 22574  
 22575  // RequestID returns the service's response RequestID for request.
 22576  func (s *SchemaAlreadyPublishedException) RequestID() string {
 22577  	return s.RespMetadata.RequestID
 22578  }
 22579  
 22580  // A facet.
 22581  type SchemaFacet struct {
 22582  	_ struct{} `type:"structure"`
 22583  
 22584  	// The name of the facet. If this value is set, SchemaArn must also be set.
 22585  	FacetName *string `min:"1" type:"string"`
 22586  
 22587  	// The ARN of the schema that contains the facet with no minor component. See
 22588  	// arns and In-Place Schema Upgrade (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html)
 22589  	// for a description of when to provide minor versions. If this value is set,
 22590  	// FacetName must also be set.
 22591  	SchemaArn *string `type:"string"`
 22592  }
 22593  
 22594  // String returns the string representation.
 22595  //
 22596  // API parameter values that are decorated as "sensitive" in the API will not
 22597  // be included in the string output. The member name will be present, but the
 22598  // value will be replaced with "sensitive".
 22599  func (s SchemaFacet) String() string {
 22600  	return awsutil.Prettify(s)
 22601  }
 22602  
 22603  // GoString returns the string representation.
 22604  //
 22605  // API parameter values that are decorated as "sensitive" in the API will not
 22606  // be included in the string output. The member name will be present, but the
 22607  // value will be replaced with "sensitive".
 22608  func (s SchemaFacet) GoString() string {
 22609  	return s.String()
 22610  }
 22611  
 22612  // Validate inspects the fields of the type to determine if they are valid.
 22613  func (s *SchemaFacet) Validate() error {
 22614  	invalidParams := request.ErrInvalidParams{Context: "SchemaFacet"}
 22615  	if s.FacetName != nil && len(*s.FacetName) < 1 {
 22616  		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
 22617  	}
 22618  
 22619  	if invalidParams.Len() > 0 {
 22620  		return invalidParams
 22621  	}
 22622  	return nil
 22623  }
 22624  
 22625  // SetFacetName sets the FacetName field's value.
 22626  func (s *SchemaFacet) SetFacetName(v string) *SchemaFacet {
 22627  	s.FacetName = &v
 22628  	return s
 22629  }
 22630  
 22631  // SetSchemaArn sets the SchemaArn field's value.
 22632  func (s *SchemaFacet) SetSchemaArn(v string) *SchemaFacet {
 22633  	s.SchemaArn = &v
 22634  	return s
 22635  }
 22636  
 22637  // The object could not be deleted because links still exist. Remove the links
 22638  // and then try the operation again.
 22639  type StillContainsLinksException struct {
 22640  	_            struct{}                  `type:"structure"`
 22641  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22642  
 22643  	Message_ *string `locationName:"Message" type:"string"`
 22644  }
 22645  
 22646  // String returns the string representation.
 22647  //
 22648  // API parameter values that are decorated as "sensitive" in the API will not
 22649  // be included in the string output. The member name will be present, but the
 22650  // value will be replaced with "sensitive".
 22651  func (s StillContainsLinksException) String() string {
 22652  	return awsutil.Prettify(s)
 22653  }
 22654  
 22655  // GoString returns the string representation.
 22656  //
 22657  // API parameter values that are decorated as "sensitive" in the API will not
 22658  // be included in the string output. The member name will be present, but the
 22659  // value will be replaced with "sensitive".
 22660  func (s StillContainsLinksException) GoString() string {
 22661  	return s.String()
 22662  }
 22663  
 22664  func newErrorStillContainsLinksException(v protocol.ResponseMetadata) error {
 22665  	return &StillContainsLinksException{
 22666  		RespMetadata: v,
 22667  	}
 22668  }
 22669  
 22670  // Code returns the exception type name.
 22671  func (s *StillContainsLinksException) Code() string {
 22672  	return "StillContainsLinksException"
 22673  }
 22674  
 22675  // Message returns the exception's message.
 22676  func (s *StillContainsLinksException) Message() string {
 22677  	if s.Message_ != nil {
 22678  		return *s.Message_
 22679  	}
 22680  	return ""
 22681  }
 22682  
 22683  // OrigErr always returns nil, satisfies awserr.Error interface.
 22684  func (s *StillContainsLinksException) OrigErr() error {
 22685  	return nil
 22686  }
 22687  
 22688  func (s *StillContainsLinksException) Error() string {
 22689  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22690  }
 22691  
 22692  // Status code returns the HTTP status code for the request's response error.
 22693  func (s *StillContainsLinksException) StatusCode() int {
 22694  	return s.RespMetadata.StatusCode
 22695  }
 22696  
 22697  // RequestID returns the service's response RequestID for request.
 22698  func (s *StillContainsLinksException) RequestID() string {
 22699  	return s.RespMetadata.RequestID
 22700  }
 22701  
 22702  // The tag structure that contains a tag key and value.
 22703  type Tag struct {
 22704  	_ struct{} `type:"structure"`
 22705  
 22706  	// The key that is associated with the tag.
 22707  	Key *string `type:"string"`
 22708  
 22709  	// The value that is associated with the tag.
 22710  	Value *string `type:"string"`
 22711  }
 22712  
 22713  // String returns the string representation.
 22714  //
 22715  // API parameter values that are decorated as "sensitive" in the API will not
 22716  // be included in the string output. The member name will be present, but the
 22717  // value will be replaced with "sensitive".
 22718  func (s Tag) String() string {
 22719  	return awsutil.Prettify(s)
 22720  }
 22721  
 22722  // GoString returns the string representation.
 22723  //
 22724  // API parameter values that are decorated as "sensitive" in the API will not
 22725  // be included in the string output. The member name will be present, but the
 22726  // value will be replaced with "sensitive".
 22727  func (s Tag) GoString() string {
 22728  	return s.String()
 22729  }
 22730  
 22731  // SetKey sets the Key field's value.
 22732  func (s *Tag) SetKey(v string) *Tag {
 22733  	s.Key = &v
 22734  	return s
 22735  }
 22736  
 22737  // SetValue sets the Value field's value.
 22738  func (s *Tag) SetValue(v string) *Tag {
 22739  	s.Value = &v
 22740  	return s
 22741  }
 22742  
 22743  type TagResourceInput struct {
 22744  	_ struct{} `type:"structure"`
 22745  
 22746  	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
 22747  	// for directories.
 22748  	//
 22749  	// ResourceArn is a required field
 22750  	ResourceArn *string `type:"string" required:"true"`
 22751  
 22752  	// A list of tag key-value pairs.
 22753  	//
 22754  	// Tags is a required field
 22755  	Tags []*Tag `type:"list" required:"true"`
 22756  }
 22757  
 22758  // String returns the string representation.
 22759  //
 22760  // API parameter values that are decorated as "sensitive" in the API will not
 22761  // be included in the string output. The member name will be present, but the
 22762  // value will be replaced with "sensitive".
 22763  func (s TagResourceInput) String() string {
 22764  	return awsutil.Prettify(s)
 22765  }
 22766  
 22767  // GoString returns the string representation.
 22768  //
 22769  // API parameter values that are decorated as "sensitive" in the API will not
 22770  // be included in the string output. The member name will be present, but the
 22771  // value will be replaced with "sensitive".
 22772  func (s TagResourceInput) GoString() string {
 22773  	return s.String()
 22774  }
 22775  
 22776  // Validate inspects the fields of the type to determine if they are valid.
 22777  func (s *TagResourceInput) Validate() error {
 22778  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 22779  	if s.ResourceArn == nil {
 22780  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 22781  	}
 22782  	if s.Tags == nil {
 22783  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 22784  	}
 22785  
 22786  	if invalidParams.Len() > 0 {
 22787  		return invalidParams
 22788  	}
 22789  	return nil
 22790  }
 22791  
 22792  // SetResourceArn sets the ResourceArn field's value.
 22793  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 22794  	s.ResourceArn = &v
 22795  	return s
 22796  }
 22797  
 22798  // SetTags sets the Tags field's value.
 22799  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 22800  	s.Tags = v
 22801  	return s
 22802  }
 22803  
 22804  type TagResourceOutput struct {
 22805  	_ struct{} `type:"structure" nopayload:"true"`
 22806  }
 22807  
 22808  // String returns the string representation.
 22809  //
 22810  // API parameter values that are decorated as "sensitive" in the API will not
 22811  // be included in the string output. The member name will be present, but the
 22812  // value will be replaced with "sensitive".
 22813  func (s TagResourceOutput) String() string {
 22814  	return awsutil.Prettify(s)
 22815  }
 22816  
 22817  // GoString returns the string representation.
 22818  //
 22819  // API parameter values that are decorated as "sensitive" in the API will not
 22820  // be included in the string output. The member name will be present, but the
 22821  // value will be replaced with "sensitive".
 22822  func (s TagResourceOutput) GoString() string {
 22823  	return s.String()
 22824  }
 22825  
 22826  // Represents the data for a typed attribute. You can set one, and only one,
 22827  // of the elements. Each attribute in an item is a name-value pair. Attributes
 22828  // have a single value.
 22829  type TypedAttributeValue struct {
 22830  	_ struct{} `type:"structure"`
 22831  
 22832  	// A binary data value.
 22833  	// BinaryValue is automatically base64 encoded/decoded by the SDK.
 22834  	BinaryValue []byte `type:"blob"`
 22835  
 22836  	// A Boolean data value.
 22837  	BooleanValue *bool `type:"boolean"`
 22838  
 22839  	// A date and time value.
 22840  	DatetimeValue *time.Time `type:"timestamp"`
 22841  
 22842  	// A number data value.
 22843  	NumberValue *string `type:"string"`
 22844  
 22845  	// A string data value.
 22846  	StringValue *string `type:"string"`
 22847  }
 22848  
 22849  // String returns the string representation.
 22850  //
 22851  // API parameter values that are decorated as "sensitive" in the API will not
 22852  // be included in the string output. The member name will be present, but the
 22853  // value will be replaced with "sensitive".
 22854  func (s TypedAttributeValue) String() string {
 22855  	return awsutil.Prettify(s)
 22856  }
 22857  
 22858  // GoString returns the string representation.
 22859  //
 22860  // API parameter values that are decorated as "sensitive" in the API will not
 22861  // be included in the string output. The member name will be present, but the
 22862  // value will be replaced with "sensitive".
 22863  func (s TypedAttributeValue) GoString() string {
 22864  	return s.String()
 22865  }
 22866  
 22867  // SetBinaryValue sets the BinaryValue field's value.
 22868  func (s *TypedAttributeValue) SetBinaryValue(v []byte) *TypedAttributeValue {
 22869  	s.BinaryValue = v
 22870  	return s
 22871  }
 22872  
 22873  // SetBooleanValue sets the BooleanValue field's value.
 22874  func (s *TypedAttributeValue) SetBooleanValue(v bool) *TypedAttributeValue {
 22875  	s.BooleanValue = &v
 22876  	return s
 22877  }
 22878  
 22879  // SetDatetimeValue sets the DatetimeValue field's value.
 22880  func (s *TypedAttributeValue) SetDatetimeValue(v time.Time) *TypedAttributeValue {
 22881  	s.DatetimeValue = &v
 22882  	return s
 22883  }
 22884  
 22885  // SetNumberValue sets the NumberValue field's value.
 22886  func (s *TypedAttributeValue) SetNumberValue(v string) *TypedAttributeValue {
 22887  	s.NumberValue = &v
 22888  	return s
 22889  }
 22890  
 22891  // SetStringValue sets the StringValue field's value.
 22892  func (s *TypedAttributeValue) SetStringValue(v string) *TypedAttributeValue {
 22893  	s.StringValue = &v
 22894  	return s
 22895  }
 22896  
 22897  // A range of attribute values. For more information, see Range Filters (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html).
 22898  type TypedAttributeValueRange struct {
 22899  	_ struct{} `type:"structure"`
 22900  
 22901  	// The inclusive or exclusive range end.
 22902  	//
 22903  	// EndMode is a required field
 22904  	EndMode *string `type:"string" required:"true" enum:"RangeMode"`
 22905  
 22906  	// The attribute value to terminate the range at.
 22907  	EndValue *TypedAttributeValue `type:"structure"`
 22908  
 22909  	// The inclusive or exclusive range start.
 22910  	//
 22911  	// StartMode is a required field
 22912  	StartMode *string `type:"string" required:"true" enum:"RangeMode"`
 22913  
 22914  	// The value to start the range at.
 22915  	StartValue *TypedAttributeValue `type:"structure"`
 22916  }
 22917  
 22918  // String returns the string representation.
 22919  //
 22920  // API parameter values that are decorated as "sensitive" in the API will not
 22921  // be included in the string output. The member name will be present, but the
 22922  // value will be replaced with "sensitive".
 22923  func (s TypedAttributeValueRange) String() string {
 22924  	return awsutil.Prettify(s)
 22925  }
 22926  
 22927  // GoString returns the string representation.
 22928  //
 22929  // API parameter values that are decorated as "sensitive" in the API will not
 22930  // be included in the string output. The member name will be present, but the
 22931  // value will be replaced with "sensitive".
 22932  func (s TypedAttributeValueRange) GoString() string {
 22933  	return s.String()
 22934  }
 22935  
 22936  // Validate inspects the fields of the type to determine if they are valid.
 22937  func (s *TypedAttributeValueRange) Validate() error {
 22938  	invalidParams := request.ErrInvalidParams{Context: "TypedAttributeValueRange"}
 22939  	if s.EndMode == nil {
 22940  		invalidParams.Add(request.NewErrParamRequired("EndMode"))
 22941  	}
 22942  	if s.StartMode == nil {
 22943  		invalidParams.Add(request.NewErrParamRequired("StartMode"))
 22944  	}
 22945  
 22946  	if invalidParams.Len() > 0 {
 22947  		return invalidParams
 22948  	}
 22949  	return nil
 22950  }
 22951  
 22952  // SetEndMode sets the EndMode field's value.
 22953  func (s *TypedAttributeValueRange) SetEndMode(v string) *TypedAttributeValueRange {
 22954  	s.EndMode = &v
 22955  	return s
 22956  }
 22957  
 22958  // SetEndValue sets the EndValue field's value.
 22959  func (s *TypedAttributeValueRange) SetEndValue(v *TypedAttributeValue) *TypedAttributeValueRange {
 22960  	s.EndValue = v
 22961  	return s
 22962  }
 22963  
 22964  // SetStartMode sets the StartMode field's value.
 22965  func (s *TypedAttributeValueRange) SetStartMode(v string) *TypedAttributeValueRange {
 22966  	s.StartMode = &v
 22967  	return s
 22968  }
 22969  
 22970  // SetStartValue sets the StartValue field's value.
 22971  func (s *TypedAttributeValueRange) SetStartValue(v *TypedAttributeValue) *TypedAttributeValueRange {
 22972  	s.StartValue = v
 22973  	return s
 22974  }
 22975  
 22976  // A typed link attribute definition.
 22977  type TypedLinkAttributeDefinition struct {
 22978  	_ struct{} `type:"structure"`
 22979  
 22980  	// The default value of the attribute (if configured).
 22981  	DefaultValue *TypedAttributeValue `type:"structure"`
 22982  
 22983  	// Whether the attribute is mutable or not.
 22984  	IsImmutable *bool `type:"boolean"`
 22985  
 22986  	// The unique name of the typed link attribute.
 22987  	//
 22988  	// Name is a required field
 22989  	Name *string `min:"1" type:"string" required:"true"`
 22990  
 22991  	// The required behavior of the TypedLinkAttributeDefinition.
 22992  	//
 22993  	// RequiredBehavior is a required field
 22994  	RequiredBehavior *string `type:"string" required:"true" enum:"RequiredAttributeBehavior"`
 22995  
 22996  	// Validation rules that are attached to the attribute definition.
 22997  	Rules map[string]*Rule `type:"map"`
 22998  
 22999  	// The type of the attribute.
 23000  	//
 23001  	// Type is a required field
 23002  	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
 23003  }
 23004  
 23005  // String returns the string representation.
 23006  //
 23007  // API parameter values that are decorated as "sensitive" in the API will not
 23008  // be included in the string output. The member name will be present, but the
 23009  // value will be replaced with "sensitive".
 23010  func (s TypedLinkAttributeDefinition) String() string {
 23011  	return awsutil.Prettify(s)
 23012  }
 23013  
 23014  // GoString returns the string representation.
 23015  //
 23016  // API parameter values that are decorated as "sensitive" in the API will not
 23017  // be included in the string output. The member name will be present, but the
 23018  // value will be replaced with "sensitive".
 23019  func (s TypedLinkAttributeDefinition) GoString() string {
 23020  	return s.String()
 23021  }
 23022  
 23023  // Validate inspects the fields of the type to determine if they are valid.
 23024  func (s *TypedLinkAttributeDefinition) Validate() error {
 23025  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeDefinition"}
 23026  	if s.Name == nil {
 23027  		invalidParams.Add(request.NewErrParamRequired("Name"))
 23028  	}
 23029  	if s.Name != nil && len(*s.Name) < 1 {
 23030  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 23031  	}
 23032  	if s.RequiredBehavior == nil {
 23033  		invalidParams.Add(request.NewErrParamRequired("RequiredBehavior"))
 23034  	}
 23035  	if s.Type == nil {
 23036  		invalidParams.Add(request.NewErrParamRequired("Type"))
 23037  	}
 23038  
 23039  	if invalidParams.Len() > 0 {
 23040  		return invalidParams
 23041  	}
 23042  	return nil
 23043  }
 23044  
 23045  // SetDefaultValue sets the DefaultValue field's value.
 23046  func (s *TypedLinkAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *TypedLinkAttributeDefinition {
 23047  	s.DefaultValue = v
 23048  	return s
 23049  }
 23050  
 23051  // SetIsImmutable sets the IsImmutable field's value.
 23052  func (s *TypedLinkAttributeDefinition) SetIsImmutable(v bool) *TypedLinkAttributeDefinition {
 23053  	s.IsImmutable = &v
 23054  	return s
 23055  }
 23056  
 23057  // SetName sets the Name field's value.
 23058  func (s *TypedLinkAttributeDefinition) SetName(v string) *TypedLinkAttributeDefinition {
 23059  	s.Name = &v
 23060  	return s
 23061  }
 23062  
 23063  // SetRequiredBehavior sets the RequiredBehavior field's value.
 23064  func (s *TypedLinkAttributeDefinition) SetRequiredBehavior(v string) *TypedLinkAttributeDefinition {
 23065  	s.RequiredBehavior = &v
 23066  	return s
 23067  }
 23068  
 23069  // SetRules sets the Rules field's value.
 23070  func (s *TypedLinkAttributeDefinition) SetRules(v map[string]*Rule) *TypedLinkAttributeDefinition {
 23071  	s.Rules = v
 23072  	return s
 23073  }
 23074  
 23075  // SetType sets the Type field's value.
 23076  func (s *TypedLinkAttributeDefinition) SetType(v string) *TypedLinkAttributeDefinition {
 23077  	s.Type = &v
 23078  	return s
 23079  }
 23080  
 23081  // Identifies the range of attributes that are used by a specified filter.
 23082  type TypedLinkAttributeRange struct {
 23083  	_ struct{} `type:"structure"`
 23084  
 23085  	// The unique name of the typed link attribute.
 23086  	AttributeName *string `min:"1" type:"string"`
 23087  
 23088  	// The range of attribute values that are being selected.
 23089  	//
 23090  	// Range is a required field
 23091  	Range *TypedAttributeValueRange `type:"structure" required:"true"`
 23092  }
 23093  
 23094  // String returns the string representation.
 23095  //
 23096  // API parameter values that are decorated as "sensitive" in the API will not
 23097  // be included in the string output. The member name will be present, but the
 23098  // value will be replaced with "sensitive".
 23099  func (s TypedLinkAttributeRange) String() string {
 23100  	return awsutil.Prettify(s)
 23101  }
 23102  
 23103  // GoString returns the string representation.
 23104  //
 23105  // API parameter values that are decorated as "sensitive" in the API will not
 23106  // be included in the string output. The member name will be present, but the
 23107  // value will be replaced with "sensitive".
 23108  func (s TypedLinkAttributeRange) GoString() string {
 23109  	return s.String()
 23110  }
 23111  
 23112  // Validate inspects the fields of the type to determine if they are valid.
 23113  func (s *TypedLinkAttributeRange) Validate() error {
 23114  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeRange"}
 23115  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
 23116  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
 23117  	}
 23118  	if s.Range == nil {
 23119  		invalidParams.Add(request.NewErrParamRequired("Range"))
 23120  	}
 23121  	if s.Range != nil {
 23122  		if err := s.Range.Validate(); err != nil {
 23123  			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
 23124  		}
 23125  	}
 23126  
 23127  	if invalidParams.Len() > 0 {
 23128  		return invalidParams
 23129  	}
 23130  	return nil
 23131  }
 23132  
 23133  // SetAttributeName sets the AttributeName field's value.
 23134  func (s *TypedLinkAttributeRange) SetAttributeName(v string) *TypedLinkAttributeRange {
 23135  	s.AttributeName = &v
 23136  	return s
 23137  }
 23138  
 23139  // SetRange sets the Range field's value.
 23140  func (s *TypedLinkAttributeRange) SetRange(v *TypedAttributeValueRange) *TypedLinkAttributeRange {
 23141  	s.Range = v
 23142  	return s
 23143  }
 23144  
 23145  // Defines the typed links structure and its attributes. To create a typed link
 23146  // facet, use the CreateTypedLinkFacet API.
 23147  type TypedLinkFacet struct {
 23148  	_ struct{} `type:"structure"`
 23149  
 23150  	// A set of key-value pairs associated with the typed link. Typed link attributes
 23151  	// are used when you have data values that are related to the link itself, and
 23152  	// not to one of the two objects being linked. Identity attributes also serve
 23153  	// to distinguish the link from others of the same type between the same objects.
 23154  	//
 23155  	// Attributes is a required field
 23156  	Attributes []*TypedLinkAttributeDefinition `type:"list" required:"true"`
 23157  
 23158  	// The set of attributes that distinguish links made from this facet from each
 23159  	// other, in the order of significance. Listing typed links can filter on the
 23160  	// values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks
 23161  	// for details.
 23162  	//
 23163  	// IdentityAttributeOrder is a required field
 23164  	IdentityAttributeOrder []*string `type:"list" required:"true"`
 23165  
 23166  	// The unique name of the typed link facet.
 23167  	//
 23168  	// Name is a required field
 23169  	Name *string `type:"string" required:"true"`
 23170  }
 23171  
 23172  // String returns the string representation.
 23173  //
 23174  // API parameter values that are decorated as "sensitive" in the API will not
 23175  // be included in the string output. The member name will be present, but the
 23176  // value will be replaced with "sensitive".
 23177  func (s TypedLinkFacet) String() string {
 23178  	return awsutil.Prettify(s)
 23179  }
 23180  
 23181  // GoString returns the string representation.
 23182  //
 23183  // API parameter values that are decorated as "sensitive" in the API will not
 23184  // be included in the string output. The member name will be present, but the
 23185  // value will be replaced with "sensitive".
 23186  func (s TypedLinkFacet) GoString() string {
 23187  	return s.String()
 23188  }
 23189  
 23190  // Validate inspects the fields of the type to determine if they are valid.
 23191  func (s *TypedLinkFacet) Validate() error {
 23192  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacet"}
 23193  	if s.Attributes == nil {
 23194  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
 23195  	}
 23196  	if s.IdentityAttributeOrder == nil {
 23197  		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
 23198  	}
 23199  	if s.Name == nil {
 23200  		invalidParams.Add(request.NewErrParamRequired("Name"))
 23201  	}
 23202  	if s.Attributes != nil {
 23203  		for i, v := range s.Attributes {
 23204  			if v == nil {
 23205  				continue
 23206  			}
 23207  			if err := v.Validate(); err != nil {
 23208  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 23209  			}
 23210  		}
 23211  	}
 23212  
 23213  	if invalidParams.Len() > 0 {
 23214  		return invalidParams
 23215  	}
 23216  	return nil
 23217  }
 23218  
 23219  // SetAttributes sets the Attributes field's value.
 23220  func (s *TypedLinkFacet) SetAttributes(v []*TypedLinkAttributeDefinition) *TypedLinkFacet {
 23221  	s.Attributes = v
 23222  	return s
 23223  }
 23224  
 23225  // SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
 23226  func (s *TypedLinkFacet) SetIdentityAttributeOrder(v []*string) *TypedLinkFacet {
 23227  	s.IdentityAttributeOrder = v
 23228  	return s
 23229  }
 23230  
 23231  // SetName sets the Name field's value.
 23232  func (s *TypedLinkFacet) SetName(v string) *TypedLinkFacet {
 23233  	s.Name = &v
 23234  	return s
 23235  }
 23236  
 23237  // A typed link facet attribute update.
 23238  type TypedLinkFacetAttributeUpdate struct {
 23239  	_ struct{} `type:"structure"`
 23240  
 23241  	// The action to perform when updating the attribute.
 23242  	//
 23243  	// Action is a required field
 23244  	Action *string `type:"string" required:"true" enum:"UpdateActionType"`
 23245  
 23246  	// The attribute to update.
 23247  	//
 23248  	// Attribute is a required field
 23249  	Attribute *TypedLinkAttributeDefinition `type:"structure" required:"true"`
 23250  }
 23251  
 23252  // String returns the string representation.
 23253  //
 23254  // API parameter values that are decorated as "sensitive" in the API will not
 23255  // be included in the string output. The member name will be present, but the
 23256  // value will be replaced with "sensitive".
 23257  func (s TypedLinkFacetAttributeUpdate) String() string {
 23258  	return awsutil.Prettify(s)
 23259  }
 23260  
 23261  // GoString returns the string representation.
 23262  //
 23263  // API parameter values that are decorated as "sensitive" in the API will not
 23264  // be included in the string output. The member name will be present, but the
 23265  // value will be replaced with "sensitive".
 23266  func (s TypedLinkFacetAttributeUpdate) GoString() string {
 23267  	return s.String()
 23268  }
 23269  
 23270  // Validate inspects the fields of the type to determine if they are valid.
 23271  func (s *TypedLinkFacetAttributeUpdate) Validate() error {
 23272  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacetAttributeUpdate"}
 23273  	if s.Action == nil {
 23274  		invalidParams.Add(request.NewErrParamRequired("Action"))
 23275  	}
 23276  	if s.Attribute == nil {
 23277  		invalidParams.Add(request.NewErrParamRequired("Attribute"))
 23278  	}
 23279  	if s.Attribute != nil {
 23280  		if err := s.Attribute.Validate(); err != nil {
 23281  			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
 23282  		}
 23283  	}
 23284  
 23285  	if invalidParams.Len() > 0 {
 23286  		return invalidParams
 23287  	}
 23288  	return nil
 23289  }
 23290  
 23291  // SetAction sets the Action field's value.
 23292  func (s *TypedLinkFacetAttributeUpdate) SetAction(v string) *TypedLinkFacetAttributeUpdate {
 23293  	s.Action = &v
 23294  	return s
 23295  }
 23296  
 23297  // SetAttribute sets the Attribute field's value.
 23298  func (s *TypedLinkFacetAttributeUpdate) SetAttribute(v *TypedLinkAttributeDefinition) *TypedLinkFacetAttributeUpdate {
 23299  	s.Attribute = v
 23300  	return s
 23301  }
 23302  
 23303  // Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
 23304  // link.
 23305  type TypedLinkSchemaAndFacetName struct {
 23306  	_ struct{} `type:"structure"`
 23307  
 23308  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 23309  	// information, see arns.
 23310  	//
 23311  	// SchemaArn is a required field
 23312  	SchemaArn *string `type:"string" required:"true"`
 23313  
 23314  	// The unique name of the typed link facet.
 23315  	//
 23316  	// TypedLinkName is a required field
 23317  	TypedLinkName *string `type:"string" required:"true"`
 23318  }
 23319  
 23320  // String returns the string representation.
 23321  //
 23322  // API parameter values that are decorated as "sensitive" in the API will not
 23323  // be included in the string output. The member name will be present, but the
 23324  // value will be replaced with "sensitive".
 23325  func (s TypedLinkSchemaAndFacetName) String() string {
 23326  	return awsutil.Prettify(s)
 23327  }
 23328  
 23329  // GoString returns the string representation.
 23330  //
 23331  // API parameter values that are decorated as "sensitive" in the API will not
 23332  // be included in the string output. The member name will be present, but the
 23333  // value will be replaced with "sensitive".
 23334  func (s TypedLinkSchemaAndFacetName) GoString() string {
 23335  	return s.String()
 23336  }
 23337  
 23338  // Validate inspects the fields of the type to determine if they are valid.
 23339  func (s *TypedLinkSchemaAndFacetName) Validate() error {
 23340  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSchemaAndFacetName"}
 23341  	if s.SchemaArn == nil {
 23342  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 23343  	}
 23344  	if s.TypedLinkName == nil {
 23345  		invalidParams.Add(request.NewErrParamRequired("TypedLinkName"))
 23346  	}
 23347  
 23348  	if invalidParams.Len() > 0 {
 23349  		return invalidParams
 23350  	}
 23351  	return nil
 23352  }
 23353  
 23354  // SetSchemaArn sets the SchemaArn field's value.
 23355  func (s *TypedLinkSchemaAndFacetName) SetSchemaArn(v string) *TypedLinkSchemaAndFacetName {
 23356  	s.SchemaArn = &v
 23357  	return s
 23358  }
 23359  
 23360  // SetTypedLinkName sets the TypedLinkName field's value.
 23361  func (s *TypedLinkSchemaAndFacetName) SetTypedLinkName(v string) *TypedLinkSchemaAndFacetName {
 23362  	s.TypedLinkName = &v
 23363  	return s
 23364  }
 23365  
 23366  // Contains all the information that is used to uniquely identify a typed link.
 23367  // The parameters discussed in this topic are used to uniquely specify the typed
 23368  // link being operated on. The AttachTypedLink API returns a typed link specifier
 23369  // while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks
 23370  // and ListOutgoingTypedLinks API operations provide typed link specifiers as
 23371  // output. You can also construct a typed link specifier from scratch.
 23372  type TypedLinkSpecifier struct {
 23373  	_ struct{} `type:"structure"`
 23374  
 23375  	// Identifies the attribute value to update.
 23376  	//
 23377  	// IdentityAttributeValues is a required field
 23378  	IdentityAttributeValues []*AttributeNameAndValue `type:"list" required:"true"`
 23379  
 23380  	// Identifies the source object that the typed link will attach to.
 23381  	//
 23382  	// SourceObjectReference is a required field
 23383  	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
 23384  
 23385  	// Identifies the target object that the typed link will attach to.
 23386  	//
 23387  	// TargetObjectReference is a required field
 23388  	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
 23389  
 23390  	// Identifies the typed link facet that is associated with the typed link.
 23391  	//
 23392  	// TypedLinkFacet is a required field
 23393  	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
 23394  }
 23395  
 23396  // String returns the string representation.
 23397  //
 23398  // API parameter values that are decorated as "sensitive" in the API will not
 23399  // be included in the string output. The member name will be present, but the
 23400  // value will be replaced with "sensitive".
 23401  func (s TypedLinkSpecifier) String() string {
 23402  	return awsutil.Prettify(s)
 23403  }
 23404  
 23405  // GoString returns the string representation.
 23406  //
 23407  // API parameter values that are decorated as "sensitive" in the API will not
 23408  // be included in the string output. The member name will be present, but the
 23409  // value will be replaced with "sensitive".
 23410  func (s TypedLinkSpecifier) GoString() string {
 23411  	return s.String()
 23412  }
 23413  
 23414  // Validate inspects the fields of the type to determine if they are valid.
 23415  func (s *TypedLinkSpecifier) Validate() error {
 23416  	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSpecifier"}
 23417  	if s.IdentityAttributeValues == nil {
 23418  		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeValues"))
 23419  	}
 23420  	if s.SourceObjectReference == nil {
 23421  		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
 23422  	}
 23423  	if s.TargetObjectReference == nil {
 23424  		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
 23425  	}
 23426  	if s.TypedLinkFacet == nil {
 23427  		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
 23428  	}
 23429  	if s.IdentityAttributeValues != nil {
 23430  		for i, v := range s.IdentityAttributeValues {
 23431  			if v == nil {
 23432  				continue
 23433  			}
 23434  			if err := v.Validate(); err != nil {
 23435  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityAttributeValues", i), err.(request.ErrInvalidParams))
 23436  			}
 23437  		}
 23438  	}
 23439  	if s.TypedLinkFacet != nil {
 23440  		if err := s.TypedLinkFacet.Validate(); err != nil {
 23441  			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
 23442  		}
 23443  	}
 23444  
 23445  	if invalidParams.Len() > 0 {
 23446  		return invalidParams
 23447  	}
 23448  	return nil
 23449  }
 23450  
 23451  // SetIdentityAttributeValues sets the IdentityAttributeValues field's value.
 23452  func (s *TypedLinkSpecifier) SetIdentityAttributeValues(v []*AttributeNameAndValue) *TypedLinkSpecifier {
 23453  	s.IdentityAttributeValues = v
 23454  	return s
 23455  }
 23456  
 23457  // SetSourceObjectReference sets the SourceObjectReference field's value.
 23458  func (s *TypedLinkSpecifier) SetSourceObjectReference(v *ObjectReference) *TypedLinkSpecifier {
 23459  	s.SourceObjectReference = v
 23460  	return s
 23461  }
 23462  
 23463  // SetTargetObjectReference sets the TargetObjectReference field's value.
 23464  func (s *TypedLinkSpecifier) SetTargetObjectReference(v *ObjectReference) *TypedLinkSpecifier {
 23465  	s.TargetObjectReference = v
 23466  	return s
 23467  }
 23468  
 23469  // SetTypedLinkFacet sets the TypedLinkFacet field's value.
 23470  func (s *TypedLinkSpecifier) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *TypedLinkSpecifier {
 23471  	s.TypedLinkFacet = v
 23472  	return s
 23473  }
 23474  
 23475  // Indicates that the requested index type is not supported.
 23476  type UnsupportedIndexTypeException struct {
 23477  	_            struct{}                  `type:"structure"`
 23478  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 23479  
 23480  	Message_ *string `locationName:"Message" type:"string"`
 23481  }
 23482  
 23483  // String returns the string representation.
 23484  //
 23485  // API parameter values that are decorated as "sensitive" in the API will not
 23486  // be included in the string output. The member name will be present, but the
 23487  // value will be replaced with "sensitive".
 23488  func (s UnsupportedIndexTypeException) String() string {
 23489  	return awsutil.Prettify(s)
 23490  }
 23491  
 23492  // GoString returns the string representation.
 23493  //
 23494  // API parameter values that are decorated as "sensitive" in the API will not
 23495  // be included in the string output. The member name will be present, but the
 23496  // value will be replaced with "sensitive".
 23497  func (s UnsupportedIndexTypeException) GoString() string {
 23498  	return s.String()
 23499  }
 23500  
 23501  func newErrorUnsupportedIndexTypeException(v protocol.ResponseMetadata) error {
 23502  	return &UnsupportedIndexTypeException{
 23503  		RespMetadata: v,
 23504  	}
 23505  }
 23506  
 23507  // Code returns the exception type name.
 23508  func (s *UnsupportedIndexTypeException) Code() string {
 23509  	return "UnsupportedIndexTypeException"
 23510  }
 23511  
 23512  // Message returns the exception's message.
 23513  func (s *UnsupportedIndexTypeException) Message() string {
 23514  	if s.Message_ != nil {
 23515  		return *s.Message_
 23516  	}
 23517  	return ""
 23518  }
 23519  
 23520  // OrigErr always returns nil, satisfies awserr.Error interface.
 23521  func (s *UnsupportedIndexTypeException) OrigErr() error {
 23522  	return nil
 23523  }
 23524  
 23525  func (s *UnsupportedIndexTypeException) Error() string {
 23526  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 23527  }
 23528  
 23529  // Status code returns the HTTP status code for the request's response error.
 23530  func (s *UnsupportedIndexTypeException) StatusCode() int {
 23531  	return s.RespMetadata.StatusCode
 23532  }
 23533  
 23534  // RequestID returns the service's response RequestID for request.
 23535  func (s *UnsupportedIndexTypeException) RequestID() string {
 23536  	return s.RespMetadata.RequestID
 23537  }
 23538  
 23539  type UntagResourceInput struct {
 23540  	_ struct{} `type:"structure"`
 23541  
 23542  	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
 23543  	// for directories.
 23544  	//
 23545  	// ResourceArn is a required field
 23546  	ResourceArn *string `type:"string" required:"true"`
 23547  
 23548  	// Keys of the tag that need to be removed from the resource.
 23549  	//
 23550  	// TagKeys is a required field
 23551  	TagKeys []*string `type:"list" required:"true"`
 23552  }
 23553  
 23554  // String returns the string representation.
 23555  //
 23556  // API parameter values that are decorated as "sensitive" in the API will not
 23557  // be included in the string output. The member name will be present, but the
 23558  // value will be replaced with "sensitive".
 23559  func (s UntagResourceInput) String() string {
 23560  	return awsutil.Prettify(s)
 23561  }
 23562  
 23563  // GoString returns the string representation.
 23564  //
 23565  // API parameter values that are decorated as "sensitive" in the API will not
 23566  // be included in the string output. The member name will be present, but the
 23567  // value will be replaced with "sensitive".
 23568  func (s UntagResourceInput) GoString() string {
 23569  	return s.String()
 23570  }
 23571  
 23572  // Validate inspects the fields of the type to determine if they are valid.
 23573  func (s *UntagResourceInput) Validate() error {
 23574  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 23575  	if s.ResourceArn == nil {
 23576  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 23577  	}
 23578  	if s.TagKeys == nil {
 23579  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 23580  	}
 23581  
 23582  	if invalidParams.Len() > 0 {
 23583  		return invalidParams
 23584  	}
 23585  	return nil
 23586  }
 23587  
 23588  // SetResourceArn sets the ResourceArn field's value.
 23589  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 23590  	s.ResourceArn = &v
 23591  	return s
 23592  }
 23593  
 23594  // SetTagKeys sets the TagKeys field's value.
 23595  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 23596  	s.TagKeys = v
 23597  	return s
 23598  }
 23599  
 23600  type UntagResourceOutput struct {
 23601  	_ struct{} `type:"structure" nopayload:"true"`
 23602  }
 23603  
 23604  // String returns the string representation.
 23605  //
 23606  // API parameter values that are decorated as "sensitive" in the API will not
 23607  // be included in the string output. The member name will be present, but the
 23608  // value will be replaced with "sensitive".
 23609  func (s UntagResourceOutput) String() string {
 23610  	return awsutil.Prettify(s)
 23611  }
 23612  
 23613  // GoString returns the string representation.
 23614  //
 23615  // API parameter values that are decorated as "sensitive" in the API will not
 23616  // be included in the string output. The member name will be present, but the
 23617  // value will be replaced with "sensitive".
 23618  func (s UntagResourceOutput) GoString() string {
 23619  	return s.String()
 23620  }
 23621  
 23622  type UpdateFacetInput struct {
 23623  	_ struct{} `type:"structure"`
 23624  
 23625  	// List of attributes that need to be updated in a given schema Facet. Each
 23626  	// attribute is followed by AttributeAction, which specifies the type of update
 23627  	// operation to perform.
 23628  	AttributeUpdates []*FacetAttributeUpdate `type:"list"`
 23629  
 23630  	// The name of the facet.
 23631  	//
 23632  	// Name is a required field
 23633  	Name *string `min:"1" type:"string" required:"true"`
 23634  
 23635  	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
 23636  	// for more details.
 23637  	ObjectType *string `type:"string" enum:"ObjectType"`
 23638  
 23639  	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
 23640  	// information, see arns.
 23641  	//
 23642  	// SchemaArn is a required field
 23643  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 23644  }
 23645  
 23646  // String returns the string representation.
 23647  //
 23648  // API parameter values that are decorated as "sensitive" in the API will not
 23649  // be included in the string output. The member name will be present, but the
 23650  // value will be replaced with "sensitive".
 23651  func (s UpdateFacetInput) String() string {
 23652  	return awsutil.Prettify(s)
 23653  }
 23654  
 23655  // GoString returns the string representation.
 23656  //
 23657  // API parameter values that are decorated as "sensitive" in the API will not
 23658  // be included in the string output. The member name will be present, but the
 23659  // value will be replaced with "sensitive".
 23660  func (s UpdateFacetInput) GoString() string {
 23661  	return s.String()
 23662  }
 23663  
 23664  // Validate inspects the fields of the type to determine if they are valid.
 23665  func (s *UpdateFacetInput) Validate() error {
 23666  	invalidParams := request.ErrInvalidParams{Context: "UpdateFacetInput"}
 23667  	if s.Name == nil {
 23668  		invalidParams.Add(request.NewErrParamRequired("Name"))
 23669  	}
 23670  	if s.Name != nil && len(*s.Name) < 1 {
 23671  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 23672  	}
 23673  	if s.SchemaArn == nil {
 23674  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 23675  	}
 23676  	if s.AttributeUpdates != nil {
 23677  		for i, v := range s.AttributeUpdates {
 23678  			if v == nil {
 23679  				continue
 23680  			}
 23681  			if err := v.Validate(); err != nil {
 23682  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 23683  			}
 23684  		}
 23685  	}
 23686  
 23687  	if invalidParams.Len() > 0 {
 23688  		return invalidParams
 23689  	}
 23690  	return nil
 23691  }
 23692  
 23693  // SetAttributeUpdates sets the AttributeUpdates field's value.
 23694  func (s *UpdateFacetInput) SetAttributeUpdates(v []*FacetAttributeUpdate) *UpdateFacetInput {
 23695  	s.AttributeUpdates = v
 23696  	return s
 23697  }
 23698  
 23699  // SetName sets the Name field's value.
 23700  func (s *UpdateFacetInput) SetName(v string) *UpdateFacetInput {
 23701  	s.Name = &v
 23702  	return s
 23703  }
 23704  
 23705  // SetObjectType sets the ObjectType field's value.
 23706  func (s *UpdateFacetInput) SetObjectType(v string) *UpdateFacetInput {
 23707  	s.ObjectType = &v
 23708  	return s
 23709  }
 23710  
 23711  // SetSchemaArn sets the SchemaArn field's value.
 23712  func (s *UpdateFacetInput) SetSchemaArn(v string) *UpdateFacetInput {
 23713  	s.SchemaArn = &v
 23714  	return s
 23715  }
 23716  
 23717  type UpdateFacetOutput struct {
 23718  	_ struct{} `type:"structure" nopayload:"true"`
 23719  }
 23720  
 23721  // String returns the string representation.
 23722  //
 23723  // API parameter values that are decorated as "sensitive" in the API will not
 23724  // be included in the string output. The member name will be present, but the
 23725  // value will be replaced with "sensitive".
 23726  func (s UpdateFacetOutput) String() string {
 23727  	return awsutil.Prettify(s)
 23728  }
 23729  
 23730  // GoString returns the string representation.
 23731  //
 23732  // API parameter values that are decorated as "sensitive" in the API will not
 23733  // be included in the string output. The member name will be present, but the
 23734  // value will be replaced with "sensitive".
 23735  func (s UpdateFacetOutput) GoString() string {
 23736  	return s.String()
 23737  }
 23738  
 23739  type UpdateLinkAttributesInput struct {
 23740  	_ struct{} `type:"structure"`
 23741  
 23742  	// The attributes update structure.
 23743  	//
 23744  	// AttributeUpdates is a required field
 23745  	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
 23746  
 23747  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 23748  	// the updated typed link resides. For more information, see arns or Typed Links
 23749  	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 23750  	//
 23751  	// DirectoryArn is a required field
 23752  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 23753  
 23754  	// Allows a typed link specifier to be accepted as input.
 23755  	//
 23756  	// TypedLinkSpecifier is a required field
 23757  	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
 23758  }
 23759  
 23760  // String returns the string representation.
 23761  //
 23762  // API parameter values that are decorated as "sensitive" in the API will not
 23763  // be included in the string output. The member name will be present, but the
 23764  // value will be replaced with "sensitive".
 23765  func (s UpdateLinkAttributesInput) String() string {
 23766  	return awsutil.Prettify(s)
 23767  }
 23768  
 23769  // GoString returns the string representation.
 23770  //
 23771  // API parameter values that are decorated as "sensitive" in the API will not
 23772  // be included in the string output. The member name will be present, but the
 23773  // value will be replaced with "sensitive".
 23774  func (s UpdateLinkAttributesInput) GoString() string {
 23775  	return s.String()
 23776  }
 23777  
 23778  // Validate inspects the fields of the type to determine if they are valid.
 23779  func (s *UpdateLinkAttributesInput) Validate() error {
 23780  	invalidParams := request.ErrInvalidParams{Context: "UpdateLinkAttributesInput"}
 23781  	if s.AttributeUpdates == nil {
 23782  		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
 23783  	}
 23784  	if s.DirectoryArn == nil {
 23785  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 23786  	}
 23787  	if s.TypedLinkSpecifier == nil {
 23788  		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
 23789  	}
 23790  	if s.AttributeUpdates != nil {
 23791  		for i, v := range s.AttributeUpdates {
 23792  			if v == nil {
 23793  				continue
 23794  			}
 23795  			if err := v.Validate(); err != nil {
 23796  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 23797  			}
 23798  		}
 23799  	}
 23800  	if s.TypedLinkSpecifier != nil {
 23801  		if err := s.TypedLinkSpecifier.Validate(); err != nil {
 23802  			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
 23803  		}
 23804  	}
 23805  
 23806  	if invalidParams.Len() > 0 {
 23807  		return invalidParams
 23808  	}
 23809  	return nil
 23810  }
 23811  
 23812  // SetAttributeUpdates sets the AttributeUpdates field's value.
 23813  func (s *UpdateLinkAttributesInput) SetAttributeUpdates(v []*LinkAttributeUpdate) *UpdateLinkAttributesInput {
 23814  	s.AttributeUpdates = v
 23815  	return s
 23816  }
 23817  
 23818  // SetDirectoryArn sets the DirectoryArn field's value.
 23819  func (s *UpdateLinkAttributesInput) SetDirectoryArn(v string) *UpdateLinkAttributesInput {
 23820  	s.DirectoryArn = &v
 23821  	return s
 23822  }
 23823  
 23824  // SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
 23825  func (s *UpdateLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *UpdateLinkAttributesInput {
 23826  	s.TypedLinkSpecifier = v
 23827  	return s
 23828  }
 23829  
 23830  type UpdateLinkAttributesOutput struct {
 23831  	_ struct{} `type:"structure" nopayload:"true"`
 23832  }
 23833  
 23834  // String returns the string representation.
 23835  //
 23836  // API parameter values that are decorated as "sensitive" in the API will not
 23837  // be included in the string output. The member name will be present, but the
 23838  // value will be replaced with "sensitive".
 23839  func (s UpdateLinkAttributesOutput) String() string {
 23840  	return awsutil.Prettify(s)
 23841  }
 23842  
 23843  // GoString returns the string representation.
 23844  //
 23845  // API parameter values that are decorated as "sensitive" in the API will not
 23846  // be included in the string output. The member name will be present, but the
 23847  // value will be replaced with "sensitive".
 23848  func (s UpdateLinkAttributesOutput) GoString() string {
 23849  	return s.String()
 23850  }
 23851  
 23852  type UpdateObjectAttributesInput struct {
 23853  	_ struct{} `type:"structure"`
 23854  
 23855  	// The attributes update structure.
 23856  	//
 23857  	// AttributeUpdates is a required field
 23858  	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
 23859  
 23860  	// The Amazon Resource Name (ARN) that is associated with the Directory where
 23861  	// the object resides. For more information, see arns.
 23862  	//
 23863  	// DirectoryArn is a required field
 23864  	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 23865  
 23866  	// The reference that identifies the object.
 23867  	//
 23868  	// ObjectReference is a required field
 23869  	ObjectReference *ObjectReference `type:"structure" required:"true"`
 23870  }
 23871  
 23872  // String returns the string representation.
 23873  //
 23874  // API parameter values that are decorated as "sensitive" in the API will not
 23875  // be included in the string output. The member name will be present, but the
 23876  // value will be replaced with "sensitive".
 23877  func (s UpdateObjectAttributesInput) String() string {
 23878  	return awsutil.Prettify(s)
 23879  }
 23880  
 23881  // GoString returns the string representation.
 23882  //
 23883  // API parameter values that are decorated as "sensitive" in the API will not
 23884  // be included in the string output. The member name will be present, but the
 23885  // value will be replaced with "sensitive".
 23886  func (s UpdateObjectAttributesInput) GoString() string {
 23887  	return s.String()
 23888  }
 23889  
 23890  // Validate inspects the fields of the type to determine if they are valid.
 23891  func (s *UpdateObjectAttributesInput) Validate() error {
 23892  	invalidParams := request.ErrInvalidParams{Context: "UpdateObjectAttributesInput"}
 23893  	if s.AttributeUpdates == nil {
 23894  		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
 23895  	}
 23896  	if s.DirectoryArn == nil {
 23897  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 23898  	}
 23899  	if s.ObjectReference == nil {
 23900  		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
 23901  	}
 23902  	if s.AttributeUpdates != nil {
 23903  		for i, v := range s.AttributeUpdates {
 23904  			if v == nil {
 23905  				continue
 23906  			}
 23907  			if err := v.Validate(); err != nil {
 23908  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 23909  			}
 23910  		}
 23911  	}
 23912  
 23913  	if invalidParams.Len() > 0 {
 23914  		return invalidParams
 23915  	}
 23916  	return nil
 23917  }
 23918  
 23919  // SetAttributeUpdates sets the AttributeUpdates field's value.
 23920  func (s *UpdateObjectAttributesInput) SetAttributeUpdates(v []*ObjectAttributeUpdate) *UpdateObjectAttributesInput {
 23921  	s.AttributeUpdates = v
 23922  	return s
 23923  }
 23924  
 23925  // SetDirectoryArn sets the DirectoryArn field's value.
 23926  func (s *UpdateObjectAttributesInput) SetDirectoryArn(v string) *UpdateObjectAttributesInput {
 23927  	s.DirectoryArn = &v
 23928  	return s
 23929  }
 23930  
 23931  // SetObjectReference sets the ObjectReference field's value.
 23932  func (s *UpdateObjectAttributesInput) SetObjectReference(v *ObjectReference) *UpdateObjectAttributesInput {
 23933  	s.ObjectReference = v
 23934  	return s
 23935  }
 23936  
 23937  type UpdateObjectAttributesOutput struct {
 23938  	_ struct{} `type:"structure"`
 23939  
 23940  	// The ObjectIdentifier of the updated object.
 23941  	ObjectIdentifier *string `type:"string"`
 23942  }
 23943  
 23944  // String returns the string representation.
 23945  //
 23946  // API parameter values that are decorated as "sensitive" in the API will not
 23947  // be included in the string output. The member name will be present, but the
 23948  // value will be replaced with "sensitive".
 23949  func (s UpdateObjectAttributesOutput) String() string {
 23950  	return awsutil.Prettify(s)
 23951  }
 23952  
 23953  // GoString returns the string representation.
 23954  //
 23955  // API parameter values that are decorated as "sensitive" in the API will not
 23956  // be included in the string output. The member name will be present, but the
 23957  // value will be replaced with "sensitive".
 23958  func (s UpdateObjectAttributesOutput) GoString() string {
 23959  	return s.String()
 23960  }
 23961  
 23962  // SetObjectIdentifier sets the ObjectIdentifier field's value.
 23963  func (s *UpdateObjectAttributesOutput) SetObjectIdentifier(v string) *UpdateObjectAttributesOutput {
 23964  	s.ObjectIdentifier = &v
 23965  	return s
 23966  }
 23967  
 23968  type UpdateSchemaInput struct {
 23969  	_ struct{} `type:"structure"`
 23970  
 23971  	// The name of the schema.
 23972  	//
 23973  	// Name is a required field
 23974  	Name *string `min:"1" type:"string" required:"true"`
 23975  
 23976  	// The Amazon Resource Name (ARN) of the development schema. For more information,
 23977  	// see arns.
 23978  	//
 23979  	// SchemaArn is a required field
 23980  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 23981  }
 23982  
 23983  // String returns the string representation.
 23984  //
 23985  // API parameter values that are decorated as "sensitive" in the API will not
 23986  // be included in the string output. The member name will be present, but the
 23987  // value will be replaced with "sensitive".
 23988  func (s UpdateSchemaInput) String() string {
 23989  	return awsutil.Prettify(s)
 23990  }
 23991  
 23992  // GoString returns the string representation.
 23993  //
 23994  // API parameter values that are decorated as "sensitive" in the API will not
 23995  // be included in the string output. The member name will be present, but the
 23996  // value will be replaced with "sensitive".
 23997  func (s UpdateSchemaInput) GoString() string {
 23998  	return s.String()
 23999  }
 24000  
 24001  // Validate inspects the fields of the type to determine if they are valid.
 24002  func (s *UpdateSchemaInput) Validate() error {
 24003  	invalidParams := request.ErrInvalidParams{Context: "UpdateSchemaInput"}
 24004  	if s.Name == nil {
 24005  		invalidParams.Add(request.NewErrParamRequired("Name"))
 24006  	}
 24007  	if s.Name != nil && len(*s.Name) < 1 {
 24008  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 24009  	}
 24010  	if s.SchemaArn == nil {
 24011  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 24012  	}
 24013  
 24014  	if invalidParams.Len() > 0 {
 24015  		return invalidParams
 24016  	}
 24017  	return nil
 24018  }
 24019  
 24020  // SetName sets the Name field's value.
 24021  func (s *UpdateSchemaInput) SetName(v string) *UpdateSchemaInput {
 24022  	s.Name = &v
 24023  	return s
 24024  }
 24025  
 24026  // SetSchemaArn sets the SchemaArn field's value.
 24027  func (s *UpdateSchemaInput) SetSchemaArn(v string) *UpdateSchemaInput {
 24028  	s.SchemaArn = &v
 24029  	return s
 24030  }
 24031  
 24032  type UpdateSchemaOutput struct {
 24033  	_ struct{} `type:"structure"`
 24034  
 24035  	// The ARN that is associated with the updated schema. For more information,
 24036  	// see arns.
 24037  	SchemaArn *string `type:"string"`
 24038  }
 24039  
 24040  // String returns the string representation.
 24041  //
 24042  // API parameter values that are decorated as "sensitive" in the API will not
 24043  // be included in the string output. The member name will be present, but the
 24044  // value will be replaced with "sensitive".
 24045  func (s UpdateSchemaOutput) String() string {
 24046  	return awsutil.Prettify(s)
 24047  }
 24048  
 24049  // GoString returns the string representation.
 24050  //
 24051  // API parameter values that are decorated as "sensitive" in the API will not
 24052  // be included in the string output. The member name will be present, but the
 24053  // value will be replaced with "sensitive".
 24054  func (s UpdateSchemaOutput) GoString() string {
 24055  	return s.String()
 24056  }
 24057  
 24058  // SetSchemaArn sets the SchemaArn field's value.
 24059  func (s *UpdateSchemaOutput) SetSchemaArn(v string) *UpdateSchemaOutput {
 24060  	s.SchemaArn = &v
 24061  	return s
 24062  }
 24063  
 24064  type UpdateTypedLinkFacetInput struct {
 24065  	_ struct{} `type:"structure"`
 24066  
 24067  	// Attributes update structure.
 24068  	//
 24069  	// AttributeUpdates is a required field
 24070  	AttributeUpdates []*TypedLinkFacetAttributeUpdate `type:"list" required:"true"`
 24071  
 24072  	// The order of identity attributes for the facet, from most significant to
 24073  	// least significant. The ability to filter typed links considers the order
 24074  	// that the attributes are defined on the typed link facet. When providing ranges
 24075  	// to a typed link selection, any inexact ranges must be specified at the end.
 24076  	// Any attributes that do not have a range specified are presumed to match the
 24077  	// entire range. Filters are interpreted in the order of the attributes on the
 24078  	// typed link facet, not the order in which they are supplied to any API calls.
 24079  	// For more information about identity attributes, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
 24080  	//
 24081  	// IdentityAttributeOrder is a required field
 24082  	IdentityAttributeOrder []*string `type:"list" required:"true"`
 24083  
 24084  	// The unique name of the typed link facet.
 24085  	//
 24086  	// Name is a required field
 24087  	Name *string `type:"string" required:"true"`
 24088  
 24089  	// The Amazon Resource Name (ARN) that is associated with the schema. For more
 24090  	// information, see arns.
 24091  	//
 24092  	// SchemaArn is a required field
 24093  	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
 24094  }
 24095  
 24096  // String returns the string representation.
 24097  //
 24098  // API parameter values that are decorated as "sensitive" in the API will not
 24099  // be included in the string output. The member name will be present, but the
 24100  // value will be replaced with "sensitive".
 24101  func (s UpdateTypedLinkFacetInput) String() string {
 24102  	return awsutil.Prettify(s)
 24103  }
 24104  
 24105  // GoString returns the string representation.
 24106  //
 24107  // API parameter values that are decorated as "sensitive" in the API will not
 24108  // be included in the string output. The member name will be present, but the
 24109  // value will be replaced with "sensitive".
 24110  func (s UpdateTypedLinkFacetInput) GoString() string {
 24111  	return s.String()
 24112  }
 24113  
 24114  // Validate inspects the fields of the type to determine if they are valid.
 24115  func (s *UpdateTypedLinkFacetInput) Validate() error {
 24116  	invalidParams := request.ErrInvalidParams{Context: "UpdateTypedLinkFacetInput"}
 24117  	if s.AttributeUpdates == nil {
 24118  		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
 24119  	}
 24120  	if s.IdentityAttributeOrder == nil {
 24121  		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
 24122  	}
 24123  	if s.Name == nil {
 24124  		invalidParams.Add(request.NewErrParamRequired("Name"))
 24125  	}
 24126  	if s.SchemaArn == nil {
 24127  		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
 24128  	}
 24129  	if s.AttributeUpdates != nil {
 24130  		for i, v := range s.AttributeUpdates {
 24131  			if v == nil {
 24132  				continue
 24133  			}
 24134  			if err := v.Validate(); err != nil {
 24135  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
 24136  			}
 24137  		}
 24138  	}
 24139  
 24140  	if invalidParams.Len() > 0 {
 24141  		return invalidParams
 24142  	}
 24143  	return nil
 24144  }
 24145  
 24146  // SetAttributeUpdates sets the AttributeUpdates field's value.
 24147  func (s *UpdateTypedLinkFacetInput) SetAttributeUpdates(v []*TypedLinkFacetAttributeUpdate) *UpdateTypedLinkFacetInput {
 24148  	s.AttributeUpdates = v
 24149  	return s
 24150  }
 24151  
 24152  // SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
 24153  func (s *UpdateTypedLinkFacetInput) SetIdentityAttributeOrder(v []*string) *UpdateTypedLinkFacetInput {
 24154  	s.IdentityAttributeOrder = v
 24155  	return s
 24156  }
 24157  
 24158  // SetName sets the Name field's value.
 24159  func (s *UpdateTypedLinkFacetInput) SetName(v string) *UpdateTypedLinkFacetInput {
 24160  	s.Name = &v
 24161  	return s
 24162  }
 24163  
 24164  // SetSchemaArn sets the SchemaArn field's value.
 24165  func (s *UpdateTypedLinkFacetInput) SetSchemaArn(v string) *UpdateTypedLinkFacetInput {
 24166  	s.SchemaArn = &v
 24167  	return s
 24168  }
 24169  
 24170  type UpdateTypedLinkFacetOutput struct {
 24171  	_ struct{} `type:"structure" nopayload:"true"`
 24172  }
 24173  
 24174  // String returns the string representation.
 24175  //
 24176  // API parameter values that are decorated as "sensitive" in the API will not
 24177  // be included in the string output. The member name will be present, but the
 24178  // value will be replaced with "sensitive".
 24179  func (s UpdateTypedLinkFacetOutput) String() string {
 24180  	return awsutil.Prettify(s)
 24181  }
 24182  
 24183  // GoString returns the string representation.
 24184  //
 24185  // API parameter values that are decorated as "sensitive" in the API will not
 24186  // be included in the string output. The member name will be present, but the
 24187  // value will be replaced with "sensitive".
 24188  func (s UpdateTypedLinkFacetOutput) GoString() string {
 24189  	return s.String()
 24190  }
 24191  
 24192  type UpgradeAppliedSchemaInput struct {
 24193  	_ struct{} `type:"structure"`
 24194  
 24195  	// The ARN for the directory to which the upgraded schema will be applied.
 24196  	//
 24197  	// DirectoryArn is a required field
 24198  	DirectoryArn *string `type:"string" required:"true"`
 24199  
 24200  	// Used for testing whether the major version schemas are backward compatible
 24201  	// or not. If schema compatibility fails, an exception would be thrown else
 24202  	// the call would succeed but no changes will be saved. This parameter is optional.
 24203  	DryRun *bool `type:"boolean"`
 24204  
 24205  	// The revision of the published schema to upgrade the directory to.
 24206  	//
 24207  	// PublishedSchemaArn is a required field
 24208  	PublishedSchemaArn *string `type:"string" required:"true"`
 24209  }
 24210  
 24211  // String returns the string representation.
 24212  //
 24213  // API parameter values that are decorated as "sensitive" in the API will not
 24214  // be included in the string output. The member name will be present, but the
 24215  // value will be replaced with "sensitive".
 24216  func (s UpgradeAppliedSchemaInput) String() string {
 24217  	return awsutil.Prettify(s)
 24218  }
 24219  
 24220  // GoString returns the string representation.
 24221  //
 24222  // API parameter values that are decorated as "sensitive" in the API will not
 24223  // be included in the string output. The member name will be present, but the
 24224  // value will be replaced with "sensitive".
 24225  func (s UpgradeAppliedSchemaInput) GoString() string {
 24226  	return s.String()
 24227  }
 24228  
 24229  // Validate inspects the fields of the type to determine if they are valid.
 24230  func (s *UpgradeAppliedSchemaInput) Validate() error {
 24231  	invalidParams := request.ErrInvalidParams{Context: "UpgradeAppliedSchemaInput"}
 24232  	if s.DirectoryArn == nil {
 24233  		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
 24234  	}
 24235  	if s.PublishedSchemaArn == nil {
 24236  		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
 24237  	}
 24238  
 24239  	if invalidParams.Len() > 0 {
 24240  		return invalidParams
 24241  	}
 24242  	return nil
 24243  }
 24244  
 24245  // SetDirectoryArn sets the DirectoryArn field's value.
 24246  func (s *UpgradeAppliedSchemaInput) SetDirectoryArn(v string) *UpgradeAppliedSchemaInput {
 24247  	s.DirectoryArn = &v
 24248  	return s
 24249  }
 24250  
 24251  // SetDryRun sets the DryRun field's value.
 24252  func (s *UpgradeAppliedSchemaInput) SetDryRun(v bool) *UpgradeAppliedSchemaInput {
 24253  	s.DryRun = &v
 24254  	return s
 24255  }
 24256  
 24257  // SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
 24258  func (s *UpgradeAppliedSchemaInput) SetPublishedSchemaArn(v string) *UpgradeAppliedSchemaInput {
 24259  	s.PublishedSchemaArn = &v
 24260  	return s
 24261  }
 24262  
 24263  type UpgradeAppliedSchemaOutput struct {
 24264  	_ struct{} `type:"structure"`
 24265  
 24266  	// The ARN of the directory that is returned as part of the response.
 24267  	DirectoryArn *string `type:"string"`
 24268  
 24269  	// The ARN of the upgraded schema that is returned as part of the response.
 24270  	UpgradedSchemaArn *string `type:"string"`
 24271  }
 24272  
 24273  // String returns the string representation.
 24274  //
 24275  // API parameter values that are decorated as "sensitive" in the API will not
 24276  // be included in the string output. The member name will be present, but the
 24277  // value will be replaced with "sensitive".
 24278  func (s UpgradeAppliedSchemaOutput) String() string {
 24279  	return awsutil.Prettify(s)
 24280  }
 24281  
 24282  // GoString returns the string representation.
 24283  //
 24284  // API parameter values that are decorated as "sensitive" in the API will not
 24285  // be included in the string output. The member name will be present, but the
 24286  // value will be replaced with "sensitive".
 24287  func (s UpgradeAppliedSchemaOutput) GoString() string {
 24288  	return s.String()
 24289  }
 24290  
 24291  // SetDirectoryArn sets the DirectoryArn field's value.
 24292  func (s *UpgradeAppliedSchemaOutput) SetDirectoryArn(v string) *UpgradeAppliedSchemaOutput {
 24293  	s.DirectoryArn = &v
 24294  	return s
 24295  }
 24296  
 24297  // SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
 24298  func (s *UpgradeAppliedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradeAppliedSchemaOutput {
 24299  	s.UpgradedSchemaArn = &v
 24300  	return s
 24301  }
 24302  
 24303  type UpgradePublishedSchemaInput struct {
 24304  	_ struct{} `type:"structure"`
 24305  
 24306  	// The ARN of the development schema with the changes used for the upgrade.
 24307  	//
 24308  	// DevelopmentSchemaArn is a required field
 24309  	DevelopmentSchemaArn *string `type:"string" required:"true"`
 24310  
 24311  	// Used for testing whether the Development schema provided is backwards compatible,
 24312  	// or not, with the publish schema provided by the user to be upgraded. If schema
 24313  	// compatibility fails, an exception would be thrown else the call would succeed.
 24314  	// This parameter is optional and defaults to false.
 24315  	DryRun *bool `type:"boolean"`
 24316  
 24317  	// Identifies the minor version of the published schema that will be created.
 24318  	// This parameter is NOT optional.
 24319  	//
 24320  	// MinorVersion is a required field
 24321  	MinorVersion *string `min:"1" type:"string" required:"true"`
 24322  
 24323  	// The ARN of the published schema to be upgraded.
 24324  	//
 24325  	// PublishedSchemaArn is a required field
 24326  	PublishedSchemaArn *string `type:"string" required:"true"`
 24327  }
 24328  
 24329  // String returns the string representation.
 24330  //
 24331  // API parameter values that are decorated as "sensitive" in the API will not
 24332  // be included in the string output. The member name will be present, but the
 24333  // value will be replaced with "sensitive".
 24334  func (s UpgradePublishedSchemaInput) String() string {
 24335  	return awsutil.Prettify(s)
 24336  }
 24337  
 24338  // GoString returns the string representation.
 24339  //
 24340  // API parameter values that are decorated as "sensitive" in the API will not
 24341  // be included in the string output. The member name will be present, but the
 24342  // value will be replaced with "sensitive".
 24343  func (s UpgradePublishedSchemaInput) GoString() string {
 24344  	return s.String()
 24345  }
 24346  
 24347  // Validate inspects the fields of the type to determine if they are valid.
 24348  func (s *UpgradePublishedSchemaInput) Validate() error {
 24349  	invalidParams := request.ErrInvalidParams{Context: "UpgradePublishedSchemaInput"}
 24350  	if s.DevelopmentSchemaArn == nil {
 24351  		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
 24352  	}
 24353  	if s.MinorVersion == nil {
 24354  		invalidParams.Add(request.NewErrParamRequired("MinorVersion"))
 24355  	}
 24356  	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
 24357  		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
 24358  	}
 24359  	if s.PublishedSchemaArn == nil {
 24360  		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
 24361  	}
 24362  
 24363  	if invalidParams.Len() > 0 {
 24364  		return invalidParams
 24365  	}
 24366  	return nil
 24367  }
 24368  
 24369  // SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
 24370  func (s *UpgradePublishedSchemaInput) SetDevelopmentSchemaArn(v string) *UpgradePublishedSchemaInput {
 24371  	s.DevelopmentSchemaArn = &v
 24372  	return s
 24373  }
 24374  
 24375  // SetDryRun sets the DryRun field's value.
 24376  func (s *UpgradePublishedSchemaInput) SetDryRun(v bool) *UpgradePublishedSchemaInput {
 24377  	s.DryRun = &v
 24378  	return s
 24379  }
 24380  
 24381  // SetMinorVersion sets the MinorVersion field's value.
 24382  func (s *UpgradePublishedSchemaInput) SetMinorVersion(v string) *UpgradePublishedSchemaInput {
 24383  	s.MinorVersion = &v
 24384  	return s
 24385  }
 24386  
 24387  // SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
 24388  func (s *UpgradePublishedSchemaInput) SetPublishedSchemaArn(v string) *UpgradePublishedSchemaInput {
 24389  	s.PublishedSchemaArn = &v
 24390  	return s
 24391  }
 24392  
 24393  type UpgradePublishedSchemaOutput struct {
 24394  	_ struct{} `type:"structure"`
 24395  
 24396  	// The ARN of the upgraded schema that is returned as part of the response.
 24397  	UpgradedSchemaArn *string `type:"string"`
 24398  }
 24399  
 24400  // String returns the string representation.
 24401  //
 24402  // API parameter values that are decorated as "sensitive" in the API will not
 24403  // be included in the string output. The member name will be present, but the
 24404  // value will be replaced with "sensitive".
 24405  func (s UpgradePublishedSchemaOutput) String() string {
 24406  	return awsutil.Prettify(s)
 24407  }
 24408  
 24409  // GoString returns the string representation.
 24410  //
 24411  // API parameter values that are decorated as "sensitive" in the API will not
 24412  // be included in the string output. The member name will be present, but the
 24413  // value will be replaced with "sensitive".
 24414  func (s UpgradePublishedSchemaOutput) GoString() string {
 24415  	return s.String()
 24416  }
 24417  
 24418  // SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
 24419  func (s *UpgradePublishedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradePublishedSchemaOutput {
 24420  	s.UpgradedSchemaArn = &v
 24421  	return s
 24422  }
 24423  
 24424  // Indicates that your request is malformed in some manner. See the exception
 24425  // message.
 24426  type ValidationException struct {
 24427  	_            struct{}                  `type:"structure"`
 24428  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 24429  
 24430  	Message_ *string `locationName:"Message" type:"string"`
 24431  }
 24432  
 24433  // String returns the string representation.
 24434  //
 24435  // API parameter values that are decorated as "sensitive" in the API will not
 24436  // be included in the string output. The member name will be present, but the
 24437  // value will be replaced with "sensitive".
 24438  func (s ValidationException) String() string {
 24439  	return awsutil.Prettify(s)
 24440  }
 24441  
 24442  // GoString returns the string representation.
 24443  //
 24444  // API parameter values that are decorated as "sensitive" in the API will not
 24445  // be included in the string output. The member name will be present, but the
 24446  // value will be replaced with "sensitive".
 24447  func (s ValidationException) GoString() string {
 24448  	return s.String()
 24449  }
 24450  
 24451  func newErrorValidationException(v protocol.ResponseMetadata) error {
 24452  	return &ValidationException{
 24453  		RespMetadata: v,
 24454  	}
 24455  }
 24456  
 24457  // Code returns the exception type name.
 24458  func (s *ValidationException) Code() string {
 24459  	return "ValidationException"
 24460  }
 24461  
 24462  // Message returns the exception's message.
 24463  func (s *ValidationException) Message() string {
 24464  	if s.Message_ != nil {
 24465  		return *s.Message_
 24466  	}
 24467  	return ""
 24468  }
 24469  
 24470  // OrigErr always returns nil, satisfies awserr.Error interface.
 24471  func (s *ValidationException) OrigErr() error {
 24472  	return nil
 24473  }
 24474  
 24475  func (s *ValidationException) Error() string {
 24476  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 24477  }
 24478  
 24479  // Status code returns the HTTP status code for the request's response error.
 24480  func (s *ValidationException) StatusCode() int {
 24481  	return s.RespMetadata.StatusCode
 24482  }
 24483  
 24484  // RequestID returns the service's response RequestID for request.
 24485  func (s *ValidationException) RequestID() string {
 24486  	return s.RespMetadata.RequestID
 24487  }
 24488  
 24489  const (
 24490  	// BatchReadExceptionTypeValidationException is a BatchReadExceptionType enum value
 24491  	BatchReadExceptionTypeValidationException = "ValidationException"
 24492  
 24493  	// BatchReadExceptionTypeInvalidArnException is a BatchReadExceptionType enum value
 24494  	BatchReadExceptionTypeInvalidArnException = "InvalidArnException"
 24495  
 24496  	// BatchReadExceptionTypeResourceNotFoundException is a BatchReadExceptionType enum value
 24497  	BatchReadExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
 24498  
 24499  	// BatchReadExceptionTypeInvalidNextTokenException is a BatchReadExceptionType enum value
 24500  	BatchReadExceptionTypeInvalidNextTokenException = "InvalidNextTokenException"
 24501  
 24502  	// BatchReadExceptionTypeAccessDeniedException is a BatchReadExceptionType enum value
 24503  	BatchReadExceptionTypeAccessDeniedException = "AccessDeniedException"
 24504  
 24505  	// BatchReadExceptionTypeNotNodeException is a BatchReadExceptionType enum value
 24506  	BatchReadExceptionTypeNotNodeException = "NotNodeException"
 24507  
 24508  	// BatchReadExceptionTypeFacetValidationException is a BatchReadExceptionType enum value
 24509  	BatchReadExceptionTypeFacetValidationException = "FacetValidationException"
 24510  
 24511  	// BatchReadExceptionTypeCannotListParentOfRootException is a BatchReadExceptionType enum value
 24512  	BatchReadExceptionTypeCannotListParentOfRootException = "CannotListParentOfRootException"
 24513  
 24514  	// BatchReadExceptionTypeNotIndexException is a BatchReadExceptionType enum value
 24515  	BatchReadExceptionTypeNotIndexException = "NotIndexException"
 24516  
 24517  	// BatchReadExceptionTypeNotPolicyException is a BatchReadExceptionType enum value
 24518  	BatchReadExceptionTypeNotPolicyException = "NotPolicyException"
 24519  
 24520  	// BatchReadExceptionTypeDirectoryNotEnabledException is a BatchReadExceptionType enum value
 24521  	BatchReadExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
 24522  
 24523  	// BatchReadExceptionTypeLimitExceededException is a BatchReadExceptionType enum value
 24524  	BatchReadExceptionTypeLimitExceededException = "LimitExceededException"
 24525  
 24526  	// BatchReadExceptionTypeInternalServiceException is a BatchReadExceptionType enum value
 24527  	BatchReadExceptionTypeInternalServiceException = "InternalServiceException"
 24528  )
 24529  
 24530  // BatchReadExceptionType_Values returns all elements of the BatchReadExceptionType enum
 24531  func BatchReadExceptionType_Values() []string {
 24532  	return []string{
 24533  		BatchReadExceptionTypeValidationException,
 24534  		BatchReadExceptionTypeInvalidArnException,
 24535  		BatchReadExceptionTypeResourceNotFoundException,
 24536  		BatchReadExceptionTypeInvalidNextTokenException,
 24537  		BatchReadExceptionTypeAccessDeniedException,
 24538  		BatchReadExceptionTypeNotNodeException,
 24539  		BatchReadExceptionTypeFacetValidationException,
 24540  		BatchReadExceptionTypeCannotListParentOfRootException,
 24541  		BatchReadExceptionTypeNotIndexException,
 24542  		BatchReadExceptionTypeNotPolicyException,
 24543  		BatchReadExceptionTypeDirectoryNotEnabledException,
 24544  		BatchReadExceptionTypeLimitExceededException,
 24545  		BatchReadExceptionTypeInternalServiceException,
 24546  	}
 24547  }
 24548  
 24549  const (
 24550  	// BatchWriteExceptionTypeInternalServiceException is a BatchWriteExceptionType enum value
 24551  	BatchWriteExceptionTypeInternalServiceException = "InternalServiceException"
 24552  
 24553  	// BatchWriteExceptionTypeValidationException is a BatchWriteExceptionType enum value
 24554  	BatchWriteExceptionTypeValidationException = "ValidationException"
 24555  
 24556  	// BatchWriteExceptionTypeInvalidArnException is a BatchWriteExceptionType enum value
 24557  	BatchWriteExceptionTypeInvalidArnException = "InvalidArnException"
 24558  
 24559  	// BatchWriteExceptionTypeLinkNameAlreadyInUseException is a BatchWriteExceptionType enum value
 24560  	BatchWriteExceptionTypeLinkNameAlreadyInUseException = "LinkNameAlreadyInUseException"
 24561  
 24562  	// BatchWriteExceptionTypeStillContainsLinksException is a BatchWriteExceptionType enum value
 24563  	BatchWriteExceptionTypeStillContainsLinksException = "StillContainsLinksException"
 24564  
 24565  	// BatchWriteExceptionTypeFacetValidationException is a BatchWriteExceptionType enum value
 24566  	BatchWriteExceptionTypeFacetValidationException = "FacetValidationException"
 24567  
 24568  	// BatchWriteExceptionTypeObjectNotDetachedException is a BatchWriteExceptionType enum value
 24569  	BatchWriteExceptionTypeObjectNotDetachedException = "ObjectNotDetachedException"
 24570  
 24571  	// BatchWriteExceptionTypeResourceNotFoundException is a BatchWriteExceptionType enum value
 24572  	BatchWriteExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
 24573  
 24574  	// BatchWriteExceptionTypeAccessDeniedException is a BatchWriteExceptionType enum value
 24575  	BatchWriteExceptionTypeAccessDeniedException = "AccessDeniedException"
 24576  
 24577  	// BatchWriteExceptionTypeInvalidAttachmentException is a BatchWriteExceptionType enum value
 24578  	BatchWriteExceptionTypeInvalidAttachmentException = "InvalidAttachmentException"
 24579  
 24580  	// BatchWriteExceptionTypeNotIndexException is a BatchWriteExceptionType enum value
 24581  	BatchWriteExceptionTypeNotIndexException = "NotIndexException"
 24582  
 24583  	// BatchWriteExceptionTypeNotNodeException is a BatchWriteExceptionType enum value
 24584  	BatchWriteExceptionTypeNotNodeException = "NotNodeException"
 24585  
 24586  	// BatchWriteExceptionTypeIndexedAttributeMissingException is a BatchWriteExceptionType enum value
 24587  	BatchWriteExceptionTypeIndexedAttributeMissingException = "IndexedAttributeMissingException"
 24588  
 24589  	// BatchWriteExceptionTypeObjectAlreadyDetachedException is a BatchWriteExceptionType enum value
 24590  	BatchWriteExceptionTypeObjectAlreadyDetachedException = "ObjectAlreadyDetachedException"
 24591  
 24592  	// BatchWriteExceptionTypeNotPolicyException is a BatchWriteExceptionType enum value
 24593  	BatchWriteExceptionTypeNotPolicyException = "NotPolicyException"
 24594  
 24595  	// BatchWriteExceptionTypeDirectoryNotEnabledException is a BatchWriteExceptionType enum value
 24596  	BatchWriteExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
 24597  
 24598  	// BatchWriteExceptionTypeLimitExceededException is a BatchWriteExceptionType enum value
 24599  	BatchWriteExceptionTypeLimitExceededException = "LimitExceededException"
 24600  
 24601  	// BatchWriteExceptionTypeUnsupportedIndexTypeException is a BatchWriteExceptionType enum value
 24602  	BatchWriteExceptionTypeUnsupportedIndexTypeException = "UnsupportedIndexTypeException"
 24603  )
 24604  
 24605  // BatchWriteExceptionType_Values returns all elements of the BatchWriteExceptionType enum
 24606  func BatchWriteExceptionType_Values() []string {
 24607  	return []string{
 24608  		BatchWriteExceptionTypeInternalServiceException,
 24609  		BatchWriteExceptionTypeValidationException,
 24610  		BatchWriteExceptionTypeInvalidArnException,
 24611  		BatchWriteExceptionTypeLinkNameAlreadyInUseException,
 24612  		BatchWriteExceptionTypeStillContainsLinksException,
 24613  		BatchWriteExceptionTypeFacetValidationException,
 24614  		BatchWriteExceptionTypeObjectNotDetachedException,
 24615  		BatchWriteExceptionTypeResourceNotFoundException,
 24616  		BatchWriteExceptionTypeAccessDeniedException,
 24617  		BatchWriteExceptionTypeInvalidAttachmentException,
 24618  		BatchWriteExceptionTypeNotIndexException,
 24619  		BatchWriteExceptionTypeNotNodeException,
 24620  		BatchWriteExceptionTypeIndexedAttributeMissingException,
 24621  		BatchWriteExceptionTypeObjectAlreadyDetachedException,
 24622  		BatchWriteExceptionTypeNotPolicyException,
 24623  		BatchWriteExceptionTypeDirectoryNotEnabledException,
 24624  		BatchWriteExceptionTypeLimitExceededException,
 24625  		BatchWriteExceptionTypeUnsupportedIndexTypeException,
 24626  	}
 24627  }
 24628  
 24629  const (
 24630  	// ConsistencyLevelSerializable is a ConsistencyLevel enum value
 24631  	ConsistencyLevelSerializable = "SERIALIZABLE"
 24632  
 24633  	// ConsistencyLevelEventual is a ConsistencyLevel enum value
 24634  	ConsistencyLevelEventual = "EVENTUAL"
 24635  )
 24636  
 24637  // ConsistencyLevel_Values returns all elements of the ConsistencyLevel enum
 24638  func ConsistencyLevel_Values() []string {
 24639  	return []string{
 24640  		ConsistencyLevelSerializable,
 24641  		ConsistencyLevelEventual,
 24642  	}
 24643  }
 24644  
 24645  const (
 24646  	// DirectoryStateEnabled is a DirectoryState enum value
 24647  	DirectoryStateEnabled = "ENABLED"
 24648  
 24649  	// DirectoryStateDisabled is a DirectoryState enum value
 24650  	DirectoryStateDisabled = "DISABLED"
 24651  
 24652  	// DirectoryStateDeleted is a DirectoryState enum value
 24653  	DirectoryStateDeleted = "DELETED"
 24654  )
 24655  
 24656  // DirectoryState_Values returns all elements of the DirectoryState enum
 24657  func DirectoryState_Values() []string {
 24658  	return []string{
 24659  		DirectoryStateEnabled,
 24660  		DirectoryStateDisabled,
 24661  		DirectoryStateDeleted,
 24662  	}
 24663  }
 24664  
 24665  const (
 24666  	// FacetAttributeTypeString is a FacetAttributeType enum value
 24667  	FacetAttributeTypeString = "STRING"
 24668  
 24669  	// FacetAttributeTypeBinary is a FacetAttributeType enum value
 24670  	FacetAttributeTypeBinary = "BINARY"
 24671  
 24672  	// FacetAttributeTypeBoolean is a FacetAttributeType enum value
 24673  	FacetAttributeTypeBoolean = "BOOLEAN"
 24674  
 24675  	// FacetAttributeTypeNumber is a FacetAttributeType enum value
 24676  	FacetAttributeTypeNumber = "NUMBER"
 24677  
 24678  	// FacetAttributeTypeDatetime is a FacetAttributeType enum value
 24679  	FacetAttributeTypeDatetime = "DATETIME"
 24680  
 24681  	// FacetAttributeTypeVariant is a FacetAttributeType enum value
 24682  	FacetAttributeTypeVariant = "VARIANT"
 24683  )
 24684  
 24685  // FacetAttributeType_Values returns all elements of the FacetAttributeType enum
 24686  func FacetAttributeType_Values() []string {
 24687  	return []string{
 24688  		FacetAttributeTypeString,
 24689  		FacetAttributeTypeBinary,
 24690  		FacetAttributeTypeBoolean,
 24691  		FacetAttributeTypeNumber,
 24692  		FacetAttributeTypeDatetime,
 24693  		FacetAttributeTypeVariant,
 24694  	}
 24695  }
 24696  
 24697  const (
 24698  	// FacetStyleStatic is a FacetStyle enum value
 24699  	FacetStyleStatic = "STATIC"
 24700  
 24701  	// FacetStyleDynamic is a FacetStyle enum value
 24702  	FacetStyleDynamic = "DYNAMIC"
 24703  )
 24704  
 24705  // FacetStyle_Values returns all elements of the FacetStyle enum
 24706  func FacetStyle_Values() []string {
 24707  	return []string{
 24708  		FacetStyleStatic,
 24709  		FacetStyleDynamic,
 24710  	}
 24711  }
 24712  
 24713  const (
 24714  	// ObjectTypeNode is a ObjectType enum value
 24715  	ObjectTypeNode = "NODE"
 24716  
 24717  	// ObjectTypeLeafNode is a ObjectType enum value
 24718  	ObjectTypeLeafNode = "LEAF_NODE"
 24719  
 24720  	// ObjectTypePolicy is a ObjectType enum value
 24721  	ObjectTypePolicy = "POLICY"
 24722  
 24723  	// ObjectTypeIndex is a ObjectType enum value
 24724  	ObjectTypeIndex = "INDEX"
 24725  )
 24726  
 24727  // ObjectType_Values returns all elements of the ObjectType enum
 24728  func ObjectType_Values() []string {
 24729  	return []string{
 24730  		ObjectTypeNode,
 24731  		ObjectTypeLeafNode,
 24732  		ObjectTypePolicy,
 24733  		ObjectTypeIndex,
 24734  	}
 24735  }
 24736  
 24737  const (
 24738  	// RangeModeFirst is a RangeMode enum value
 24739  	RangeModeFirst = "FIRST"
 24740  
 24741  	// RangeModeLast is a RangeMode enum value
 24742  	RangeModeLast = "LAST"
 24743  
 24744  	// RangeModeLastBeforeMissingValues is a RangeMode enum value
 24745  	RangeModeLastBeforeMissingValues = "LAST_BEFORE_MISSING_VALUES"
 24746  
 24747  	// RangeModeInclusive is a RangeMode enum value
 24748  	RangeModeInclusive = "INCLUSIVE"
 24749  
 24750  	// RangeModeExclusive is a RangeMode enum value
 24751  	RangeModeExclusive = "EXCLUSIVE"
 24752  )
 24753  
 24754  // RangeMode_Values returns all elements of the RangeMode enum
 24755  func RangeMode_Values() []string {
 24756  	return []string{
 24757  		RangeModeFirst,
 24758  		RangeModeLast,
 24759  		RangeModeLastBeforeMissingValues,
 24760  		RangeModeInclusive,
 24761  		RangeModeExclusive,
 24762  	}
 24763  }
 24764  
 24765  const (
 24766  	// RequiredAttributeBehaviorRequiredAlways is a RequiredAttributeBehavior enum value
 24767  	RequiredAttributeBehaviorRequiredAlways = "REQUIRED_ALWAYS"
 24768  
 24769  	// RequiredAttributeBehaviorNotRequired is a RequiredAttributeBehavior enum value
 24770  	RequiredAttributeBehaviorNotRequired = "NOT_REQUIRED"
 24771  )
 24772  
 24773  // RequiredAttributeBehavior_Values returns all elements of the RequiredAttributeBehavior enum
 24774  func RequiredAttributeBehavior_Values() []string {
 24775  	return []string{
 24776  		RequiredAttributeBehaviorRequiredAlways,
 24777  		RequiredAttributeBehaviorNotRequired,
 24778  	}
 24779  }
 24780  
 24781  const (
 24782  	// RuleTypeBinaryLength is a RuleType enum value
 24783  	RuleTypeBinaryLength = "BINARY_LENGTH"
 24784  
 24785  	// RuleTypeNumberComparison is a RuleType enum value
 24786  	RuleTypeNumberComparison = "NUMBER_COMPARISON"
 24787  
 24788  	// RuleTypeStringFromSet is a RuleType enum value
 24789  	RuleTypeStringFromSet = "STRING_FROM_SET"
 24790  
 24791  	// RuleTypeStringLength is a RuleType enum value
 24792  	RuleTypeStringLength = "STRING_LENGTH"
 24793  )
 24794  
 24795  // RuleType_Values returns all elements of the RuleType enum
 24796  func RuleType_Values() []string {
 24797  	return []string{
 24798  		RuleTypeBinaryLength,
 24799  		RuleTypeNumberComparison,
 24800  		RuleTypeStringFromSet,
 24801  		RuleTypeStringLength,
 24802  	}
 24803  }
 24804  
 24805  const (
 24806  	// UpdateActionTypeCreateOrUpdate is a UpdateActionType enum value
 24807  	UpdateActionTypeCreateOrUpdate = "CREATE_OR_UPDATE"
 24808  
 24809  	// UpdateActionTypeDelete is a UpdateActionType enum value
 24810  	UpdateActionTypeDelete = "DELETE"
 24811  )
 24812  
 24813  // UpdateActionType_Values returns all elements of the UpdateActionType enum
 24814  func UpdateActionType_Values() []string {
 24815  	return []string{
 24816  		UpdateActionTypeCreateOrUpdate,
 24817  		UpdateActionTypeDelete,
 24818  	}
 24819  }