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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package managedgrafana
     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  )
    14  
    15  const opAssociateLicense = "AssociateLicense"
    16  
    17  // AssociateLicenseRequest generates a "aws/request.Request" representing the
    18  // client's request for the AssociateLicense operation. The "output" return
    19  // value will be populated with the request's response once the request completes
    20  // successfully.
    21  //
    22  // Use "Send" method on the returned Request to send the API call to the service.
    23  // the "output" return value is not valid until after Send returns without error.
    24  //
    25  // See AssociateLicense for more information on using the AssociateLicense
    26  // API call, and error handling.
    27  //
    28  // This method is useful when you want to inject custom logic or configuration
    29  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    30  //
    31  //
    32  //    // Example sending a request using the AssociateLicenseRequest method.
    33  //    req, resp := client.AssociateLicenseRequest(params)
    34  //
    35  //    err := req.Send()
    36  //    if err == nil { // resp is now filled
    37  //        fmt.Println(resp)
    38  //    }
    39  //
    40  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/AssociateLicense
    41  func (c *ManagedGrafana) AssociateLicenseRequest(input *AssociateLicenseInput) (req *request.Request, output *AssociateLicenseOutput) {
    42  	op := &request.Operation{
    43  		Name:       opAssociateLicense,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/workspaces/{workspaceId}/licenses/{licenseType}",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &AssociateLicenseInput{}
    50  	}
    51  
    52  	output = &AssociateLicenseOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	return
    55  }
    56  
    57  // AssociateLicense API operation for Amazon Managed Grafana.
    58  //
    59  // Assigns a Grafana Enterprise license to a workspace. Upgrading to Grafana
    60  // Enterprise incurs additional fees. For more information, see Upgrade a workspace
    61  // to Grafana Enterprise (https://docs.aws.amazon.com/grafana/latest/userguide/upgrade-to-Grafana-Enterprise.html).
    62  //
    63  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    64  // with awserr.Error's Code and Message methods to get detailed information about
    65  // the error.
    66  //
    67  // See the AWS API reference guide for Amazon Managed Grafana's
    68  // API operation AssociateLicense for usage and error information.
    69  //
    70  // Returned Error Types:
    71  //   * ResourceNotFoundException
    72  //   The request references a resource that does not exist.
    73  //
    74  //   * ThrottlingException
    75  //   The request was denied because of request throttling. Retry the request.
    76  //
    77  //   * ValidationException
    78  //   The value of a parameter in the request caused an error.
    79  //
    80  //   * AccessDeniedException
    81  //   You do not have sufficient permissions to perform this action.
    82  //
    83  //   * InternalServerException
    84  //   Unexpected error while processing the request. Retry the request.
    85  //
    86  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/AssociateLicense
    87  func (c *ManagedGrafana) AssociateLicense(input *AssociateLicenseInput) (*AssociateLicenseOutput, error) {
    88  	req, out := c.AssociateLicenseRequest(input)
    89  	return out, req.Send()
    90  }
    91  
    92  // AssociateLicenseWithContext is the same as AssociateLicense with the addition of
    93  // the ability to pass a context and additional request options.
    94  //
    95  // See AssociateLicense for details on how to use this API operation.
    96  //
    97  // The context must be non-nil and will be used for request cancellation. If
    98  // the context is nil a panic will occur. In the future the SDK may create
    99  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   100  // for more information on using Contexts.
   101  func (c *ManagedGrafana) AssociateLicenseWithContext(ctx aws.Context, input *AssociateLicenseInput, opts ...request.Option) (*AssociateLicenseOutput, error) {
   102  	req, out := c.AssociateLicenseRequest(input)
   103  	req.SetContext(ctx)
   104  	req.ApplyOptions(opts...)
   105  	return out, req.Send()
   106  }
   107  
   108  const opCreateWorkspace = "CreateWorkspace"
   109  
   110  // CreateWorkspaceRequest generates a "aws/request.Request" representing the
   111  // client's request for the CreateWorkspace operation. The "output" return
   112  // value will be populated with the request's response once the request completes
   113  // successfully.
   114  //
   115  // Use "Send" method on the returned Request to send the API call to the service.
   116  // the "output" return value is not valid until after Send returns without error.
   117  //
   118  // See CreateWorkspace for more information on using the CreateWorkspace
   119  // API call, and error handling.
   120  //
   121  // This method is useful when you want to inject custom logic or configuration
   122  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   123  //
   124  //
   125  //    // Example sending a request using the CreateWorkspaceRequest method.
   126  //    req, resp := client.CreateWorkspaceRequest(params)
   127  //
   128  //    err := req.Send()
   129  //    if err == nil { // resp is now filled
   130  //        fmt.Println(resp)
   131  //    }
   132  //
   133  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/CreateWorkspace
   134  func (c *ManagedGrafana) CreateWorkspaceRequest(input *CreateWorkspaceInput) (req *request.Request, output *CreateWorkspaceOutput) {
   135  	op := &request.Operation{
   136  		Name:       opCreateWorkspace,
   137  		HTTPMethod: "POST",
   138  		HTTPPath:   "/workspaces",
   139  	}
   140  
   141  	if input == nil {
   142  		input = &CreateWorkspaceInput{}
   143  	}
   144  
   145  	output = &CreateWorkspaceOutput{}
   146  	req = c.newRequest(op, input, output)
   147  	return
   148  }
   149  
   150  // CreateWorkspace API operation for Amazon Managed Grafana.
   151  //
   152  // Creates a workspace. In a workspace, you can create Grafana dashboards and
   153  // visualizations to analyze your metrics, logs, and traces. You don't have
   154  // to build, package, or deploy any hardware to run the Grafana server.
   155  //
   156  // Don't use CreateWorkspace to modify an existing workspace. Instead, use UpdateWorkspace
   157  // (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdateWorkspace.html).
   158  //
   159  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   160  // with awserr.Error's Code and Message methods to get detailed information about
   161  // the error.
   162  //
   163  // See the AWS API reference guide for Amazon Managed Grafana's
   164  // API operation CreateWorkspace for usage and error information.
   165  //
   166  // Returned Error Types:
   167  //   * ThrottlingException
   168  //   The request was denied because of request throttling. Retry the request.
   169  //
   170  //   * ConflictException
   171  //   A resource was in an inconsistent state during an update or a deletion.
   172  //
   173  //   * ValidationException
   174  //   The value of a parameter in the request caused an error.
   175  //
   176  //   * AccessDeniedException
   177  //   You do not have sufficient permissions to perform this action.
   178  //
   179  //   * InternalServerException
   180  //   Unexpected error while processing the request. Retry the request.
   181  //
   182  //   * ServiceQuotaExceededException
   183  //   The request would cause a service quota to be exceeded.
   184  //
   185  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/CreateWorkspace
   186  func (c *ManagedGrafana) CreateWorkspace(input *CreateWorkspaceInput) (*CreateWorkspaceOutput, error) {
   187  	req, out := c.CreateWorkspaceRequest(input)
   188  	return out, req.Send()
   189  }
   190  
   191  // CreateWorkspaceWithContext is the same as CreateWorkspace with the addition of
   192  // the ability to pass a context and additional request options.
   193  //
   194  // See CreateWorkspace for details on how to use this API operation.
   195  //
   196  // The context must be non-nil and will be used for request cancellation. If
   197  // the context is nil a panic will occur. In the future the SDK may create
   198  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   199  // for more information on using Contexts.
   200  func (c *ManagedGrafana) CreateWorkspaceWithContext(ctx aws.Context, input *CreateWorkspaceInput, opts ...request.Option) (*CreateWorkspaceOutput, error) {
   201  	req, out := c.CreateWorkspaceRequest(input)
   202  	req.SetContext(ctx)
   203  	req.ApplyOptions(opts...)
   204  	return out, req.Send()
   205  }
   206  
   207  const opDeleteWorkspace = "DeleteWorkspace"
   208  
   209  // DeleteWorkspaceRequest generates a "aws/request.Request" representing the
   210  // client's request for the DeleteWorkspace operation. The "output" return
   211  // value will be populated with the request's response once the request completes
   212  // successfully.
   213  //
   214  // Use "Send" method on the returned Request to send the API call to the service.
   215  // the "output" return value is not valid until after Send returns without error.
   216  //
   217  // See DeleteWorkspace for more information on using the DeleteWorkspace
   218  // API call, and error handling.
   219  //
   220  // This method is useful when you want to inject custom logic or configuration
   221  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   222  //
   223  //
   224  //    // Example sending a request using the DeleteWorkspaceRequest method.
   225  //    req, resp := client.DeleteWorkspaceRequest(params)
   226  //
   227  //    err := req.Send()
   228  //    if err == nil { // resp is now filled
   229  //        fmt.Println(resp)
   230  //    }
   231  //
   232  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DeleteWorkspace
   233  func (c *ManagedGrafana) DeleteWorkspaceRequest(input *DeleteWorkspaceInput) (req *request.Request, output *DeleteWorkspaceOutput) {
   234  	op := &request.Operation{
   235  		Name:       opDeleteWorkspace,
   236  		HTTPMethod: "DELETE",
   237  		HTTPPath:   "/workspaces/{workspaceId}",
   238  	}
   239  
   240  	if input == nil {
   241  		input = &DeleteWorkspaceInput{}
   242  	}
   243  
   244  	output = &DeleteWorkspaceOutput{}
   245  	req = c.newRequest(op, input, output)
   246  	return
   247  }
   248  
   249  // DeleteWorkspace API operation for Amazon Managed Grafana.
   250  //
   251  // Deletes an Amazon Managed Grafana workspace.
   252  //
   253  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   254  // with awserr.Error's Code and Message methods to get detailed information about
   255  // the error.
   256  //
   257  // See the AWS API reference guide for Amazon Managed Grafana's
   258  // API operation DeleteWorkspace for usage and error information.
   259  //
   260  // Returned Error Types:
   261  //   * ResourceNotFoundException
   262  //   The request references a resource that does not exist.
   263  //
   264  //   * ThrottlingException
   265  //   The request was denied because of request throttling. Retry the request.
   266  //
   267  //   * ConflictException
   268  //   A resource was in an inconsistent state during an update or a deletion.
   269  //
   270  //   * ValidationException
   271  //   The value of a parameter in the request caused an error.
   272  //
   273  //   * AccessDeniedException
   274  //   You do not have sufficient permissions to perform this action.
   275  //
   276  //   * InternalServerException
   277  //   Unexpected error while processing the request. Retry the request.
   278  //
   279  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DeleteWorkspace
   280  func (c *ManagedGrafana) DeleteWorkspace(input *DeleteWorkspaceInput) (*DeleteWorkspaceOutput, error) {
   281  	req, out := c.DeleteWorkspaceRequest(input)
   282  	return out, req.Send()
   283  }
   284  
   285  // DeleteWorkspaceWithContext is the same as DeleteWorkspace with the addition of
   286  // the ability to pass a context and additional request options.
   287  //
   288  // See DeleteWorkspace for details on how to use this API operation.
   289  //
   290  // The context must be non-nil and will be used for request cancellation. If
   291  // the context is nil a panic will occur. In the future the SDK may create
   292  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   293  // for more information on using Contexts.
   294  func (c *ManagedGrafana) DeleteWorkspaceWithContext(ctx aws.Context, input *DeleteWorkspaceInput, opts ...request.Option) (*DeleteWorkspaceOutput, error) {
   295  	req, out := c.DeleteWorkspaceRequest(input)
   296  	req.SetContext(ctx)
   297  	req.ApplyOptions(opts...)
   298  	return out, req.Send()
   299  }
   300  
   301  const opDescribeWorkspace = "DescribeWorkspace"
   302  
   303  // DescribeWorkspaceRequest generates a "aws/request.Request" representing the
   304  // client's request for the DescribeWorkspace operation. The "output" return
   305  // value will be populated with the request's response once the request completes
   306  // successfully.
   307  //
   308  // Use "Send" method on the returned Request to send the API call to the service.
   309  // the "output" return value is not valid until after Send returns without error.
   310  //
   311  // See DescribeWorkspace for more information on using the DescribeWorkspace
   312  // API call, and error handling.
   313  //
   314  // This method is useful when you want to inject custom logic or configuration
   315  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   316  //
   317  //
   318  //    // Example sending a request using the DescribeWorkspaceRequest method.
   319  //    req, resp := client.DescribeWorkspaceRequest(params)
   320  //
   321  //    err := req.Send()
   322  //    if err == nil { // resp is now filled
   323  //        fmt.Println(resp)
   324  //    }
   325  //
   326  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DescribeWorkspace
   327  func (c *ManagedGrafana) DescribeWorkspaceRequest(input *DescribeWorkspaceInput) (req *request.Request, output *DescribeWorkspaceOutput) {
   328  	op := &request.Operation{
   329  		Name:       opDescribeWorkspace,
   330  		HTTPMethod: "GET",
   331  		HTTPPath:   "/workspaces/{workspaceId}",
   332  	}
   333  
   334  	if input == nil {
   335  		input = &DescribeWorkspaceInput{}
   336  	}
   337  
   338  	output = &DescribeWorkspaceOutput{}
   339  	req = c.newRequest(op, input, output)
   340  	return
   341  }
   342  
   343  // DescribeWorkspace API operation for Amazon Managed Grafana.
   344  //
   345  // Displays information about one Amazon Managed Grafana workspace.
   346  //
   347  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   348  // with awserr.Error's Code and Message methods to get detailed information about
   349  // the error.
   350  //
   351  // See the AWS API reference guide for Amazon Managed Grafana's
   352  // API operation DescribeWorkspace for usage and error information.
   353  //
   354  // Returned Error Types:
   355  //   * ResourceNotFoundException
   356  //   The request references a resource that does not exist.
   357  //
   358  //   * ThrottlingException
   359  //   The request was denied because of request throttling. Retry the request.
   360  //
   361  //   * ValidationException
   362  //   The value of a parameter in the request caused an error.
   363  //
   364  //   * AccessDeniedException
   365  //   You do not have sufficient permissions to perform this action.
   366  //
   367  //   * InternalServerException
   368  //   Unexpected error while processing the request. Retry the request.
   369  //
   370  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DescribeWorkspace
   371  func (c *ManagedGrafana) DescribeWorkspace(input *DescribeWorkspaceInput) (*DescribeWorkspaceOutput, error) {
   372  	req, out := c.DescribeWorkspaceRequest(input)
   373  	return out, req.Send()
   374  }
   375  
   376  // DescribeWorkspaceWithContext is the same as DescribeWorkspace with the addition of
   377  // the ability to pass a context and additional request options.
   378  //
   379  // See DescribeWorkspace for details on how to use this API operation.
   380  //
   381  // The context must be non-nil and will be used for request cancellation. If
   382  // the context is nil a panic will occur. In the future the SDK may create
   383  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   384  // for more information on using Contexts.
   385  func (c *ManagedGrafana) DescribeWorkspaceWithContext(ctx aws.Context, input *DescribeWorkspaceInput, opts ...request.Option) (*DescribeWorkspaceOutput, error) {
   386  	req, out := c.DescribeWorkspaceRequest(input)
   387  	req.SetContext(ctx)
   388  	req.ApplyOptions(opts...)
   389  	return out, req.Send()
   390  }
   391  
   392  const opDescribeWorkspaceAuthentication = "DescribeWorkspaceAuthentication"
   393  
   394  // DescribeWorkspaceAuthenticationRequest generates a "aws/request.Request" representing the
   395  // client's request for the DescribeWorkspaceAuthentication operation. The "output" return
   396  // value will be populated with the request's response once the request completes
   397  // successfully.
   398  //
   399  // Use "Send" method on the returned Request to send the API call to the service.
   400  // the "output" return value is not valid until after Send returns without error.
   401  //
   402  // See DescribeWorkspaceAuthentication for more information on using the DescribeWorkspaceAuthentication
   403  // API call, and error handling.
   404  //
   405  // This method is useful when you want to inject custom logic or configuration
   406  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   407  //
   408  //
   409  //    // Example sending a request using the DescribeWorkspaceAuthenticationRequest method.
   410  //    req, resp := client.DescribeWorkspaceAuthenticationRequest(params)
   411  //
   412  //    err := req.Send()
   413  //    if err == nil { // resp is now filled
   414  //        fmt.Println(resp)
   415  //    }
   416  //
   417  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DescribeWorkspaceAuthentication
   418  func (c *ManagedGrafana) DescribeWorkspaceAuthenticationRequest(input *DescribeWorkspaceAuthenticationInput) (req *request.Request, output *DescribeWorkspaceAuthenticationOutput) {
   419  	op := &request.Operation{
   420  		Name:       opDescribeWorkspaceAuthentication,
   421  		HTTPMethod: "GET",
   422  		HTTPPath:   "/workspaces/{workspaceId}/authentication",
   423  	}
   424  
   425  	if input == nil {
   426  		input = &DescribeWorkspaceAuthenticationInput{}
   427  	}
   428  
   429  	output = &DescribeWorkspaceAuthenticationOutput{}
   430  	req = c.newRequest(op, input, output)
   431  	return
   432  }
   433  
   434  // DescribeWorkspaceAuthentication API operation for Amazon Managed Grafana.
   435  //
   436  // Displays information about the authentication methods used in one Amazon
   437  // Managed Grafana workspace.
   438  //
   439  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   440  // with awserr.Error's Code and Message methods to get detailed information about
   441  // the error.
   442  //
   443  // See the AWS API reference guide for Amazon Managed Grafana's
   444  // API operation DescribeWorkspaceAuthentication for usage and error information.
   445  //
   446  // Returned Error Types:
   447  //   * ResourceNotFoundException
   448  //   The request references a resource that does not exist.
   449  //
   450  //   * ThrottlingException
   451  //   The request was denied because of request throttling. Retry the request.
   452  //
   453  //   * ValidationException
   454  //   The value of a parameter in the request caused an error.
   455  //
   456  //   * AccessDeniedException
   457  //   You do not have sufficient permissions to perform this action.
   458  //
   459  //   * InternalServerException
   460  //   Unexpected error while processing the request. Retry the request.
   461  //
   462  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DescribeWorkspaceAuthentication
   463  func (c *ManagedGrafana) DescribeWorkspaceAuthentication(input *DescribeWorkspaceAuthenticationInput) (*DescribeWorkspaceAuthenticationOutput, error) {
   464  	req, out := c.DescribeWorkspaceAuthenticationRequest(input)
   465  	return out, req.Send()
   466  }
   467  
   468  // DescribeWorkspaceAuthenticationWithContext is the same as DescribeWorkspaceAuthentication with the addition of
   469  // the ability to pass a context and additional request options.
   470  //
   471  // See DescribeWorkspaceAuthentication for details on how to use this API operation.
   472  //
   473  // The context must be non-nil and will be used for request cancellation. If
   474  // the context is nil a panic will occur. In the future the SDK may create
   475  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   476  // for more information on using Contexts.
   477  func (c *ManagedGrafana) DescribeWorkspaceAuthenticationWithContext(ctx aws.Context, input *DescribeWorkspaceAuthenticationInput, opts ...request.Option) (*DescribeWorkspaceAuthenticationOutput, error) {
   478  	req, out := c.DescribeWorkspaceAuthenticationRequest(input)
   479  	req.SetContext(ctx)
   480  	req.ApplyOptions(opts...)
   481  	return out, req.Send()
   482  }
   483  
   484  const opDisassociateLicense = "DisassociateLicense"
   485  
   486  // DisassociateLicenseRequest generates a "aws/request.Request" representing the
   487  // client's request for the DisassociateLicense operation. The "output" return
   488  // value will be populated with the request's response once the request completes
   489  // successfully.
   490  //
   491  // Use "Send" method on the returned Request to send the API call to the service.
   492  // the "output" return value is not valid until after Send returns without error.
   493  //
   494  // See DisassociateLicense for more information on using the DisassociateLicense
   495  // API call, and error handling.
   496  //
   497  // This method is useful when you want to inject custom logic or configuration
   498  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   499  //
   500  //
   501  //    // Example sending a request using the DisassociateLicenseRequest method.
   502  //    req, resp := client.DisassociateLicenseRequest(params)
   503  //
   504  //    err := req.Send()
   505  //    if err == nil { // resp is now filled
   506  //        fmt.Println(resp)
   507  //    }
   508  //
   509  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DisassociateLicense
   510  func (c *ManagedGrafana) DisassociateLicenseRequest(input *DisassociateLicenseInput) (req *request.Request, output *DisassociateLicenseOutput) {
   511  	op := &request.Operation{
   512  		Name:       opDisassociateLicense,
   513  		HTTPMethod: "DELETE",
   514  		HTTPPath:   "/workspaces/{workspaceId}/licenses/{licenseType}",
   515  	}
   516  
   517  	if input == nil {
   518  		input = &DisassociateLicenseInput{}
   519  	}
   520  
   521  	output = &DisassociateLicenseOutput{}
   522  	req = c.newRequest(op, input, output)
   523  	return
   524  }
   525  
   526  // DisassociateLicense API operation for Amazon Managed Grafana.
   527  //
   528  // Removes the Grafana Enterprise license from a workspace.
   529  //
   530  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   531  // with awserr.Error's Code and Message methods to get detailed information about
   532  // the error.
   533  //
   534  // See the AWS API reference guide for Amazon Managed Grafana's
   535  // API operation DisassociateLicense for usage and error information.
   536  //
   537  // Returned Error Types:
   538  //   * ResourceNotFoundException
   539  //   The request references a resource that does not exist.
   540  //
   541  //   * ThrottlingException
   542  //   The request was denied because of request throttling. Retry the request.
   543  //
   544  //   * ValidationException
   545  //   The value of a parameter in the request caused an error.
   546  //
   547  //   * AccessDeniedException
   548  //   You do not have sufficient permissions to perform this action.
   549  //
   550  //   * InternalServerException
   551  //   Unexpected error while processing the request. Retry the request.
   552  //
   553  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/DisassociateLicense
   554  func (c *ManagedGrafana) DisassociateLicense(input *DisassociateLicenseInput) (*DisassociateLicenseOutput, error) {
   555  	req, out := c.DisassociateLicenseRequest(input)
   556  	return out, req.Send()
   557  }
   558  
   559  // DisassociateLicenseWithContext is the same as DisassociateLicense with the addition of
   560  // the ability to pass a context and additional request options.
   561  //
   562  // See DisassociateLicense for details on how to use this API operation.
   563  //
   564  // The context must be non-nil and will be used for request cancellation. If
   565  // the context is nil a panic will occur. In the future the SDK may create
   566  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   567  // for more information on using Contexts.
   568  func (c *ManagedGrafana) DisassociateLicenseWithContext(ctx aws.Context, input *DisassociateLicenseInput, opts ...request.Option) (*DisassociateLicenseOutput, error) {
   569  	req, out := c.DisassociateLicenseRequest(input)
   570  	req.SetContext(ctx)
   571  	req.ApplyOptions(opts...)
   572  	return out, req.Send()
   573  }
   574  
   575  const opListPermissions = "ListPermissions"
   576  
   577  // ListPermissionsRequest generates a "aws/request.Request" representing the
   578  // client's request for the ListPermissions operation. The "output" return
   579  // value will be populated with the request's response once the request completes
   580  // successfully.
   581  //
   582  // Use "Send" method on the returned Request to send the API call to the service.
   583  // the "output" return value is not valid until after Send returns without error.
   584  //
   585  // See ListPermissions for more information on using the ListPermissions
   586  // API call, and error handling.
   587  //
   588  // This method is useful when you want to inject custom logic or configuration
   589  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   590  //
   591  //
   592  //    // Example sending a request using the ListPermissionsRequest method.
   593  //    req, resp := client.ListPermissionsRequest(params)
   594  //
   595  //    err := req.Send()
   596  //    if err == nil { // resp is now filled
   597  //        fmt.Println(resp)
   598  //    }
   599  //
   600  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListPermissions
   601  func (c *ManagedGrafana) ListPermissionsRequest(input *ListPermissionsInput) (req *request.Request, output *ListPermissionsOutput) {
   602  	op := &request.Operation{
   603  		Name:       opListPermissions,
   604  		HTTPMethod: "GET",
   605  		HTTPPath:   "/workspaces/{workspaceId}/permissions",
   606  		Paginator: &request.Paginator{
   607  			InputTokens:     []string{"nextToken"},
   608  			OutputTokens:    []string{"nextToken"},
   609  			LimitToken:      "maxResults",
   610  			TruncationToken: "",
   611  		},
   612  	}
   613  
   614  	if input == nil {
   615  		input = &ListPermissionsInput{}
   616  	}
   617  
   618  	output = &ListPermissionsOutput{}
   619  	req = c.newRequest(op, input, output)
   620  	return
   621  }
   622  
   623  // ListPermissions API operation for Amazon Managed Grafana.
   624  //
   625  // Lists the users and groups who have the Grafana Admin and Editor roles in
   626  // this workspace. If you use this operation without specifying userId or groupId,
   627  // the operation returns the roles of all users and groups. If you specify a
   628  // userId or a groupId, only the roles for that user or group are returned.
   629  // If you do this, you can specify only one userId or one groupId.
   630  //
   631  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   632  // with awserr.Error's Code and Message methods to get detailed information about
   633  // the error.
   634  //
   635  // See the AWS API reference guide for Amazon Managed Grafana's
   636  // API operation ListPermissions for usage and error information.
   637  //
   638  // Returned Error Types:
   639  //   * ResourceNotFoundException
   640  //   The request references a resource that does not exist.
   641  //
   642  //   * ThrottlingException
   643  //   The request was denied because of request throttling. Retry the request.
   644  //
   645  //   * ValidationException
   646  //   The value of a parameter in the request caused an error.
   647  //
   648  //   * AccessDeniedException
   649  //   You do not have sufficient permissions to perform this action.
   650  //
   651  //   * InternalServerException
   652  //   Unexpected error while processing the request. Retry the request.
   653  //
   654  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListPermissions
   655  func (c *ManagedGrafana) ListPermissions(input *ListPermissionsInput) (*ListPermissionsOutput, error) {
   656  	req, out := c.ListPermissionsRequest(input)
   657  	return out, req.Send()
   658  }
   659  
   660  // ListPermissionsWithContext is the same as ListPermissions with the addition of
   661  // the ability to pass a context and additional request options.
   662  //
   663  // See ListPermissions for details on how to use this API operation.
   664  //
   665  // The context must be non-nil and will be used for request cancellation. If
   666  // the context is nil a panic will occur. In the future the SDK may create
   667  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   668  // for more information on using Contexts.
   669  func (c *ManagedGrafana) ListPermissionsWithContext(ctx aws.Context, input *ListPermissionsInput, opts ...request.Option) (*ListPermissionsOutput, error) {
   670  	req, out := c.ListPermissionsRequest(input)
   671  	req.SetContext(ctx)
   672  	req.ApplyOptions(opts...)
   673  	return out, req.Send()
   674  }
   675  
   676  // ListPermissionsPages iterates over the pages of a ListPermissions operation,
   677  // calling the "fn" function with the response data for each page. To stop
   678  // iterating, return false from the fn function.
   679  //
   680  // See ListPermissions method for more information on how to use this operation.
   681  //
   682  // Note: This operation can generate multiple requests to a service.
   683  //
   684  //    // Example iterating over at most 3 pages of a ListPermissions operation.
   685  //    pageNum := 0
   686  //    err := client.ListPermissionsPages(params,
   687  //        func(page *managedgrafana.ListPermissionsOutput, lastPage bool) bool {
   688  //            pageNum++
   689  //            fmt.Println(page)
   690  //            return pageNum <= 3
   691  //        })
   692  //
   693  func (c *ManagedGrafana) ListPermissionsPages(input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool) error {
   694  	return c.ListPermissionsPagesWithContext(aws.BackgroundContext(), input, fn)
   695  }
   696  
   697  // ListPermissionsPagesWithContext same as ListPermissionsPages except
   698  // it takes a Context and allows setting request options on the pages.
   699  //
   700  // The context must be non-nil and will be used for request cancellation. If
   701  // the context is nil a panic will occur. In the future the SDK may create
   702  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   703  // for more information on using Contexts.
   704  func (c *ManagedGrafana) ListPermissionsPagesWithContext(ctx aws.Context, input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool, opts ...request.Option) error {
   705  	p := request.Pagination{
   706  		NewRequest: func() (*request.Request, error) {
   707  			var inCpy *ListPermissionsInput
   708  			if input != nil {
   709  				tmp := *input
   710  				inCpy = &tmp
   711  			}
   712  			req, _ := c.ListPermissionsRequest(inCpy)
   713  			req.SetContext(ctx)
   714  			req.ApplyOptions(opts...)
   715  			return req, nil
   716  		},
   717  	}
   718  
   719  	for p.Next() {
   720  		if !fn(p.Page().(*ListPermissionsOutput), !p.HasNextPage()) {
   721  			break
   722  		}
   723  	}
   724  
   725  	return p.Err()
   726  }
   727  
   728  const opListWorkspaces = "ListWorkspaces"
   729  
   730  // ListWorkspacesRequest generates a "aws/request.Request" representing the
   731  // client's request for the ListWorkspaces operation. The "output" return
   732  // value will be populated with the request's response once the request completes
   733  // successfully.
   734  //
   735  // Use "Send" method on the returned Request to send the API call to the service.
   736  // the "output" return value is not valid until after Send returns without error.
   737  //
   738  // See ListWorkspaces for more information on using the ListWorkspaces
   739  // API call, and error handling.
   740  //
   741  // This method is useful when you want to inject custom logic or configuration
   742  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   743  //
   744  //
   745  //    // Example sending a request using the ListWorkspacesRequest method.
   746  //    req, resp := client.ListWorkspacesRequest(params)
   747  //
   748  //    err := req.Send()
   749  //    if err == nil { // resp is now filled
   750  //        fmt.Println(resp)
   751  //    }
   752  //
   753  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListWorkspaces
   754  func (c *ManagedGrafana) ListWorkspacesRequest(input *ListWorkspacesInput) (req *request.Request, output *ListWorkspacesOutput) {
   755  	op := &request.Operation{
   756  		Name:       opListWorkspaces,
   757  		HTTPMethod: "GET",
   758  		HTTPPath:   "/workspaces",
   759  		Paginator: &request.Paginator{
   760  			InputTokens:     []string{"nextToken"},
   761  			OutputTokens:    []string{"nextToken"},
   762  			LimitToken:      "maxResults",
   763  			TruncationToken: "",
   764  		},
   765  	}
   766  
   767  	if input == nil {
   768  		input = &ListWorkspacesInput{}
   769  	}
   770  
   771  	output = &ListWorkspacesOutput{}
   772  	req = c.newRequest(op, input, output)
   773  	return
   774  }
   775  
   776  // ListWorkspaces API operation for Amazon Managed Grafana.
   777  //
   778  // Returns a list of Amazon Managed Grafana workspaces in the account, with
   779  // some information about each workspace. For more complete information about
   780  // one workspace, use DescribeWorkspace (https://docs.aws.amazon.com/AAMG/latest/APIReference/API_DescribeWorkspace.html).
   781  //
   782  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   783  // with awserr.Error's Code and Message methods to get detailed information about
   784  // the error.
   785  //
   786  // See the AWS API reference guide for Amazon Managed Grafana's
   787  // API operation ListWorkspaces for usage and error information.
   788  //
   789  // Returned Error Types:
   790  //   * ThrottlingException
   791  //   The request was denied because of request throttling. Retry the request.
   792  //
   793  //   * AccessDeniedException
   794  //   You do not have sufficient permissions to perform this action.
   795  //
   796  //   * InternalServerException
   797  //   Unexpected error while processing the request. Retry the request.
   798  //
   799  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/ListWorkspaces
   800  func (c *ManagedGrafana) ListWorkspaces(input *ListWorkspacesInput) (*ListWorkspacesOutput, error) {
   801  	req, out := c.ListWorkspacesRequest(input)
   802  	return out, req.Send()
   803  }
   804  
   805  // ListWorkspacesWithContext is the same as ListWorkspaces with the addition of
   806  // the ability to pass a context and additional request options.
   807  //
   808  // See ListWorkspaces for details on how to use this API operation.
   809  //
   810  // The context must be non-nil and will be used for request cancellation. If
   811  // the context is nil a panic will occur. In the future the SDK may create
   812  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   813  // for more information on using Contexts.
   814  func (c *ManagedGrafana) ListWorkspacesWithContext(ctx aws.Context, input *ListWorkspacesInput, opts ...request.Option) (*ListWorkspacesOutput, error) {
   815  	req, out := c.ListWorkspacesRequest(input)
   816  	req.SetContext(ctx)
   817  	req.ApplyOptions(opts...)
   818  	return out, req.Send()
   819  }
   820  
   821  // ListWorkspacesPages iterates over the pages of a ListWorkspaces operation,
   822  // calling the "fn" function with the response data for each page. To stop
   823  // iterating, return false from the fn function.
   824  //
   825  // See ListWorkspaces method for more information on how to use this operation.
   826  //
   827  // Note: This operation can generate multiple requests to a service.
   828  //
   829  //    // Example iterating over at most 3 pages of a ListWorkspaces operation.
   830  //    pageNum := 0
   831  //    err := client.ListWorkspacesPages(params,
   832  //        func(page *managedgrafana.ListWorkspacesOutput, lastPage bool) bool {
   833  //            pageNum++
   834  //            fmt.Println(page)
   835  //            return pageNum <= 3
   836  //        })
   837  //
   838  func (c *ManagedGrafana) ListWorkspacesPages(input *ListWorkspacesInput, fn func(*ListWorkspacesOutput, bool) bool) error {
   839  	return c.ListWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
   840  }
   841  
   842  // ListWorkspacesPagesWithContext same as ListWorkspacesPages except
   843  // it takes a Context and allows setting request options on the pages.
   844  //
   845  // The context must be non-nil and will be used for request cancellation. If
   846  // the context is nil a panic will occur. In the future the SDK may create
   847  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   848  // for more information on using Contexts.
   849  func (c *ManagedGrafana) ListWorkspacesPagesWithContext(ctx aws.Context, input *ListWorkspacesInput, fn func(*ListWorkspacesOutput, bool) bool, opts ...request.Option) error {
   850  	p := request.Pagination{
   851  		NewRequest: func() (*request.Request, error) {
   852  			var inCpy *ListWorkspacesInput
   853  			if input != nil {
   854  				tmp := *input
   855  				inCpy = &tmp
   856  			}
   857  			req, _ := c.ListWorkspacesRequest(inCpy)
   858  			req.SetContext(ctx)
   859  			req.ApplyOptions(opts...)
   860  			return req, nil
   861  		},
   862  	}
   863  
   864  	for p.Next() {
   865  		if !fn(p.Page().(*ListWorkspacesOutput), !p.HasNextPage()) {
   866  			break
   867  		}
   868  	}
   869  
   870  	return p.Err()
   871  }
   872  
   873  const opUpdatePermissions = "UpdatePermissions"
   874  
   875  // UpdatePermissionsRequest generates a "aws/request.Request" representing the
   876  // client's request for the UpdatePermissions operation. The "output" return
   877  // value will be populated with the request's response once the request completes
   878  // successfully.
   879  //
   880  // Use "Send" method on the returned Request to send the API call to the service.
   881  // the "output" return value is not valid until after Send returns without error.
   882  //
   883  // See UpdatePermissions for more information on using the UpdatePermissions
   884  // API call, and error handling.
   885  //
   886  // This method is useful when you want to inject custom logic or configuration
   887  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   888  //
   889  //
   890  //    // Example sending a request using the UpdatePermissionsRequest method.
   891  //    req, resp := client.UpdatePermissionsRequest(params)
   892  //
   893  //    err := req.Send()
   894  //    if err == nil { // resp is now filled
   895  //        fmt.Println(resp)
   896  //    }
   897  //
   898  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdatePermissions
   899  func (c *ManagedGrafana) UpdatePermissionsRequest(input *UpdatePermissionsInput) (req *request.Request, output *UpdatePermissionsOutput) {
   900  	op := &request.Operation{
   901  		Name:       opUpdatePermissions,
   902  		HTTPMethod: "PATCH",
   903  		HTTPPath:   "/workspaces/{workspaceId}/permissions",
   904  	}
   905  
   906  	if input == nil {
   907  		input = &UpdatePermissionsInput{}
   908  	}
   909  
   910  	output = &UpdatePermissionsOutput{}
   911  	req = c.newRequest(op, input, output)
   912  	return
   913  }
   914  
   915  // UpdatePermissions API operation for Amazon Managed Grafana.
   916  //
   917  // Updates which users in a workspace have the Grafana Admin or Editor roles.
   918  //
   919  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   920  // with awserr.Error's Code and Message methods to get detailed information about
   921  // the error.
   922  //
   923  // See the AWS API reference guide for Amazon Managed Grafana's
   924  // API operation UpdatePermissions for usage and error information.
   925  //
   926  // Returned Error Types:
   927  //   * ResourceNotFoundException
   928  //   The request references a resource that does not exist.
   929  //
   930  //   * ThrottlingException
   931  //   The request was denied because of request throttling. Retry the request.
   932  //
   933  //   * ValidationException
   934  //   The value of a parameter in the request caused an error.
   935  //
   936  //   * AccessDeniedException
   937  //   You do not have sufficient permissions to perform this action.
   938  //
   939  //   * InternalServerException
   940  //   Unexpected error while processing the request. Retry the request.
   941  //
   942  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdatePermissions
   943  func (c *ManagedGrafana) UpdatePermissions(input *UpdatePermissionsInput) (*UpdatePermissionsOutput, error) {
   944  	req, out := c.UpdatePermissionsRequest(input)
   945  	return out, req.Send()
   946  }
   947  
   948  // UpdatePermissionsWithContext is the same as UpdatePermissions with the addition of
   949  // the ability to pass a context and additional request options.
   950  //
   951  // See UpdatePermissions for details on how to use this API operation.
   952  //
   953  // The context must be non-nil and will be used for request cancellation. If
   954  // the context is nil a panic will occur. In the future the SDK may create
   955  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   956  // for more information on using Contexts.
   957  func (c *ManagedGrafana) UpdatePermissionsWithContext(ctx aws.Context, input *UpdatePermissionsInput, opts ...request.Option) (*UpdatePermissionsOutput, error) {
   958  	req, out := c.UpdatePermissionsRequest(input)
   959  	req.SetContext(ctx)
   960  	req.ApplyOptions(opts...)
   961  	return out, req.Send()
   962  }
   963  
   964  const opUpdateWorkspace = "UpdateWorkspace"
   965  
   966  // UpdateWorkspaceRequest generates a "aws/request.Request" representing the
   967  // client's request for the UpdateWorkspace operation. The "output" return
   968  // value will be populated with the request's response once the request completes
   969  // successfully.
   970  //
   971  // Use "Send" method on the returned Request to send the API call to the service.
   972  // the "output" return value is not valid until after Send returns without error.
   973  //
   974  // See UpdateWorkspace for more information on using the UpdateWorkspace
   975  // API call, and error handling.
   976  //
   977  // This method is useful when you want to inject custom logic or configuration
   978  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   979  //
   980  //
   981  //    // Example sending a request using the UpdateWorkspaceRequest method.
   982  //    req, resp := client.UpdateWorkspaceRequest(params)
   983  //
   984  //    err := req.Send()
   985  //    if err == nil { // resp is now filled
   986  //        fmt.Println(resp)
   987  //    }
   988  //
   989  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdateWorkspace
   990  func (c *ManagedGrafana) UpdateWorkspaceRequest(input *UpdateWorkspaceInput) (req *request.Request, output *UpdateWorkspaceOutput) {
   991  	op := &request.Operation{
   992  		Name:       opUpdateWorkspace,
   993  		HTTPMethod: "PUT",
   994  		HTTPPath:   "/workspaces/{workspaceId}",
   995  	}
   996  
   997  	if input == nil {
   998  		input = &UpdateWorkspaceInput{}
   999  	}
  1000  
  1001  	output = &UpdateWorkspaceOutput{}
  1002  	req = c.newRequest(op, input, output)
  1003  	return
  1004  }
  1005  
  1006  // UpdateWorkspace API operation for Amazon Managed Grafana.
  1007  //
  1008  // Modifies an existing Amazon Managed Grafana workspace. If you use this operation
  1009  // and omit any optional parameters, the existing values of those parameters
  1010  // are not changed.
  1011  //
  1012  // To modify the user authentication methods that the workspace uses, such as
  1013  // SAML or Amazon Web Services SSO, use UpdateWorkspaceAuthentication (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdateWorkspaceAuthentication.html).
  1014  //
  1015  // To modify which users in the workspace have the Admin and Editor Grafana
  1016  // roles, use UpdatePermissions (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html).
  1017  //
  1018  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1019  // with awserr.Error's Code and Message methods to get detailed information about
  1020  // the error.
  1021  //
  1022  // See the AWS API reference guide for Amazon Managed Grafana's
  1023  // API operation UpdateWorkspace for usage and error information.
  1024  //
  1025  // Returned Error Types:
  1026  //   * ResourceNotFoundException
  1027  //   The request references a resource that does not exist.
  1028  //
  1029  //   * ThrottlingException
  1030  //   The request was denied because of request throttling. Retry the request.
  1031  //
  1032  //   * ConflictException
  1033  //   A resource was in an inconsistent state during an update or a deletion.
  1034  //
  1035  //   * ValidationException
  1036  //   The value of a parameter in the request caused an error.
  1037  //
  1038  //   * AccessDeniedException
  1039  //   You do not have sufficient permissions to perform this action.
  1040  //
  1041  //   * InternalServerException
  1042  //   Unexpected error while processing the request. Retry the request.
  1043  //
  1044  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdateWorkspace
  1045  func (c *ManagedGrafana) UpdateWorkspace(input *UpdateWorkspaceInput) (*UpdateWorkspaceOutput, error) {
  1046  	req, out := c.UpdateWorkspaceRequest(input)
  1047  	return out, req.Send()
  1048  }
  1049  
  1050  // UpdateWorkspaceWithContext is the same as UpdateWorkspace with the addition of
  1051  // the ability to pass a context and additional request options.
  1052  //
  1053  // See UpdateWorkspace for details on how to use this API operation.
  1054  //
  1055  // The context must be non-nil and will be used for request cancellation. If
  1056  // the context is nil a panic will occur. In the future the SDK may create
  1057  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1058  // for more information on using Contexts.
  1059  func (c *ManagedGrafana) UpdateWorkspaceWithContext(ctx aws.Context, input *UpdateWorkspaceInput, opts ...request.Option) (*UpdateWorkspaceOutput, error) {
  1060  	req, out := c.UpdateWorkspaceRequest(input)
  1061  	req.SetContext(ctx)
  1062  	req.ApplyOptions(opts...)
  1063  	return out, req.Send()
  1064  }
  1065  
  1066  const opUpdateWorkspaceAuthentication = "UpdateWorkspaceAuthentication"
  1067  
  1068  // UpdateWorkspaceAuthenticationRequest generates a "aws/request.Request" representing the
  1069  // client's request for the UpdateWorkspaceAuthentication operation. The "output" return
  1070  // value will be populated with the request's response once the request completes
  1071  // successfully.
  1072  //
  1073  // Use "Send" method on the returned Request to send the API call to the service.
  1074  // the "output" return value is not valid until after Send returns without error.
  1075  //
  1076  // See UpdateWorkspaceAuthentication for more information on using the UpdateWorkspaceAuthentication
  1077  // API call, and error handling.
  1078  //
  1079  // This method is useful when you want to inject custom logic or configuration
  1080  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1081  //
  1082  //
  1083  //    // Example sending a request using the UpdateWorkspaceAuthenticationRequest method.
  1084  //    req, resp := client.UpdateWorkspaceAuthenticationRequest(params)
  1085  //
  1086  //    err := req.Send()
  1087  //    if err == nil { // resp is now filled
  1088  //        fmt.Println(resp)
  1089  //    }
  1090  //
  1091  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdateWorkspaceAuthentication
  1092  func (c *ManagedGrafana) UpdateWorkspaceAuthenticationRequest(input *UpdateWorkspaceAuthenticationInput) (req *request.Request, output *UpdateWorkspaceAuthenticationOutput) {
  1093  	op := &request.Operation{
  1094  		Name:       opUpdateWorkspaceAuthentication,
  1095  		HTTPMethod: "POST",
  1096  		HTTPPath:   "/workspaces/{workspaceId}/authentication",
  1097  	}
  1098  
  1099  	if input == nil {
  1100  		input = &UpdateWorkspaceAuthenticationInput{}
  1101  	}
  1102  
  1103  	output = &UpdateWorkspaceAuthenticationOutput{}
  1104  	req = c.newRequest(op, input, output)
  1105  	return
  1106  }
  1107  
  1108  // UpdateWorkspaceAuthentication API operation for Amazon Managed Grafana.
  1109  //
  1110  // Use this operation to define the identity provider (IdP) that this workspace
  1111  // authenticates users from, using SAML. You can also map SAML assertion attributes
  1112  // to workspace user information and define which groups in the assertion attribute
  1113  // are to have the Admin and Editor roles in the workspace.
  1114  //
  1115  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1116  // with awserr.Error's Code and Message methods to get detailed information about
  1117  // the error.
  1118  //
  1119  // See the AWS API reference guide for Amazon Managed Grafana's
  1120  // API operation UpdateWorkspaceAuthentication for usage and error information.
  1121  //
  1122  // Returned Error Types:
  1123  //   * ResourceNotFoundException
  1124  //   The request references a resource that does not exist.
  1125  //
  1126  //   * ThrottlingException
  1127  //   The request was denied because of request throttling. Retry the request.
  1128  //
  1129  //   * ConflictException
  1130  //   A resource was in an inconsistent state during an update or a deletion.
  1131  //
  1132  //   * ValidationException
  1133  //   The value of a parameter in the request caused an error.
  1134  //
  1135  //   * AccessDeniedException
  1136  //   You do not have sufficient permissions to perform this action.
  1137  //
  1138  //   * InternalServerException
  1139  //   Unexpected error while processing the request. Retry the request.
  1140  //
  1141  // See also, https://docs.aws.amazon.com/goto/WebAPI/grafana-2020-08-18/UpdateWorkspaceAuthentication
  1142  func (c *ManagedGrafana) UpdateWorkspaceAuthentication(input *UpdateWorkspaceAuthenticationInput) (*UpdateWorkspaceAuthenticationOutput, error) {
  1143  	req, out := c.UpdateWorkspaceAuthenticationRequest(input)
  1144  	return out, req.Send()
  1145  }
  1146  
  1147  // UpdateWorkspaceAuthenticationWithContext is the same as UpdateWorkspaceAuthentication with the addition of
  1148  // the ability to pass a context and additional request options.
  1149  //
  1150  // See UpdateWorkspaceAuthentication for details on how to use this API operation.
  1151  //
  1152  // The context must be non-nil and will be used for request cancellation. If
  1153  // the context is nil a panic will occur. In the future the SDK may create
  1154  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1155  // for more information on using Contexts.
  1156  func (c *ManagedGrafana) UpdateWorkspaceAuthenticationWithContext(ctx aws.Context, input *UpdateWorkspaceAuthenticationInput, opts ...request.Option) (*UpdateWorkspaceAuthenticationOutput, error) {
  1157  	req, out := c.UpdateWorkspaceAuthenticationRequest(input)
  1158  	req.SetContext(ctx)
  1159  	req.ApplyOptions(opts...)
  1160  	return out, req.Send()
  1161  }
  1162  
  1163  // You do not have sufficient permissions to perform this action.
  1164  type AccessDeniedException struct {
  1165  	_            struct{}                  `type:"structure"`
  1166  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1167  
  1168  	Message_ *string `locationName:"message" type:"string"`
  1169  }
  1170  
  1171  // String returns the string representation.
  1172  //
  1173  // API parameter values that are decorated as "sensitive" in the API will not
  1174  // be included in the string output. The member name will be present, but the
  1175  // value will be replaced with "sensitive".
  1176  func (s AccessDeniedException) String() string {
  1177  	return awsutil.Prettify(s)
  1178  }
  1179  
  1180  // GoString returns the string representation.
  1181  //
  1182  // API parameter values that are decorated as "sensitive" in the API will not
  1183  // be included in the string output. The member name will be present, but the
  1184  // value will be replaced with "sensitive".
  1185  func (s AccessDeniedException) GoString() string {
  1186  	return s.String()
  1187  }
  1188  
  1189  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  1190  	return &AccessDeniedException{
  1191  		RespMetadata: v,
  1192  	}
  1193  }
  1194  
  1195  // Code returns the exception type name.
  1196  func (s *AccessDeniedException) Code() string {
  1197  	return "AccessDeniedException"
  1198  }
  1199  
  1200  // Message returns the exception's message.
  1201  func (s *AccessDeniedException) Message() string {
  1202  	if s.Message_ != nil {
  1203  		return *s.Message_
  1204  	}
  1205  	return ""
  1206  }
  1207  
  1208  // OrigErr always returns nil, satisfies awserr.Error interface.
  1209  func (s *AccessDeniedException) OrigErr() error {
  1210  	return nil
  1211  }
  1212  
  1213  func (s *AccessDeniedException) Error() string {
  1214  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1215  }
  1216  
  1217  // Status code returns the HTTP status code for the request's response error.
  1218  func (s *AccessDeniedException) StatusCode() int {
  1219  	return s.RespMetadata.StatusCode
  1220  }
  1221  
  1222  // RequestID returns the service's response RequestID for request.
  1223  func (s *AccessDeniedException) RequestID() string {
  1224  	return s.RespMetadata.RequestID
  1225  }
  1226  
  1227  // A structure that defines which attributes in the IdP assertion are to be
  1228  // used to define information about the users authenticated by the IdP to use
  1229  // the workspace.
  1230  type AssertionAttributes struct {
  1231  	_ struct{} `type:"structure"`
  1232  
  1233  	// The name of the attribute within the SAML assertion to use as the email names
  1234  	// for SAML users.
  1235  	Email *string `locationName:"email" min:"1" type:"string"`
  1236  
  1237  	// The name of the attribute within the SAML assertion to use as the user full
  1238  	// "friendly" names for user groups.
  1239  	Groups *string `locationName:"groups" min:"1" type:"string"`
  1240  
  1241  	// The name of the attribute within the SAML assertion to use as the login names
  1242  	// for SAML users.
  1243  	Login *string `locationName:"login" min:"1" type:"string"`
  1244  
  1245  	// The name of the attribute within the SAML assertion to use as the user full
  1246  	// "friendly" names for SAML users.
  1247  	Name *string `locationName:"name" min:"1" type:"string"`
  1248  
  1249  	// The name of the attribute within the SAML assertion to use as the user full
  1250  	// "friendly" names for the users' organizations.
  1251  	Org *string `locationName:"org" min:"1" type:"string"`
  1252  
  1253  	// The name of the attribute within the SAML assertion to use as the user roles.
  1254  	Role *string `locationName:"role" min:"1" type:"string"`
  1255  }
  1256  
  1257  // String returns the string representation.
  1258  //
  1259  // API parameter values that are decorated as "sensitive" in the API will not
  1260  // be included in the string output. The member name will be present, but the
  1261  // value will be replaced with "sensitive".
  1262  func (s AssertionAttributes) String() string {
  1263  	return awsutil.Prettify(s)
  1264  }
  1265  
  1266  // GoString returns the string representation.
  1267  //
  1268  // API parameter values that are decorated as "sensitive" in the API will not
  1269  // be included in the string output. The member name will be present, but the
  1270  // value will be replaced with "sensitive".
  1271  func (s AssertionAttributes) GoString() string {
  1272  	return s.String()
  1273  }
  1274  
  1275  // Validate inspects the fields of the type to determine if they are valid.
  1276  func (s *AssertionAttributes) Validate() error {
  1277  	invalidParams := request.ErrInvalidParams{Context: "AssertionAttributes"}
  1278  	if s.Email != nil && len(*s.Email) < 1 {
  1279  		invalidParams.Add(request.NewErrParamMinLen("Email", 1))
  1280  	}
  1281  	if s.Groups != nil && len(*s.Groups) < 1 {
  1282  		invalidParams.Add(request.NewErrParamMinLen("Groups", 1))
  1283  	}
  1284  	if s.Login != nil && len(*s.Login) < 1 {
  1285  		invalidParams.Add(request.NewErrParamMinLen("Login", 1))
  1286  	}
  1287  	if s.Name != nil && len(*s.Name) < 1 {
  1288  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  1289  	}
  1290  	if s.Org != nil && len(*s.Org) < 1 {
  1291  		invalidParams.Add(request.NewErrParamMinLen("Org", 1))
  1292  	}
  1293  	if s.Role != nil && len(*s.Role) < 1 {
  1294  		invalidParams.Add(request.NewErrParamMinLen("Role", 1))
  1295  	}
  1296  
  1297  	if invalidParams.Len() > 0 {
  1298  		return invalidParams
  1299  	}
  1300  	return nil
  1301  }
  1302  
  1303  // SetEmail sets the Email field's value.
  1304  func (s *AssertionAttributes) SetEmail(v string) *AssertionAttributes {
  1305  	s.Email = &v
  1306  	return s
  1307  }
  1308  
  1309  // SetGroups sets the Groups field's value.
  1310  func (s *AssertionAttributes) SetGroups(v string) *AssertionAttributes {
  1311  	s.Groups = &v
  1312  	return s
  1313  }
  1314  
  1315  // SetLogin sets the Login field's value.
  1316  func (s *AssertionAttributes) SetLogin(v string) *AssertionAttributes {
  1317  	s.Login = &v
  1318  	return s
  1319  }
  1320  
  1321  // SetName sets the Name field's value.
  1322  func (s *AssertionAttributes) SetName(v string) *AssertionAttributes {
  1323  	s.Name = &v
  1324  	return s
  1325  }
  1326  
  1327  // SetOrg sets the Org field's value.
  1328  func (s *AssertionAttributes) SetOrg(v string) *AssertionAttributes {
  1329  	s.Org = &v
  1330  	return s
  1331  }
  1332  
  1333  // SetRole sets the Role field's value.
  1334  func (s *AssertionAttributes) SetRole(v string) *AssertionAttributes {
  1335  	s.Role = &v
  1336  	return s
  1337  }
  1338  
  1339  type AssociateLicenseInput struct {
  1340  	_ struct{} `type:"structure" nopayload:"true"`
  1341  
  1342  	// The type of license to associate with the workspace.
  1343  	//
  1344  	// LicenseType is a required field
  1345  	LicenseType *string `location:"uri" locationName:"licenseType" type:"string" required:"true" enum:"LicenseType"`
  1346  
  1347  	// The ID of the workspace to associate the license with.
  1348  	//
  1349  	// WorkspaceId is a required field
  1350  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  1351  }
  1352  
  1353  // String returns the string representation.
  1354  //
  1355  // API parameter values that are decorated as "sensitive" in the API will not
  1356  // be included in the string output. The member name will be present, but the
  1357  // value will be replaced with "sensitive".
  1358  func (s AssociateLicenseInput) String() string {
  1359  	return awsutil.Prettify(s)
  1360  }
  1361  
  1362  // GoString returns the string representation.
  1363  //
  1364  // API parameter values that are decorated as "sensitive" in the API will not
  1365  // be included in the string output. The member name will be present, but the
  1366  // value will be replaced with "sensitive".
  1367  func (s AssociateLicenseInput) GoString() string {
  1368  	return s.String()
  1369  }
  1370  
  1371  // Validate inspects the fields of the type to determine if they are valid.
  1372  func (s *AssociateLicenseInput) Validate() error {
  1373  	invalidParams := request.ErrInvalidParams{Context: "AssociateLicenseInput"}
  1374  	if s.LicenseType == nil {
  1375  		invalidParams.Add(request.NewErrParamRequired("LicenseType"))
  1376  	}
  1377  	if s.LicenseType != nil && len(*s.LicenseType) < 1 {
  1378  		invalidParams.Add(request.NewErrParamMinLen("LicenseType", 1))
  1379  	}
  1380  	if s.WorkspaceId == nil {
  1381  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  1382  	}
  1383  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  1384  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  1385  	}
  1386  
  1387  	if invalidParams.Len() > 0 {
  1388  		return invalidParams
  1389  	}
  1390  	return nil
  1391  }
  1392  
  1393  // SetLicenseType sets the LicenseType field's value.
  1394  func (s *AssociateLicenseInput) SetLicenseType(v string) *AssociateLicenseInput {
  1395  	s.LicenseType = &v
  1396  	return s
  1397  }
  1398  
  1399  // SetWorkspaceId sets the WorkspaceId field's value.
  1400  func (s *AssociateLicenseInput) SetWorkspaceId(v string) *AssociateLicenseInput {
  1401  	s.WorkspaceId = &v
  1402  	return s
  1403  }
  1404  
  1405  type AssociateLicenseOutput struct {
  1406  	_ struct{} `type:"structure"`
  1407  
  1408  	// A structure containing data about the workspace.
  1409  	//
  1410  	// Workspace is a required field
  1411  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  1412  }
  1413  
  1414  // String returns the string representation.
  1415  //
  1416  // API parameter values that are decorated as "sensitive" in the API will not
  1417  // be included in the string output. The member name will be present, but the
  1418  // value will be replaced with "sensitive".
  1419  func (s AssociateLicenseOutput) String() string {
  1420  	return awsutil.Prettify(s)
  1421  }
  1422  
  1423  // GoString returns the string representation.
  1424  //
  1425  // API parameter values that are decorated as "sensitive" in the API will not
  1426  // be included in the string output. The member name will be present, but the
  1427  // value will be replaced with "sensitive".
  1428  func (s AssociateLicenseOutput) GoString() string {
  1429  	return s.String()
  1430  }
  1431  
  1432  // SetWorkspace sets the Workspace field's value.
  1433  func (s *AssociateLicenseOutput) SetWorkspace(v *WorkspaceDescription) *AssociateLicenseOutput {
  1434  	s.Workspace = v
  1435  	return s
  1436  }
  1437  
  1438  // A structure containing information about the user authentication methods
  1439  // used by the workspace.
  1440  type AuthenticationDescription struct {
  1441  	_ struct{} `type:"structure"`
  1442  
  1443  	// A structure containing information about how this workspace works with Amazon
  1444  	// Web Services SSO.
  1445  	AwsSso *AwsSsoAuthentication `locationName:"awsSso" type:"structure"`
  1446  
  1447  	// Specifies whether this workspace uses Amazon Web Services SSO, SAML, or both
  1448  	// methods to authenticate users to use the Grafana console in the Amazon Managed
  1449  	// Grafana workspace.
  1450  	//
  1451  	// Providers is a required field
  1452  	Providers []*string `locationName:"providers" type:"list" required:"true"`
  1453  
  1454  	// A structure containing information about how this workspace works with SAML,
  1455  	// including what attributes within the assertion are to be mapped to user information
  1456  	// in the workspace.
  1457  	Saml *SamlAuthentication `locationName:"saml" type:"structure"`
  1458  }
  1459  
  1460  // String returns the string representation.
  1461  //
  1462  // API parameter values that are decorated as "sensitive" in the API will not
  1463  // be included in the string output. The member name will be present, but the
  1464  // value will be replaced with "sensitive".
  1465  func (s AuthenticationDescription) String() string {
  1466  	return awsutil.Prettify(s)
  1467  }
  1468  
  1469  // GoString returns the string representation.
  1470  //
  1471  // API parameter values that are decorated as "sensitive" in the API will not
  1472  // be included in the string output. The member name will be present, but the
  1473  // value will be replaced with "sensitive".
  1474  func (s AuthenticationDescription) GoString() string {
  1475  	return s.String()
  1476  }
  1477  
  1478  // SetAwsSso sets the AwsSso field's value.
  1479  func (s *AuthenticationDescription) SetAwsSso(v *AwsSsoAuthentication) *AuthenticationDescription {
  1480  	s.AwsSso = v
  1481  	return s
  1482  }
  1483  
  1484  // SetProviders sets the Providers field's value.
  1485  func (s *AuthenticationDescription) SetProviders(v []*string) *AuthenticationDescription {
  1486  	s.Providers = v
  1487  	return s
  1488  }
  1489  
  1490  // SetSaml sets the Saml field's value.
  1491  func (s *AuthenticationDescription) SetSaml(v *SamlAuthentication) *AuthenticationDescription {
  1492  	s.Saml = v
  1493  	return s
  1494  }
  1495  
  1496  // A structure that describes whether the workspace uses SAML, Amazon Web Services
  1497  // SSO, or both methods for user authentication, and whether that authentication
  1498  // is fully configured.
  1499  type AuthenticationSummary struct {
  1500  	_ struct{} `type:"structure"`
  1501  
  1502  	// Specifies whether the workspace uses SAML, Amazon Web Services SSO, or both
  1503  	// methods for user authentication.
  1504  	//
  1505  	// Providers is a required field
  1506  	Providers []*string `locationName:"providers" type:"list" required:"true"`
  1507  
  1508  	// Specifies whether the workplace's user authentication method is fully configured.
  1509  	SamlConfigurationStatus *string `locationName:"samlConfigurationStatus" type:"string" enum:"SamlConfigurationStatus"`
  1510  }
  1511  
  1512  // String returns the string representation.
  1513  //
  1514  // API parameter values that are decorated as "sensitive" in the API will not
  1515  // be included in the string output. The member name will be present, but the
  1516  // value will be replaced with "sensitive".
  1517  func (s AuthenticationSummary) String() string {
  1518  	return awsutil.Prettify(s)
  1519  }
  1520  
  1521  // GoString returns the string representation.
  1522  //
  1523  // API parameter values that are decorated as "sensitive" in the API will not
  1524  // be included in the string output. The member name will be present, but the
  1525  // value will be replaced with "sensitive".
  1526  func (s AuthenticationSummary) GoString() string {
  1527  	return s.String()
  1528  }
  1529  
  1530  // SetProviders sets the Providers field's value.
  1531  func (s *AuthenticationSummary) SetProviders(v []*string) *AuthenticationSummary {
  1532  	s.Providers = v
  1533  	return s
  1534  }
  1535  
  1536  // SetSamlConfigurationStatus sets the SamlConfigurationStatus field's value.
  1537  func (s *AuthenticationSummary) SetSamlConfigurationStatus(v string) *AuthenticationSummary {
  1538  	s.SamlConfigurationStatus = &v
  1539  	return s
  1540  }
  1541  
  1542  // A structure containing information about how this workspace works with Amazon
  1543  // Web Services SSO.
  1544  type AwsSsoAuthentication struct {
  1545  	_ struct{} `type:"structure"`
  1546  
  1547  	// The ID of the Amazon Web Services SSO-managed application that is created
  1548  	// by Amazon Managed Grafana.
  1549  	SsoClientId *string `locationName:"ssoClientId" type:"string"`
  1550  }
  1551  
  1552  // String returns the string representation.
  1553  //
  1554  // API parameter values that are decorated as "sensitive" in the API will not
  1555  // be included in the string output. The member name will be present, but the
  1556  // value will be replaced with "sensitive".
  1557  func (s AwsSsoAuthentication) String() string {
  1558  	return awsutil.Prettify(s)
  1559  }
  1560  
  1561  // GoString returns the string representation.
  1562  //
  1563  // API parameter values that are decorated as "sensitive" in the API will not
  1564  // be included in the string output. The member name will be present, but the
  1565  // value will be replaced with "sensitive".
  1566  func (s AwsSsoAuthentication) GoString() string {
  1567  	return s.String()
  1568  }
  1569  
  1570  // SetSsoClientId sets the SsoClientId field's value.
  1571  func (s *AwsSsoAuthentication) SetSsoClientId(v string) *AwsSsoAuthentication {
  1572  	s.SsoClientId = &v
  1573  	return s
  1574  }
  1575  
  1576  // A resource was in an inconsistent state during an update or a deletion.
  1577  type ConflictException struct {
  1578  	_            struct{}                  `type:"structure"`
  1579  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1580  
  1581  	// A description of the error.
  1582  	Message_ *string `locationName:"message" type:"string"`
  1583  
  1584  	// The ID of the resource that is associated with the error.
  1585  	//
  1586  	// ResourceId is a required field
  1587  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  1588  
  1589  	// The type of the resource that is associated with the error.
  1590  	//
  1591  	// ResourceType is a required field
  1592  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  1593  }
  1594  
  1595  // String returns the string representation.
  1596  //
  1597  // API parameter values that are decorated as "sensitive" in the API will not
  1598  // be included in the string output. The member name will be present, but the
  1599  // value will be replaced with "sensitive".
  1600  func (s ConflictException) String() string {
  1601  	return awsutil.Prettify(s)
  1602  }
  1603  
  1604  // GoString returns the string representation.
  1605  //
  1606  // API parameter values that are decorated as "sensitive" in the API will not
  1607  // be included in the string output. The member name will be present, but the
  1608  // value will be replaced with "sensitive".
  1609  func (s ConflictException) GoString() string {
  1610  	return s.String()
  1611  }
  1612  
  1613  func newErrorConflictException(v protocol.ResponseMetadata) error {
  1614  	return &ConflictException{
  1615  		RespMetadata: v,
  1616  	}
  1617  }
  1618  
  1619  // Code returns the exception type name.
  1620  func (s *ConflictException) Code() string {
  1621  	return "ConflictException"
  1622  }
  1623  
  1624  // Message returns the exception's message.
  1625  func (s *ConflictException) Message() string {
  1626  	if s.Message_ != nil {
  1627  		return *s.Message_
  1628  	}
  1629  	return ""
  1630  }
  1631  
  1632  // OrigErr always returns nil, satisfies awserr.Error interface.
  1633  func (s *ConflictException) OrigErr() error {
  1634  	return nil
  1635  }
  1636  
  1637  func (s *ConflictException) Error() string {
  1638  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  1639  }
  1640  
  1641  // Status code returns the HTTP status code for the request's response error.
  1642  func (s *ConflictException) StatusCode() int {
  1643  	return s.RespMetadata.StatusCode
  1644  }
  1645  
  1646  // RequestID returns the service's response RequestID for request.
  1647  func (s *ConflictException) RequestID() string {
  1648  	return s.RespMetadata.RequestID
  1649  }
  1650  
  1651  type CreateWorkspaceInput struct {
  1652  	_ struct{} `type:"structure"`
  1653  
  1654  	// Specifies whether the workspace can access Amazon Web Services resources
  1655  	// in this Amazon Web Services account only, or whether it can also access Amazon
  1656  	// Web Services resources in other accounts in the same organization. If you
  1657  	// specify ORGANIZATION, you must specify which organizational units the workspace
  1658  	// can access in the workspaceOrganizationalUnits parameter.
  1659  	//
  1660  	// AccountAccessType is a required field
  1661  	AccountAccessType *string `locationName:"accountAccessType" type:"string" required:"true" enum:"AccountAccessType"`
  1662  
  1663  	// Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single
  1664  	// Sign On, or both to authenticate users for using the Grafana console within
  1665  	// a workspace. For more information, see User authentication in Amazon Managed
  1666  	// Grafana (https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html).
  1667  	//
  1668  	// AuthenticationProviders is a required field
  1669  	AuthenticationProviders []*string `locationName:"authenticationProviders" type:"list" required:"true"`
  1670  
  1671  	// A unique, case-sensitive, user-provided identifier to ensure the idempotency
  1672  	// of the request.
  1673  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  1674  
  1675  	// The name of an IAM role that already exists to use with Organizations to
  1676  	// access Amazon Web Services data sources and notification channels in other
  1677  	// accounts in an organization.
  1678  	//
  1679  	// OrganizationRoleName is a sensitive parameter and its value will be
  1680  	// replaced with "sensitive" in string returned by CreateWorkspaceInput's
  1681  	// String and GoString methods.
  1682  	OrganizationRoleName *string `locationName:"organizationRoleName" min:"1" type:"string" sensitive:"true"`
  1683  
  1684  	// If you specify Service Managed, Amazon Managed Grafana automatically creates
  1685  	// the IAM roles and provisions the permissions that the workspace needs to
  1686  	// use Amazon Web Services data sources and notification channels.
  1687  	//
  1688  	// If you specify CUSTOMER_MANAGED, you will manage those roles and permissions
  1689  	// yourself. If you are creating this workspace in a member account of an organization
  1690  	// that is not a delegated administrator account, and you want the workspace
  1691  	// to access data sources in other Amazon Web Services accounts in the organization,
  1692  	// you must choose CUSTOMER_MANAGED.
  1693  	//
  1694  	// For more information, see Amazon Managed Grafana permissions and policies
  1695  	// for Amazon Web Services data sources and notification channels (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
  1696  	//
  1697  	// PermissionType is a required field
  1698  	PermissionType *string `locationName:"permissionType" type:"string" required:"true" enum:"PermissionType"`
  1699  
  1700  	// The name of the CloudFormation stack set to use to generate IAM roles to
  1701  	// be used for this workspace.
  1702  	StackSetName *string `locationName:"stackSetName" type:"string"`
  1703  
  1704  	// Specify the Amazon Web Services data sources that you want to be queried
  1705  	// in this workspace. Specifying these data sources here enables Amazon Managed
  1706  	// Grafana to create IAM roles and permissions that allow Amazon Managed Grafana
  1707  	// to read data from these sources. You must still add them as data sources
  1708  	// in the Grafana console in the workspace.
  1709  	//
  1710  	// If you don't specify a data source here, you can still add it as a data source
  1711  	// in the workspace console later. However, you will then have to manually configure
  1712  	// permissions for it.
  1713  	WorkspaceDataSources []*string `locationName:"workspaceDataSources" type:"list"`
  1714  
  1715  	// A description for the workspace. This is used only to help you identify this
  1716  	// workspace.
  1717  	//
  1718  	// WorkspaceDescription is a sensitive parameter and its value will be
  1719  	// replaced with "sensitive" in string returned by CreateWorkspaceInput's
  1720  	// String and GoString methods.
  1721  	WorkspaceDescription *string `locationName:"workspaceDescription" type:"string" sensitive:"true"`
  1722  
  1723  	// The name for the workspace. It does not have to be unique.
  1724  	//
  1725  	// WorkspaceName is a sensitive parameter and its value will be
  1726  	// replaced with "sensitive" in string returned by CreateWorkspaceInput's
  1727  	// String and GoString methods.
  1728  	WorkspaceName *string `locationName:"workspaceName" type:"string" sensitive:"true"`
  1729  
  1730  	// Specify the Amazon Web Services notification channels that you plan to use
  1731  	// in this workspace. Specifying these data sources here enables Amazon Managed
  1732  	// Grafana to create IAM roles and permissions that allow Amazon Managed Grafana
  1733  	// to use these channels.
  1734  	WorkspaceNotificationDestinations []*string `locationName:"workspaceNotificationDestinations" type:"list"`
  1735  
  1736  	// Specifies the organizational units that this workspace is allowed to use
  1737  	// data sources from, if this workspace is in an account that is part of an
  1738  	// organization.
  1739  	//
  1740  	// WorkspaceOrganizationalUnits is a sensitive parameter and its value will be
  1741  	// replaced with "sensitive" in string returned by CreateWorkspaceInput's
  1742  	// String and GoString methods.
  1743  	WorkspaceOrganizationalUnits []*string `locationName:"workspaceOrganizationalUnits" type:"list" sensitive:"true"`
  1744  
  1745  	// The workspace needs an IAM role that grants permissions to the Amazon Web
  1746  	// Services resources that the workspace will view data from. If you already
  1747  	// have a role that you want to use, specify it here. If you omit this field
  1748  	// and you specify some Amazon Web Services resources in workspaceDataSources
  1749  	// or workspaceNotificationDestinations, a new IAM role with the necessary permissions
  1750  	// is automatically created.
  1751  	//
  1752  	// WorkspaceRoleArn is a sensitive parameter and its value will be
  1753  	// replaced with "sensitive" in string returned by CreateWorkspaceInput's
  1754  	// String and GoString methods.
  1755  	WorkspaceRoleArn *string `locationName:"workspaceRoleArn" min:"1" type:"string" sensitive:"true"`
  1756  }
  1757  
  1758  // String returns the string representation.
  1759  //
  1760  // API parameter values that are decorated as "sensitive" in the API will not
  1761  // be included in the string output. The member name will be present, but the
  1762  // value will be replaced with "sensitive".
  1763  func (s CreateWorkspaceInput) String() string {
  1764  	return awsutil.Prettify(s)
  1765  }
  1766  
  1767  // GoString returns the string representation.
  1768  //
  1769  // API parameter values that are decorated as "sensitive" in the API will not
  1770  // be included in the string output. The member name will be present, but the
  1771  // value will be replaced with "sensitive".
  1772  func (s CreateWorkspaceInput) GoString() string {
  1773  	return s.String()
  1774  }
  1775  
  1776  // Validate inspects the fields of the type to determine if they are valid.
  1777  func (s *CreateWorkspaceInput) Validate() error {
  1778  	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspaceInput"}
  1779  	if s.AccountAccessType == nil {
  1780  		invalidParams.Add(request.NewErrParamRequired("AccountAccessType"))
  1781  	}
  1782  	if s.AuthenticationProviders == nil {
  1783  		invalidParams.Add(request.NewErrParamRequired("AuthenticationProviders"))
  1784  	}
  1785  	if s.OrganizationRoleName != nil && len(*s.OrganizationRoleName) < 1 {
  1786  		invalidParams.Add(request.NewErrParamMinLen("OrganizationRoleName", 1))
  1787  	}
  1788  	if s.PermissionType == nil {
  1789  		invalidParams.Add(request.NewErrParamRequired("PermissionType"))
  1790  	}
  1791  	if s.WorkspaceRoleArn != nil && len(*s.WorkspaceRoleArn) < 1 {
  1792  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceRoleArn", 1))
  1793  	}
  1794  
  1795  	if invalidParams.Len() > 0 {
  1796  		return invalidParams
  1797  	}
  1798  	return nil
  1799  }
  1800  
  1801  // SetAccountAccessType sets the AccountAccessType field's value.
  1802  func (s *CreateWorkspaceInput) SetAccountAccessType(v string) *CreateWorkspaceInput {
  1803  	s.AccountAccessType = &v
  1804  	return s
  1805  }
  1806  
  1807  // SetAuthenticationProviders sets the AuthenticationProviders field's value.
  1808  func (s *CreateWorkspaceInput) SetAuthenticationProviders(v []*string) *CreateWorkspaceInput {
  1809  	s.AuthenticationProviders = v
  1810  	return s
  1811  }
  1812  
  1813  // SetClientToken sets the ClientToken field's value.
  1814  func (s *CreateWorkspaceInput) SetClientToken(v string) *CreateWorkspaceInput {
  1815  	s.ClientToken = &v
  1816  	return s
  1817  }
  1818  
  1819  // SetOrganizationRoleName sets the OrganizationRoleName field's value.
  1820  func (s *CreateWorkspaceInput) SetOrganizationRoleName(v string) *CreateWorkspaceInput {
  1821  	s.OrganizationRoleName = &v
  1822  	return s
  1823  }
  1824  
  1825  // SetPermissionType sets the PermissionType field's value.
  1826  func (s *CreateWorkspaceInput) SetPermissionType(v string) *CreateWorkspaceInput {
  1827  	s.PermissionType = &v
  1828  	return s
  1829  }
  1830  
  1831  // SetStackSetName sets the StackSetName field's value.
  1832  func (s *CreateWorkspaceInput) SetStackSetName(v string) *CreateWorkspaceInput {
  1833  	s.StackSetName = &v
  1834  	return s
  1835  }
  1836  
  1837  // SetWorkspaceDataSources sets the WorkspaceDataSources field's value.
  1838  func (s *CreateWorkspaceInput) SetWorkspaceDataSources(v []*string) *CreateWorkspaceInput {
  1839  	s.WorkspaceDataSources = v
  1840  	return s
  1841  }
  1842  
  1843  // SetWorkspaceDescription sets the WorkspaceDescription field's value.
  1844  func (s *CreateWorkspaceInput) SetWorkspaceDescription(v string) *CreateWorkspaceInput {
  1845  	s.WorkspaceDescription = &v
  1846  	return s
  1847  }
  1848  
  1849  // SetWorkspaceName sets the WorkspaceName field's value.
  1850  func (s *CreateWorkspaceInput) SetWorkspaceName(v string) *CreateWorkspaceInput {
  1851  	s.WorkspaceName = &v
  1852  	return s
  1853  }
  1854  
  1855  // SetWorkspaceNotificationDestinations sets the WorkspaceNotificationDestinations field's value.
  1856  func (s *CreateWorkspaceInput) SetWorkspaceNotificationDestinations(v []*string) *CreateWorkspaceInput {
  1857  	s.WorkspaceNotificationDestinations = v
  1858  	return s
  1859  }
  1860  
  1861  // SetWorkspaceOrganizationalUnits sets the WorkspaceOrganizationalUnits field's value.
  1862  func (s *CreateWorkspaceInput) SetWorkspaceOrganizationalUnits(v []*string) *CreateWorkspaceInput {
  1863  	s.WorkspaceOrganizationalUnits = v
  1864  	return s
  1865  }
  1866  
  1867  // SetWorkspaceRoleArn sets the WorkspaceRoleArn field's value.
  1868  func (s *CreateWorkspaceInput) SetWorkspaceRoleArn(v string) *CreateWorkspaceInput {
  1869  	s.WorkspaceRoleArn = &v
  1870  	return s
  1871  }
  1872  
  1873  type CreateWorkspaceOutput struct {
  1874  	_ struct{} `type:"structure"`
  1875  
  1876  	// A structure containing data about the workspace that was created.
  1877  	//
  1878  	// Workspace is a required field
  1879  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  1880  }
  1881  
  1882  // String returns the string representation.
  1883  //
  1884  // API parameter values that are decorated as "sensitive" in the API will not
  1885  // be included in the string output. The member name will be present, but the
  1886  // value will be replaced with "sensitive".
  1887  func (s CreateWorkspaceOutput) String() string {
  1888  	return awsutil.Prettify(s)
  1889  }
  1890  
  1891  // GoString returns the string representation.
  1892  //
  1893  // API parameter values that are decorated as "sensitive" in the API will not
  1894  // be included in the string output. The member name will be present, but the
  1895  // value will be replaced with "sensitive".
  1896  func (s CreateWorkspaceOutput) GoString() string {
  1897  	return s.String()
  1898  }
  1899  
  1900  // SetWorkspace sets the Workspace field's value.
  1901  func (s *CreateWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *CreateWorkspaceOutput {
  1902  	s.Workspace = v
  1903  	return s
  1904  }
  1905  
  1906  type DeleteWorkspaceInput struct {
  1907  	_ struct{} `type:"structure" nopayload:"true"`
  1908  
  1909  	// The ID of the workspace to delete.
  1910  	//
  1911  	// WorkspaceId is a required field
  1912  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  1913  }
  1914  
  1915  // String returns the string representation.
  1916  //
  1917  // API parameter values that are decorated as "sensitive" in the API will not
  1918  // be included in the string output. The member name will be present, but the
  1919  // value will be replaced with "sensitive".
  1920  func (s DeleteWorkspaceInput) String() string {
  1921  	return awsutil.Prettify(s)
  1922  }
  1923  
  1924  // GoString returns the string representation.
  1925  //
  1926  // API parameter values that are decorated as "sensitive" in the API will not
  1927  // be included in the string output. The member name will be present, but the
  1928  // value will be replaced with "sensitive".
  1929  func (s DeleteWorkspaceInput) GoString() string {
  1930  	return s.String()
  1931  }
  1932  
  1933  // Validate inspects the fields of the type to determine if they are valid.
  1934  func (s *DeleteWorkspaceInput) Validate() error {
  1935  	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkspaceInput"}
  1936  	if s.WorkspaceId == nil {
  1937  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  1938  	}
  1939  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  1940  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  1941  	}
  1942  
  1943  	if invalidParams.Len() > 0 {
  1944  		return invalidParams
  1945  	}
  1946  	return nil
  1947  }
  1948  
  1949  // SetWorkspaceId sets the WorkspaceId field's value.
  1950  func (s *DeleteWorkspaceInput) SetWorkspaceId(v string) *DeleteWorkspaceInput {
  1951  	s.WorkspaceId = &v
  1952  	return s
  1953  }
  1954  
  1955  type DeleteWorkspaceOutput struct {
  1956  	_ struct{} `type:"structure"`
  1957  
  1958  	// A structure containing information about the workspace that was deleted.
  1959  	//
  1960  	// Workspace is a required field
  1961  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  1962  }
  1963  
  1964  // String returns the string representation.
  1965  //
  1966  // API parameter values that are decorated as "sensitive" in the API will not
  1967  // be included in the string output. The member name will be present, but the
  1968  // value will be replaced with "sensitive".
  1969  func (s DeleteWorkspaceOutput) String() string {
  1970  	return awsutil.Prettify(s)
  1971  }
  1972  
  1973  // GoString returns the string representation.
  1974  //
  1975  // API parameter values that are decorated as "sensitive" in the API will not
  1976  // be included in the string output. The member name will be present, but the
  1977  // value will be replaced with "sensitive".
  1978  func (s DeleteWorkspaceOutput) GoString() string {
  1979  	return s.String()
  1980  }
  1981  
  1982  // SetWorkspace sets the Workspace field's value.
  1983  func (s *DeleteWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *DeleteWorkspaceOutput {
  1984  	s.Workspace = v
  1985  	return s
  1986  }
  1987  
  1988  type DescribeWorkspaceAuthenticationInput struct {
  1989  	_ struct{} `type:"structure" nopayload:"true"`
  1990  
  1991  	// The ID of the workspace to return authentication information about.
  1992  	//
  1993  	// WorkspaceId is a required field
  1994  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  1995  }
  1996  
  1997  // String returns the string representation.
  1998  //
  1999  // API parameter values that are decorated as "sensitive" in the API will not
  2000  // be included in the string output. The member name will be present, but the
  2001  // value will be replaced with "sensitive".
  2002  func (s DescribeWorkspaceAuthenticationInput) String() string {
  2003  	return awsutil.Prettify(s)
  2004  }
  2005  
  2006  // GoString returns the string representation.
  2007  //
  2008  // API parameter values that are decorated as "sensitive" in the API will not
  2009  // be included in the string output. The member name will be present, but the
  2010  // value will be replaced with "sensitive".
  2011  func (s DescribeWorkspaceAuthenticationInput) GoString() string {
  2012  	return s.String()
  2013  }
  2014  
  2015  // Validate inspects the fields of the type to determine if they are valid.
  2016  func (s *DescribeWorkspaceAuthenticationInput) Validate() error {
  2017  	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceAuthenticationInput"}
  2018  	if s.WorkspaceId == nil {
  2019  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  2020  	}
  2021  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  2022  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  2023  	}
  2024  
  2025  	if invalidParams.Len() > 0 {
  2026  		return invalidParams
  2027  	}
  2028  	return nil
  2029  }
  2030  
  2031  // SetWorkspaceId sets the WorkspaceId field's value.
  2032  func (s *DescribeWorkspaceAuthenticationInput) SetWorkspaceId(v string) *DescribeWorkspaceAuthenticationInput {
  2033  	s.WorkspaceId = &v
  2034  	return s
  2035  }
  2036  
  2037  type DescribeWorkspaceAuthenticationOutput struct {
  2038  	_ struct{} `type:"structure"`
  2039  
  2040  	// A structure containing information about the authentication methods used
  2041  	// in the workspace.
  2042  	//
  2043  	// Authentication is a required field
  2044  	Authentication *AuthenticationDescription `locationName:"authentication" type:"structure" required:"true"`
  2045  }
  2046  
  2047  // String returns the string representation.
  2048  //
  2049  // API parameter values that are decorated as "sensitive" in the API will not
  2050  // be included in the string output. The member name will be present, but the
  2051  // value will be replaced with "sensitive".
  2052  func (s DescribeWorkspaceAuthenticationOutput) String() string {
  2053  	return awsutil.Prettify(s)
  2054  }
  2055  
  2056  // GoString returns the string representation.
  2057  //
  2058  // API parameter values that are decorated as "sensitive" in the API will not
  2059  // be included in the string output. The member name will be present, but the
  2060  // value will be replaced with "sensitive".
  2061  func (s DescribeWorkspaceAuthenticationOutput) GoString() string {
  2062  	return s.String()
  2063  }
  2064  
  2065  // SetAuthentication sets the Authentication field's value.
  2066  func (s *DescribeWorkspaceAuthenticationOutput) SetAuthentication(v *AuthenticationDescription) *DescribeWorkspaceAuthenticationOutput {
  2067  	s.Authentication = v
  2068  	return s
  2069  }
  2070  
  2071  type DescribeWorkspaceInput struct {
  2072  	_ struct{} `type:"structure" nopayload:"true"`
  2073  
  2074  	// The ID of the workspace to display information about.
  2075  	//
  2076  	// WorkspaceId is a required field
  2077  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  2078  }
  2079  
  2080  // String returns the string representation.
  2081  //
  2082  // API parameter values that are decorated as "sensitive" in the API will not
  2083  // be included in the string output. The member name will be present, but the
  2084  // value will be replaced with "sensitive".
  2085  func (s DescribeWorkspaceInput) String() string {
  2086  	return awsutil.Prettify(s)
  2087  }
  2088  
  2089  // GoString returns the string representation.
  2090  //
  2091  // API parameter values that are decorated as "sensitive" in the API will not
  2092  // be included in the string output. The member name will be present, but the
  2093  // value will be replaced with "sensitive".
  2094  func (s DescribeWorkspaceInput) GoString() string {
  2095  	return s.String()
  2096  }
  2097  
  2098  // Validate inspects the fields of the type to determine if they are valid.
  2099  func (s *DescribeWorkspaceInput) Validate() error {
  2100  	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceInput"}
  2101  	if s.WorkspaceId == nil {
  2102  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  2103  	}
  2104  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  2105  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  2106  	}
  2107  
  2108  	if invalidParams.Len() > 0 {
  2109  		return invalidParams
  2110  	}
  2111  	return nil
  2112  }
  2113  
  2114  // SetWorkspaceId sets the WorkspaceId field's value.
  2115  func (s *DescribeWorkspaceInput) SetWorkspaceId(v string) *DescribeWorkspaceInput {
  2116  	s.WorkspaceId = &v
  2117  	return s
  2118  }
  2119  
  2120  type DescribeWorkspaceOutput struct {
  2121  	_ struct{} `type:"structure"`
  2122  
  2123  	// A structure containing information about the workspace.
  2124  	//
  2125  	// Workspace is a required field
  2126  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  2127  }
  2128  
  2129  // String returns the string representation.
  2130  //
  2131  // API parameter values that are decorated as "sensitive" in the API will not
  2132  // be included in the string output. The member name will be present, but the
  2133  // value will be replaced with "sensitive".
  2134  func (s DescribeWorkspaceOutput) String() string {
  2135  	return awsutil.Prettify(s)
  2136  }
  2137  
  2138  // GoString returns the string representation.
  2139  //
  2140  // API parameter values that are decorated as "sensitive" in the API will not
  2141  // be included in the string output. The member name will be present, but the
  2142  // value will be replaced with "sensitive".
  2143  func (s DescribeWorkspaceOutput) GoString() string {
  2144  	return s.String()
  2145  }
  2146  
  2147  // SetWorkspace sets the Workspace field's value.
  2148  func (s *DescribeWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *DescribeWorkspaceOutput {
  2149  	s.Workspace = v
  2150  	return s
  2151  }
  2152  
  2153  type DisassociateLicenseInput struct {
  2154  	_ struct{} `type:"structure" nopayload:"true"`
  2155  
  2156  	// The type of license to remove from the workspace.
  2157  	//
  2158  	// LicenseType is a required field
  2159  	LicenseType *string `location:"uri" locationName:"licenseType" type:"string" required:"true" enum:"LicenseType"`
  2160  
  2161  	// The ID of the workspace to remove the Grafana Enterprise license from.
  2162  	//
  2163  	// WorkspaceId is a required field
  2164  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  2165  }
  2166  
  2167  // String returns the string representation.
  2168  //
  2169  // API parameter values that are decorated as "sensitive" in the API will not
  2170  // be included in the string output. The member name will be present, but the
  2171  // value will be replaced with "sensitive".
  2172  func (s DisassociateLicenseInput) String() string {
  2173  	return awsutil.Prettify(s)
  2174  }
  2175  
  2176  // GoString returns the string representation.
  2177  //
  2178  // API parameter values that are decorated as "sensitive" in the API will not
  2179  // be included in the string output. The member name will be present, but the
  2180  // value will be replaced with "sensitive".
  2181  func (s DisassociateLicenseInput) GoString() string {
  2182  	return s.String()
  2183  }
  2184  
  2185  // Validate inspects the fields of the type to determine if they are valid.
  2186  func (s *DisassociateLicenseInput) Validate() error {
  2187  	invalidParams := request.ErrInvalidParams{Context: "DisassociateLicenseInput"}
  2188  	if s.LicenseType == nil {
  2189  		invalidParams.Add(request.NewErrParamRequired("LicenseType"))
  2190  	}
  2191  	if s.LicenseType != nil && len(*s.LicenseType) < 1 {
  2192  		invalidParams.Add(request.NewErrParamMinLen("LicenseType", 1))
  2193  	}
  2194  	if s.WorkspaceId == nil {
  2195  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  2196  	}
  2197  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  2198  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  2199  	}
  2200  
  2201  	if invalidParams.Len() > 0 {
  2202  		return invalidParams
  2203  	}
  2204  	return nil
  2205  }
  2206  
  2207  // SetLicenseType sets the LicenseType field's value.
  2208  func (s *DisassociateLicenseInput) SetLicenseType(v string) *DisassociateLicenseInput {
  2209  	s.LicenseType = &v
  2210  	return s
  2211  }
  2212  
  2213  // SetWorkspaceId sets the WorkspaceId field's value.
  2214  func (s *DisassociateLicenseInput) SetWorkspaceId(v string) *DisassociateLicenseInput {
  2215  	s.WorkspaceId = &v
  2216  	return s
  2217  }
  2218  
  2219  type DisassociateLicenseOutput struct {
  2220  	_ struct{} `type:"structure"`
  2221  
  2222  	// A structure containing information about the workspace.
  2223  	//
  2224  	// Workspace is a required field
  2225  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  2226  }
  2227  
  2228  // String returns the string representation.
  2229  //
  2230  // API parameter values that are decorated as "sensitive" in the API will not
  2231  // be included in the string output. The member name will be present, but the
  2232  // value will be replaced with "sensitive".
  2233  func (s DisassociateLicenseOutput) String() string {
  2234  	return awsutil.Prettify(s)
  2235  }
  2236  
  2237  // GoString returns the string representation.
  2238  //
  2239  // API parameter values that are decorated as "sensitive" in the API will not
  2240  // be included in the string output. The member name will be present, but the
  2241  // value will be replaced with "sensitive".
  2242  func (s DisassociateLicenseOutput) GoString() string {
  2243  	return s.String()
  2244  }
  2245  
  2246  // SetWorkspace sets the Workspace field's value.
  2247  func (s *DisassociateLicenseOutput) SetWorkspace(v *WorkspaceDescription) *DisassociateLicenseOutput {
  2248  	s.Workspace = v
  2249  	return s
  2250  }
  2251  
  2252  // A structure containing the identity provider (IdP) metadata used to integrate
  2253  // the identity provider with this workspace. You can specify the metadata either
  2254  // by providing a URL to its location in the url parameter, or by specifying
  2255  // the full metadata in XML format in the xml parameter.
  2256  type IdpMetadata struct {
  2257  	_ struct{} `type:"structure"`
  2258  
  2259  	// The URL of the location containing the metadata.
  2260  	Url *string `locationName:"url" min:"1" type:"string"`
  2261  
  2262  	// The actual full metadata file, in XML format.
  2263  	Xml *string `locationName:"xml" type:"string"`
  2264  }
  2265  
  2266  // String returns the string representation.
  2267  //
  2268  // API parameter values that are decorated as "sensitive" in the API will not
  2269  // be included in the string output. The member name will be present, but the
  2270  // value will be replaced with "sensitive".
  2271  func (s IdpMetadata) String() string {
  2272  	return awsutil.Prettify(s)
  2273  }
  2274  
  2275  // GoString returns the string representation.
  2276  //
  2277  // API parameter values that are decorated as "sensitive" in the API will not
  2278  // be included in the string output. The member name will be present, but the
  2279  // value will be replaced with "sensitive".
  2280  func (s IdpMetadata) GoString() string {
  2281  	return s.String()
  2282  }
  2283  
  2284  // Validate inspects the fields of the type to determine if they are valid.
  2285  func (s *IdpMetadata) Validate() error {
  2286  	invalidParams := request.ErrInvalidParams{Context: "IdpMetadata"}
  2287  	if s.Url != nil && len(*s.Url) < 1 {
  2288  		invalidParams.Add(request.NewErrParamMinLen("Url", 1))
  2289  	}
  2290  
  2291  	if invalidParams.Len() > 0 {
  2292  		return invalidParams
  2293  	}
  2294  	return nil
  2295  }
  2296  
  2297  // SetUrl sets the Url field's value.
  2298  func (s *IdpMetadata) SetUrl(v string) *IdpMetadata {
  2299  	s.Url = &v
  2300  	return s
  2301  }
  2302  
  2303  // SetXml sets the Xml field's value.
  2304  func (s *IdpMetadata) SetXml(v string) *IdpMetadata {
  2305  	s.Xml = &v
  2306  	return s
  2307  }
  2308  
  2309  // Unexpected error while processing the request. Retry the request.
  2310  type InternalServerException struct {
  2311  	_            struct{}                  `type:"structure"`
  2312  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2313  
  2314  	// A description of the error.
  2315  	Message_ *string `locationName:"message" type:"string"`
  2316  
  2317  	// How long to wait before you retry this operation.
  2318  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  2319  }
  2320  
  2321  // String returns the string representation.
  2322  //
  2323  // API parameter values that are decorated as "sensitive" in the API will not
  2324  // be included in the string output. The member name will be present, but the
  2325  // value will be replaced with "sensitive".
  2326  func (s InternalServerException) String() string {
  2327  	return awsutil.Prettify(s)
  2328  }
  2329  
  2330  // GoString returns the string representation.
  2331  //
  2332  // API parameter values that are decorated as "sensitive" in the API will not
  2333  // be included in the string output. The member name will be present, but the
  2334  // value will be replaced with "sensitive".
  2335  func (s InternalServerException) GoString() string {
  2336  	return s.String()
  2337  }
  2338  
  2339  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  2340  	return &InternalServerException{
  2341  		RespMetadata: v,
  2342  	}
  2343  }
  2344  
  2345  // Code returns the exception type name.
  2346  func (s *InternalServerException) Code() string {
  2347  	return "InternalServerException"
  2348  }
  2349  
  2350  // Message returns the exception's message.
  2351  func (s *InternalServerException) Message() string {
  2352  	if s.Message_ != nil {
  2353  		return *s.Message_
  2354  	}
  2355  	return ""
  2356  }
  2357  
  2358  // OrigErr always returns nil, satisfies awserr.Error interface.
  2359  func (s *InternalServerException) OrigErr() error {
  2360  	return nil
  2361  }
  2362  
  2363  func (s *InternalServerException) Error() string {
  2364  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  2365  }
  2366  
  2367  // Status code returns the HTTP status code for the request's response error.
  2368  func (s *InternalServerException) StatusCode() int {
  2369  	return s.RespMetadata.StatusCode
  2370  }
  2371  
  2372  // RequestID returns the service's response RequestID for request.
  2373  func (s *InternalServerException) RequestID() string {
  2374  	return s.RespMetadata.RequestID
  2375  }
  2376  
  2377  type ListPermissionsInput struct {
  2378  	_ struct{} `type:"structure" nopayload:"true"`
  2379  
  2380  	// (Optional) Limits the results to only the group that matches this ID.
  2381  	GroupId *string `location:"querystring" locationName:"groupId" min:"1" type:"string"`
  2382  
  2383  	// The maximum number of results to include in the response.
  2384  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  2385  
  2386  	// The token to use when requesting the next set of results. You received this
  2387  	// token from a previous ListPermissions operation.
  2388  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  2389  
  2390  	// (Optional) Limits the results to only the user that matches this ID.
  2391  	UserId *string `location:"querystring" locationName:"userId" min:"1" type:"string"`
  2392  
  2393  	// (Optional) If you specify SSO_USER, then only the permissions of Amazon Web
  2394  	// Services SSO users are returned. If you specify SSO_GROUP, only the permissions
  2395  	// of Amazon Web Services SSO groups are returned.
  2396  	UserType *string `location:"querystring" locationName:"userType" type:"string" enum:"UserType"`
  2397  
  2398  	// The ID of the workspace to list permissions for. This parameter is required.
  2399  	//
  2400  	// WorkspaceId is a required field
  2401  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  2402  }
  2403  
  2404  // String returns the string representation.
  2405  //
  2406  // API parameter values that are decorated as "sensitive" in the API will not
  2407  // be included in the string output. The member name will be present, but the
  2408  // value will be replaced with "sensitive".
  2409  func (s ListPermissionsInput) String() string {
  2410  	return awsutil.Prettify(s)
  2411  }
  2412  
  2413  // GoString returns the string representation.
  2414  //
  2415  // API parameter values that are decorated as "sensitive" in the API will not
  2416  // be included in the string output. The member name will be present, but the
  2417  // value will be replaced with "sensitive".
  2418  func (s ListPermissionsInput) GoString() string {
  2419  	return s.String()
  2420  }
  2421  
  2422  // Validate inspects the fields of the type to determine if they are valid.
  2423  func (s *ListPermissionsInput) Validate() error {
  2424  	invalidParams := request.ErrInvalidParams{Context: "ListPermissionsInput"}
  2425  	if s.GroupId != nil && len(*s.GroupId) < 1 {
  2426  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
  2427  	}
  2428  	if s.MaxResults != nil && *s.MaxResults < 1 {
  2429  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  2430  	}
  2431  	if s.UserId != nil && len(*s.UserId) < 1 {
  2432  		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
  2433  	}
  2434  	if s.WorkspaceId == nil {
  2435  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  2436  	}
  2437  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  2438  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  2439  	}
  2440  
  2441  	if invalidParams.Len() > 0 {
  2442  		return invalidParams
  2443  	}
  2444  	return nil
  2445  }
  2446  
  2447  // SetGroupId sets the GroupId field's value.
  2448  func (s *ListPermissionsInput) SetGroupId(v string) *ListPermissionsInput {
  2449  	s.GroupId = &v
  2450  	return s
  2451  }
  2452  
  2453  // SetMaxResults sets the MaxResults field's value.
  2454  func (s *ListPermissionsInput) SetMaxResults(v int64) *ListPermissionsInput {
  2455  	s.MaxResults = &v
  2456  	return s
  2457  }
  2458  
  2459  // SetNextToken sets the NextToken field's value.
  2460  func (s *ListPermissionsInput) SetNextToken(v string) *ListPermissionsInput {
  2461  	s.NextToken = &v
  2462  	return s
  2463  }
  2464  
  2465  // SetUserId sets the UserId field's value.
  2466  func (s *ListPermissionsInput) SetUserId(v string) *ListPermissionsInput {
  2467  	s.UserId = &v
  2468  	return s
  2469  }
  2470  
  2471  // SetUserType sets the UserType field's value.
  2472  func (s *ListPermissionsInput) SetUserType(v string) *ListPermissionsInput {
  2473  	s.UserType = &v
  2474  	return s
  2475  }
  2476  
  2477  // SetWorkspaceId sets the WorkspaceId field's value.
  2478  func (s *ListPermissionsInput) SetWorkspaceId(v string) *ListPermissionsInput {
  2479  	s.WorkspaceId = &v
  2480  	return s
  2481  }
  2482  
  2483  type ListPermissionsOutput struct {
  2484  	_ struct{} `type:"structure"`
  2485  
  2486  	// The token to use in a subsequent ListPermissions operation to return the
  2487  	// next set of results.
  2488  	NextToken *string `locationName:"nextToken" type:"string"`
  2489  
  2490  	// The permissions returned by the operation.
  2491  	//
  2492  	// Permissions is a required field
  2493  	Permissions []*PermissionEntry `locationName:"permissions" type:"list" required:"true"`
  2494  }
  2495  
  2496  // String returns the string representation.
  2497  //
  2498  // API parameter values that are decorated as "sensitive" in the API will not
  2499  // be included in the string output. The member name will be present, but the
  2500  // value will be replaced with "sensitive".
  2501  func (s ListPermissionsOutput) String() string {
  2502  	return awsutil.Prettify(s)
  2503  }
  2504  
  2505  // GoString returns the string representation.
  2506  //
  2507  // API parameter values that are decorated as "sensitive" in the API will not
  2508  // be included in the string output. The member name will be present, but the
  2509  // value will be replaced with "sensitive".
  2510  func (s ListPermissionsOutput) GoString() string {
  2511  	return s.String()
  2512  }
  2513  
  2514  // SetNextToken sets the NextToken field's value.
  2515  func (s *ListPermissionsOutput) SetNextToken(v string) *ListPermissionsOutput {
  2516  	s.NextToken = &v
  2517  	return s
  2518  }
  2519  
  2520  // SetPermissions sets the Permissions field's value.
  2521  func (s *ListPermissionsOutput) SetPermissions(v []*PermissionEntry) *ListPermissionsOutput {
  2522  	s.Permissions = v
  2523  	return s
  2524  }
  2525  
  2526  type ListWorkspacesInput struct {
  2527  	_ struct{} `type:"structure" nopayload:"true"`
  2528  
  2529  	// The maximum number of workspaces to include in the results.
  2530  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  2531  
  2532  	// The token for the next set of workspaces to return. (You receive this token
  2533  	// from a previous ListWorkspaces operation.)
  2534  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  2535  }
  2536  
  2537  // String returns the string representation.
  2538  //
  2539  // API parameter values that are decorated as "sensitive" in the API will not
  2540  // be included in the string output. The member name will be present, but the
  2541  // value will be replaced with "sensitive".
  2542  func (s ListWorkspacesInput) String() string {
  2543  	return awsutil.Prettify(s)
  2544  }
  2545  
  2546  // GoString returns the string representation.
  2547  //
  2548  // API parameter values that are decorated as "sensitive" in the API will not
  2549  // be included in the string output. The member name will be present, but the
  2550  // value will be replaced with "sensitive".
  2551  func (s ListWorkspacesInput) GoString() string {
  2552  	return s.String()
  2553  }
  2554  
  2555  // Validate inspects the fields of the type to determine if they are valid.
  2556  func (s *ListWorkspacesInput) Validate() error {
  2557  	invalidParams := request.ErrInvalidParams{Context: "ListWorkspacesInput"}
  2558  	if s.MaxResults != nil && *s.MaxResults < 1 {
  2559  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  2560  	}
  2561  
  2562  	if invalidParams.Len() > 0 {
  2563  		return invalidParams
  2564  	}
  2565  	return nil
  2566  }
  2567  
  2568  // SetMaxResults sets the MaxResults field's value.
  2569  func (s *ListWorkspacesInput) SetMaxResults(v int64) *ListWorkspacesInput {
  2570  	s.MaxResults = &v
  2571  	return s
  2572  }
  2573  
  2574  // SetNextToken sets the NextToken field's value.
  2575  func (s *ListWorkspacesInput) SetNextToken(v string) *ListWorkspacesInput {
  2576  	s.NextToken = &v
  2577  	return s
  2578  }
  2579  
  2580  type ListWorkspacesOutput struct {
  2581  	_ struct{} `type:"structure"`
  2582  
  2583  	// The token to use when requesting the next set of workspaces.
  2584  	NextToken *string `locationName:"nextToken" type:"string"`
  2585  
  2586  	// An array of structures that contain some information about the workspaces
  2587  	// in the account.
  2588  	//
  2589  	// Workspaces is a required field
  2590  	Workspaces []*WorkspaceSummary `locationName:"workspaces" type:"list" required:"true"`
  2591  }
  2592  
  2593  // String returns the string representation.
  2594  //
  2595  // API parameter values that are decorated as "sensitive" in the API will not
  2596  // be included in the string output. The member name will be present, but the
  2597  // value will be replaced with "sensitive".
  2598  func (s ListWorkspacesOutput) String() string {
  2599  	return awsutil.Prettify(s)
  2600  }
  2601  
  2602  // GoString returns the string representation.
  2603  //
  2604  // API parameter values that are decorated as "sensitive" in the API will not
  2605  // be included in the string output. The member name will be present, but the
  2606  // value will be replaced with "sensitive".
  2607  func (s ListWorkspacesOutput) GoString() string {
  2608  	return s.String()
  2609  }
  2610  
  2611  // SetNextToken sets the NextToken field's value.
  2612  func (s *ListWorkspacesOutput) SetNextToken(v string) *ListWorkspacesOutput {
  2613  	s.NextToken = &v
  2614  	return s
  2615  }
  2616  
  2617  // SetWorkspaces sets the Workspaces field's value.
  2618  func (s *ListWorkspacesOutput) SetWorkspaces(v []*WorkspaceSummary) *ListWorkspacesOutput {
  2619  	s.Workspaces = v
  2620  	return s
  2621  }
  2622  
  2623  // A structure containing the identity of one user or group and the Admin or
  2624  // Editor role that they have.
  2625  type PermissionEntry struct {
  2626  	_ struct{} `type:"structure"`
  2627  
  2628  	// Specifies whether the user or group has the Admin or Editor role.
  2629  	//
  2630  	// Role is a required field
  2631  	Role *string `locationName:"role" type:"string" required:"true" enum:"Role"`
  2632  
  2633  	// A structure with the ID of the user or group with this role.
  2634  	//
  2635  	// User is a required field
  2636  	User *User `locationName:"user" type:"structure" required:"true"`
  2637  }
  2638  
  2639  // String returns the string representation.
  2640  //
  2641  // API parameter values that are decorated as "sensitive" in the API will not
  2642  // be included in the string output. The member name will be present, but the
  2643  // value will be replaced with "sensitive".
  2644  func (s PermissionEntry) String() string {
  2645  	return awsutil.Prettify(s)
  2646  }
  2647  
  2648  // GoString returns the string representation.
  2649  //
  2650  // API parameter values that are decorated as "sensitive" in the API will not
  2651  // be included in the string output. The member name will be present, but the
  2652  // value will be replaced with "sensitive".
  2653  func (s PermissionEntry) GoString() string {
  2654  	return s.String()
  2655  }
  2656  
  2657  // SetRole sets the Role field's value.
  2658  func (s *PermissionEntry) SetRole(v string) *PermissionEntry {
  2659  	s.Role = &v
  2660  	return s
  2661  }
  2662  
  2663  // SetUser sets the User field's value.
  2664  func (s *PermissionEntry) SetUser(v *User) *PermissionEntry {
  2665  	s.User = v
  2666  	return s
  2667  }
  2668  
  2669  // The request references a resource that does not exist.
  2670  type ResourceNotFoundException struct {
  2671  	_            struct{}                  `type:"structure"`
  2672  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2673  
  2674  	// The value of a parameter in the request caused an error.
  2675  	Message_ *string `locationName:"message" type:"string"`
  2676  
  2677  	// The ID of the resource that is associated with the error.
  2678  	//
  2679  	// ResourceId is a required field
  2680  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  2681  
  2682  	// The type of the resource that is associated with the error.
  2683  	//
  2684  	// ResourceType is a required field
  2685  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  2686  }
  2687  
  2688  // String returns the string representation.
  2689  //
  2690  // API parameter values that are decorated as "sensitive" in the API will not
  2691  // be included in the string output. The member name will be present, but the
  2692  // value will be replaced with "sensitive".
  2693  func (s ResourceNotFoundException) String() string {
  2694  	return awsutil.Prettify(s)
  2695  }
  2696  
  2697  // GoString returns the string representation.
  2698  //
  2699  // API parameter values that are decorated as "sensitive" in the API will not
  2700  // be included in the string output. The member name will be present, but the
  2701  // value will be replaced with "sensitive".
  2702  func (s ResourceNotFoundException) GoString() string {
  2703  	return s.String()
  2704  }
  2705  
  2706  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  2707  	return &ResourceNotFoundException{
  2708  		RespMetadata: v,
  2709  	}
  2710  }
  2711  
  2712  // Code returns the exception type name.
  2713  func (s *ResourceNotFoundException) Code() string {
  2714  	return "ResourceNotFoundException"
  2715  }
  2716  
  2717  // Message returns the exception's message.
  2718  func (s *ResourceNotFoundException) Message() string {
  2719  	if s.Message_ != nil {
  2720  		return *s.Message_
  2721  	}
  2722  	return ""
  2723  }
  2724  
  2725  // OrigErr always returns nil, satisfies awserr.Error interface.
  2726  func (s *ResourceNotFoundException) OrigErr() error {
  2727  	return nil
  2728  }
  2729  
  2730  func (s *ResourceNotFoundException) Error() string {
  2731  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  2732  }
  2733  
  2734  // Status code returns the HTTP status code for the request's response error.
  2735  func (s *ResourceNotFoundException) StatusCode() int {
  2736  	return s.RespMetadata.StatusCode
  2737  }
  2738  
  2739  // RequestID returns the service's response RequestID for request.
  2740  func (s *ResourceNotFoundException) RequestID() string {
  2741  	return s.RespMetadata.RequestID
  2742  }
  2743  
  2744  // This structure defines which groups defined in the SAML assertion attribute
  2745  // are to be mapped to the Grafana Admin and Editor roles in the workspace.
  2746  type RoleValues struct {
  2747  	_ struct{} `type:"structure"`
  2748  
  2749  	// A list of groups from the SAML assertion attribute to grant the Grafana Admin
  2750  	// role to.
  2751  	Admin []*string `locationName:"admin" type:"list"`
  2752  
  2753  	// A list of groups from the SAML assertion attribute to grant the Grafana Editor
  2754  	// role to.
  2755  	Editor []*string `locationName:"editor" type:"list"`
  2756  }
  2757  
  2758  // String returns the string representation.
  2759  //
  2760  // API parameter values that are decorated as "sensitive" in the API will not
  2761  // be included in the string output. The member name will be present, but the
  2762  // value will be replaced with "sensitive".
  2763  func (s RoleValues) String() string {
  2764  	return awsutil.Prettify(s)
  2765  }
  2766  
  2767  // GoString returns the string representation.
  2768  //
  2769  // API parameter values that are decorated as "sensitive" in the API will not
  2770  // be included in the string output. The member name will be present, but the
  2771  // value will be replaced with "sensitive".
  2772  func (s RoleValues) GoString() string {
  2773  	return s.String()
  2774  }
  2775  
  2776  // SetAdmin sets the Admin field's value.
  2777  func (s *RoleValues) SetAdmin(v []*string) *RoleValues {
  2778  	s.Admin = v
  2779  	return s
  2780  }
  2781  
  2782  // SetEditor sets the Editor field's value.
  2783  func (s *RoleValues) SetEditor(v []*string) *RoleValues {
  2784  	s.Editor = v
  2785  	return s
  2786  }
  2787  
  2788  // A structure containing information about how this workspace works with SAML.
  2789  type SamlAuthentication struct {
  2790  	_ struct{} `type:"structure"`
  2791  
  2792  	// A structure containing details about how this workspace works with SAML.
  2793  	Configuration *SamlConfiguration `locationName:"configuration" type:"structure"`
  2794  
  2795  	// Specifies whether the workspace's SAML configuration is complete.
  2796  	//
  2797  	// Status is a required field
  2798  	Status *string `locationName:"status" type:"string" required:"true" enum:"SamlConfigurationStatus"`
  2799  }
  2800  
  2801  // String returns the string representation.
  2802  //
  2803  // API parameter values that are decorated as "sensitive" in the API will not
  2804  // be included in the string output. The member name will be present, but the
  2805  // value will be replaced with "sensitive".
  2806  func (s SamlAuthentication) String() string {
  2807  	return awsutil.Prettify(s)
  2808  }
  2809  
  2810  // GoString returns the string representation.
  2811  //
  2812  // API parameter values that are decorated as "sensitive" in the API will not
  2813  // be included in the string output. The member name will be present, but the
  2814  // value will be replaced with "sensitive".
  2815  func (s SamlAuthentication) GoString() string {
  2816  	return s.String()
  2817  }
  2818  
  2819  // SetConfiguration sets the Configuration field's value.
  2820  func (s *SamlAuthentication) SetConfiguration(v *SamlConfiguration) *SamlAuthentication {
  2821  	s.Configuration = v
  2822  	return s
  2823  }
  2824  
  2825  // SetStatus sets the Status field's value.
  2826  func (s *SamlAuthentication) SetStatus(v string) *SamlAuthentication {
  2827  	s.Status = &v
  2828  	return s
  2829  }
  2830  
  2831  // A structure containing information about how this workspace works with SAML.
  2832  type SamlConfiguration struct {
  2833  	_ struct{} `type:"structure"`
  2834  
  2835  	// Lists which organizations defined in the SAML assertion are allowed to use
  2836  	// the Amazon Managed Grafana workspace. If this is empty, all organizations
  2837  	// in the assertion attribute have access.
  2838  	AllowedOrganizations []*string `locationName:"allowedOrganizations" type:"list"`
  2839  
  2840  	// A structure that defines which attributes in the SAML assertion are to be
  2841  	// used to define information about the users authenticated by that IdP to use
  2842  	// the workspace.
  2843  	AssertionAttributes *AssertionAttributes `locationName:"assertionAttributes" type:"structure"`
  2844  
  2845  	// A structure containing the identity provider (IdP) metadata used to integrate
  2846  	// the identity provider with this workspace.
  2847  	//
  2848  	// IdpMetadata is a required field
  2849  	IdpMetadata *IdpMetadata `locationName:"idpMetadata" type:"structure" required:"true"`
  2850  
  2851  	// How long a sign-on session by a SAML user is valid, before the user has to
  2852  	// sign on again.
  2853  	LoginValidityDuration *int64 `locationName:"loginValidityDuration" type:"integer"`
  2854  
  2855  	// A structure containing arrays that map group names in the SAML assertion
  2856  	// to the Grafana Admin and Editor roles in the workspace.
  2857  	RoleValues *RoleValues `locationName:"roleValues" type:"structure"`
  2858  }
  2859  
  2860  // String returns the string representation.
  2861  //
  2862  // API parameter values that are decorated as "sensitive" in the API will not
  2863  // be included in the string output. The member name will be present, but the
  2864  // value will be replaced with "sensitive".
  2865  func (s SamlConfiguration) String() string {
  2866  	return awsutil.Prettify(s)
  2867  }
  2868  
  2869  // GoString returns the string representation.
  2870  //
  2871  // API parameter values that are decorated as "sensitive" in the API will not
  2872  // be included in the string output. The member name will be present, but the
  2873  // value will be replaced with "sensitive".
  2874  func (s SamlConfiguration) GoString() string {
  2875  	return s.String()
  2876  }
  2877  
  2878  // Validate inspects the fields of the type to determine if they are valid.
  2879  func (s *SamlConfiguration) Validate() error {
  2880  	invalidParams := request.ErrInvalidParams{Context: "SamlConfiguration"}
  2881  	if s.IdpMetadata == nil {
  2882  		invalidParams.Add(request.NewErrParamRequired("IdpMetadata"))
  2883  	}
  2884  	if s.AssertionAttributes != nil {
  2885  		if err := s.AssertionAttributes.Validate(); err != nil {
  2886  			invalidParams.AddNested("AssertionAttributes", err.(request.ErrInvalidParams))
  2887  		}
  2888  	}
  2889  	if s.IdpMetadata != nil {
  2890  		if err := s.IdpMetadata.Validate(); err != nil {
  2891  			invalidParams.AddNested("IdpMetadata", err.(request.ErrInvalidParams))
  2892  		}
  2893  	}
  2894  
  2895  	if invalidParams.Len() > 0 {
  2896  		return invalidParams
  2897  	}
  2898  	return nil
  2899  }
  2900  
  2901  // SetAllowedOrganizations sets the AllowedOrganizations field's value.
  2902  func (s *SamlConfiguration) SetAllowedOrganizations(v []*string) *SamlConfiguration {
  2903  	s.AllowedOrganizations = v
  2904  	return s
  2905  }
  2906  
  2907  // SetAssertionAttributes sets the AssertionAttributes field's value.
  2908  func (s *SamlConfiguration) SetAssertionAttributes(v *AssertionAttributes) *SamlConfiguration {
  2909  	s.AssertionAttributes = v
  2910  	return s
  2911  }
  2912  
  2913  // SetIdpMetadata sets the IdpMetadata field's value.
  2914  func (s *SamlConfiguration) SetIdpMetadata(v *IdpMetadata) *SamlConfiguration {
  2915  	s.IdpMetadata = v
  2916  	return s
  2917  }
  2918  
  2919  // SetLoginValidityDuration sets the LoginValidityDuration field's value.
  2920  func (s *SamlConfiguration) SetLoginValidityDuration(v int64) *SamlConfiguration {
  2921  	s.LoginValidityDuration = &v
  2922  	return s
  2923  }
  2924  
  2925  // SetRoleValues sets the RoleValues field's value.
  2926  func (s *SamlConfiguration) SetRoleValues(v *RoleValues) *SamlConfiguration {
  2927  	s.RoleValues = v
  2928  	return s
  2929  }
  2930  
  2931  // The request would cause a service quota to be exceeded.
  2932  type ServiceQuotaExceededException struct {
  2933  	_            struct{}                  `type:"structure"`
  2934  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2935  
  2936  	// A description of the error.
  2937  	Message_ *string `locationName:"message" type:"string"`
  2938  
  2939  	// The ID of the service quota that was exceeded.
  2940  	//
  2941  	// QuotaCode is a required field
  2942  	QuotaCode *string `locationName:"quotaCode" type:"string" required:"true"`
  2943  
  2944  	// The ID of the resource that is associated with the error.
  2945  	//
  2946  	// ResourceId is a required field
  2947  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  2948  
  2949  	// The type of the resource that is associated with the error.
  2950  	//
  2951  	// ResourceType is a required field
  2952  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  2953  
  2954  	// The value of a parameter in the request caused an error.
  2955  	//
  2956  	// ServiceCode is a required field
  2957  	ServiceCode *string `locationName:"serviceCode" type:"string" required:"true"`
  2958  }
  2959  
  2960  // String returns the string representation.
  2961  //
  2962  // API parameter values that are decorated as "sensitive" in the API will not
  2963  // be included in the string output. The member name will be present, but the
  2964  // value will be replaced with "sensitive".
  2965  func (s ServiceQuotaExceededException) String() string {
  2966  	return awsutil.Prettify(s)
  2967  }
  2968  
  2969  // GoString returns the string representation.
  2970  //
  2971  // API parameter values that are decorated as "sensitive" in the API will not
  2972  // be included in the string output. The member name will be present, but the
  2973  // value will be replaced with "sensitive".
  2974  func (s ServiceQuotaExceededException) GoString() string {
  2975  	return s.String()
  2976  }
  2977  
  2978  func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
  2979  	return &ServiceQuotaExceededException{
  2980  		RespMetadata: v,
  2981  	}
  2982  }
  2983  
  2984  // Code returns the exception type name.
  2985  func (s *ServiceQuotaExceededException) Code() string {
  2986  	return "ServiceQuotaExceededException"
  2987  }
  2988  
  2989  // Message returns the exception's message.
  2990  func (s *ServiceQuotaExceededException) Message() string {
  2991  	if s.Message_ != nil {
  2992  		return *s.Message_
  2993  	}
  2994  	return ""
  2995  }
  2996  
  2997  // OrigErr always returns nil, satisfies awserr.Error interface.
  2998  func (s *ServiceQuotaExceededException) OrigErr() error {
  2999  	return nil
  3000  }
  3001  
  3002  func (s *ServiceQuotaExceededException) Error() string {
  3003  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3004  }
  3005  
  3006  // Status code returns the HTTP status code for the request's response error.
  3007  func (s *ServiceQuotaExceededException) StatusCode() int {
  3008  	return s.RespMetadata.StatusCode
  3009  }
  3010  
  3011  // RequestID returns the service's response RequestID for request.
  3012  func (s *ServiceQuotaExceededException) RequestID() string {
  3013  	return s.RespMetadata.RequestID
  3014  }
  3015  
  3016  // The request was denied because of request throttling. Retry the request.
  3017  type ThrottlingException struct {
  3018  	_            struct{}                  `type:"structure"`
  3019  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3020  
  3021  	// A description of the error.
  3022  	Message_ *string `locationName:"message" type:"string"`
  3023  
  3024  	// The ID of the service quota that was exceeded.
  3025  	QuotaCode *string `locationName:"quotaCode" type:"string"`
  3026  
  3027  	// The value of a parameter in the request caused an error.
  3028  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  3029  
  3030  	// The ID of the service that is associated with the error.
  3031  	ServiceCode *string `locationName:"serviceCode" type:"string"`
  3032  }
  3033  
  3034  // String returns the string representation.
  3035  //
  3036  // API parameter values that are decorated as "sensitive" in the API will not
  3037  // be included in the string output. The member name will be present, but the
  3038  // value will be replaced with "sensitive".
  3039  func (s ThrottlingException) String() string {
  3040  	return awsutil.Prettify(s)
  3041  }
  3042  
  3043  // GoString returns the string representation.
  3044  //
  3045  // API parameter values that are decorated as "sensitive" in the API will not
  3046  // be included in the string output. The member name will be present, but the
  3047  // value will be replaced with "sensitive".
  3048  func (s ThrottlingException) GoString() string {
  3049  	return s.String()
  3050  }
  3051  
  3052  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
  3053  	return &ThrottlingException{
  3054  		RespMetadata: v,
  3055  	}
  3056  }
  3057  
  3058  // Code returns the exception type name.
  3059  func (s *ThrottlingException) Code() string {
  3060  	return "ThrottlingException"
  3061  }
  3062  
  3063  // Message returns the exception's message.
  3064  func (s *ThrottlingException) Message() string {
  3065  	if s.Message_ != nil {
  3066  		return *s.Message_
  3067  	}
  3068  	return ""
  3069  }
  3070  
  3071  // OrigErr always returns nil, satisfies awserr.Error interface.
  3072  func (s *ThrottlingException) OrigErr() error {
  3073  	return nil
  3074  }
  3075  
  3076  func (s *ThrottlingException) Error() string {
  3077  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3078  }
  3079  
  3080  // Status code returns the HTTP status code for the request's response error.
  3081  func (s *ThrottlingException) StatusCode() int {
  3082  	return s.RespMetadata.StatusCode
  3083  }
  3084  
  3085  // RequestID returns the service's response RequestID for request.
  3086  func (s *ThrottlingException) RequestID() string {
  3087  	return s.RespMetadata.RequestID
  3088  }
  3089  
  3090  // A structure containing information about one error encountered while performing
  3091  // an UpdatePermissions (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html)
  3092  // operation.
  3093  type UpdateError struct {
  3094  	_ struct{} `type:"structure"`
  3095  
  3096  	// Specifies which permission update caused the error.
  3097  	//
  3098  	// CausedBy is a required field
  3099  	CausedBy *UpdateInstruction `locationName:"causedBy" type:"structure" required:"true"`
  3100  
  3101  	// The error code.
  3102  	//
  3103  	// Code is a required field
  3104  	Code *int64 `locationName:"code" min:"100" type:"integer" required:"true"`
  3105  
  3106  	// The message for this error.
  3107  	//
  3108  	// Message is a required field
  3109  	Message *string `locationName:"message" type:"string" required:"true"`
  3110  }
  3111  
  3112  // String returns the string representation.
  3113  //
  3114  // API parameter values that are decorated as "sensitive" in the API will not
  3115  // be included in the string output. The member name will be present, but the
  3116  // value will be replaced with "sensitive".
  3117  func (s UpdateError) String() string {
  3118  	return awsutil.Prettify(s)
  3119  }
  3120  
  3121  // GoString returns the string representation.
  3122  //
  3123  // API parameter values that are decorated as "sensitive" in the API will not
  3124  // be included in the string output. The member name will be present, but the
  3125  // value will be replaced with "sensitive".
  3126  func (s UpdateError) GoString() string {
  3127  	return s.String()
  3128  }
  3129  
  3130  // SetCausedBy sets the CausedBy field's value.
  3131  func (s *UpdateError) SetCausedBy(v *UpdateInstruction) *UpdateError {
  3132  	s.CausedBy = v
  3133  	return s
  3134  }
  3135  
  3136  // SetCode sets the Code field's value.
  3137  func (s *UpdateError) SetCode(v int64) *UpdateError {
  3138  	s.Code = &v
  3139  	return s
  3140  }
  3141  
  3142  // SetMessage sets the Message field's value.
  3143  func (s *UpdateError) SetMessage(v string) *UpdateError {
  3144  	s.Message = &v
  3145  	return s
  3146  }
  3147  
  3148  // Contains the instructions for one Grafana role permission update in a UpdatePermissions
  3149  // (https://docs.aws.amazon.com/grafana/latest/APIReference/API_UpdatePermissions.html)
  3150  // operation.
  3151  type UpdateInstruction struct {
  3152  	_ struct{} `type:"structure"`
  3153  
  3154  	// Specifies whether this update is to add or revoke role permissions.
  3155  	//
  3156  	// Action is a required field
  3157  	Action *string `locationName:"action" type:"string" required:"true" enum:"UpdateAction"`
  3158  
  3159  	// The role to add or revoke for the user or the group specified in users.
  3160  	//
  3161  	// Role is a required field
  3162  	Role *string `locationName:"role" type:"string" required:"true" enum:"Role"`
  3163  
  3164  	// A structure that specifies the user or group to add or revoke the role for.
  3165  	//
  3166  	// Users is a required field
  3167  	Users []*User `locationName:"users" type:"list" required:"true"`
  3168  }
  3169  
  3170  // String returns the string representation.
  3171  //
  3172  // API parameter values that are decorated as "sensitive" in the API will not
  3173  // be included in the string output. The member name will be present, but the
  3174  // value will be replaced with "sensitive".
  3175  func (s UpdateInstruction) String() string {
  3176  	return awsutil.Prettify(s)
  3177  }
  3178  
  3179  // GoString returns the string representation.
  3180  //
  3181  // API parameter values that are decorated as "sensitive" in the API will not
  3182  // be included in the string output. The member name will be present, but the
  3183  // value will be replaced with "sensitive".
  3184  func (s UpdateInstruction) GoString() string {
  3185  	return s.String()
  3186  }
  3187  
  3188  // Validate inspects the fields of the type to determine if they are valid.
  3189  func (s *UpdateInstruction) Validate() error {
  3190  	invalidParams := request.ErrInvalidParams{Context: "UpdateInstruction"}
  3191  	if s.Action == nil {
  3192  		invalidParams.Add(request.NewErrParamRequired("Action"))
  3193  	}
  3194  	if s.Role == nil {
  3195  		invalidParams.Add(request.NewErrParamRequired("Role"))
  3196  	}
  3197  	if s.Users == nil {
  3198  		invalidParams.Add(request.NewErrParamRequired("Users"))
  3199  	}
  3200  	if s.Users != nil {
  3201  		for i, v := range s.Users {
  3202  			if v == nil {
  3203  				continue
  3204  			}
  3205  			if err := v.Validate(); err != nil {
  3206  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Users", i), err.(request.ErrInvalidParams))
  3207  			}
  3208  		}
  3209  	}
  3210  
  3211  	if invalidParams.Len() > 0 {
  3212  		return invalidParams
  3213  	}
  3214  	return nil
  3215  }
  3216  
  3217  // SetAction sets the Action field's value.
  3218  func (s *UpdateInstruction) SetAction(v string) *UpdateInstruction {
  3219  	s.Action = &v
  3220  	return s
  3221  }
  3222  
  3223  // SetRole sets the Role field's value.
  3224  func (s *UpdateInstruction) SetRole(v string) *UpdateInstruction {
  3225  	s.Role = &v
  3226  	return s
  3227  }
  3228  
  3229  // SetUsers sets the Users field's value.
  3230  func (s *UpdateInstruction) SetUsers(v []*User) *UpdateInstruction {
  3231  	s.Users = v
  3232  	return s
  3233  }
  3234  
  3235  type UpdatePermissionsInput struct {
  3236  	_ struct{} `type:"structure"`
  3237  
  3238  	// An array of structures that contain the permission updates to make.
  3239  	//
  3240  	// UpdateInstructionBatch is a required field
  3241  	UpdateInstructionBatch []*UpdateInstruction `locationName:"updateInstructionBatch" type:"list" required:"true"`
  3242  
  3243  	// The ID of the workspace to update.
  3244  	//
  3245  	// WorkspaceId is a required field
  3246  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  3247  }
  3248  
  3249  // String returns the string representation.
  3250  //
  3251  // API parameter values that are decorated as "sensitive" in the API will not
  3252  // be included in the string output. The member name will be present, but the
  3253  // value will be replaced with "sensitive".
  3254  func (s UpdatePermissionsInput) String() string {
  3255  	return awsutil.Prettify(s)
  3256  }
  3257  
  3258  // GoString returns the string representation.
  3259  //
  3260  // API parameter values that are decorated as "sensitive" in the API will not
  3261  // be included in the string output. The member name will be present, but the
  3262  // value will be replaced with "sensitive".
  3263  func (s UpdatePermissionsInput) GoString() string {
  3264  	return s.String()
  3265  }
  3266  
  3267  // Validate inspects the fields of the type to determine if they are valid.
  3268  func (s *UpdatePermissionsInput) Validate() error {
  3269  	invalidParams := request.ErrInvalidParams{Context: "UpdatePermissionsInput"}
  3270  	if s.UpdateInstructionBatch == nil {
  3271  		invalidParams.Add(request.NewErrParamRequired("UpdateInstructionBatch"))
  3272  	}
  3273  	if s.WorkspaceId == nil {
  3274  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  3275  	}
  3276  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  3277  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  3278  	}
  3279  	if s.UpdateInstructionBatch != nil {
  3280  		for i, v := range s.UpdateInstructionBatch {
  3281  			if v == nil {
  3282  				continue
  3283  			}
  3284  			if err := v.Validate(); err != nil {
  3285  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UpdateInstructionBatch", i), err.(request.ErrInvalidParams))
  3286  			}
  3287  		}
  3288  	}
  3289  
  3290  	if invalidParams.Len() > 0 {
  3291  		return invalidParams
  3292  	}
  3293  	return nil
  3294  }
  3295  
  3296  // SetUpdateInstructionBatch sets the UpdateInstructionBatch field's value.
  3297  func (s *UpdatePermissionsInput) SetUpdateInstructionBatch(v []*UpdateInstruction) *UpdatePermissionsInput {
  3298  	s.UpdateInstructionBatch = v
  3299  	return s
  3300  }
  3301  
  3302  // SetWorkspaceId sets the WorkspaceId field's value.
  3303  func (s *UpdatePermissionsInput) SetWorkspaceId(v string) *UpdatePermissionsInput {
  3304  	s.WorkspaceId = &v
  3305  	return s
  3306  }
  3307  
  3308  type UpdatePermissionsOutput struct {
  3309  	_ struct{} `type:"structure"`
  3310  
  3311  	// An array of structures that contain the errors from the operation, if any.
  3312  	//
  3313  	// Errors is a required field
  3314  	Errors []*UpdateError `locationName:"errors" type:"list" required:"true"`
  3315  }
  3316  
  3317  // String returns the string representation.
  3318  //
  3319  // API parameter values that are decorated as "sensitive" in the API will not
  3320  // be included in the string output. The member name will be present, but the
  3321  // value will be replaced with "sensitive".
  3322  func (s UpdatePermissionsOutput) String() string {
  3323  	return awsutil.Prettify(s)
  3324  }
  3325  
  3326  // GoString returns the string representation.
  3327  //
  3328  // API parameter values that are decorated as "sensitive" in the API will not
  3329  // be included in the string output. The member name will be present, but the
  3330  // value will be replaced with "sensitive".
  3331  func (s UpdatePermissionsOutput) GoString() string {
  3332  	return s.String()
  3333  }
  3334  
  3335  // SetErrors sets the Errors field's value.
  3336  func (s *UpdatePermissionsOutput) SetErrors(v []*UpdateError) *UpdatePermissionsOutput {
  3337  	s.Errors = v
  3338  	return s
  3339  }
  3340  
  3341  type UpdateWorkspaceAuthenticationInput struct {
  3342  	_ struct{} `type:"structure"`
  3343  
  3344  	// Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single
  3345  	// Sign On, or both to authenticate users for using the Grafana console within
  3346  	// a workspace. For more information, see User authentication in Amazon Managed
  3347  	// Grafana (https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG.html).
  3348  	//
  3349  	// AuthenticationProviders is a required field
  3350  	AuthenticationProviders []*string `locationName:"authenticationProviders" type:"list" required:"true"`
  3351  
  3352  	// If the workspace uses SAML, use this structure to map SAML assertion attributes
  3353  	// to workspace user information and define which groups in the assertion attribute
  3354  	// are to have the Admin and Editor roles in the workspace.
  3355  	SamlConfiguration *SamlConfiguration `locationName:"samlConfiguration" type:"structure"`
  3356  
  3357  	// The ID of the workspace to update the authentication for.
  3358  	//
  3359  	// WorkspaceId is a required field
  3360  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  3361  }
  3362  
  3363  // String returns the string representation.
  3364  //
  3365  // API parameter values that are decorated as "sensitive" in the API will not
  3366  // be included in the string output. The member name will be present, but the
  3367  // value will be replaced with "sensitive".
  3368  func (s UpdateWorkspaceAuthenticationInput) String() string {
  3369  	return awsutil.Prettify(s)
  3370  }
  3371  
  3372  // GoString returns the string representation.
  3373  //
  3374  // API parameter values that are decorated as "sensitive" in the API will not
  3375  // be included in the string output. The member name will be present, but the
  3376  // value will be replaced with "sensitive".
  3377  func (s UpdateWorkspaceAuthenticationInput) GoString() string {
  3378  	return s.String()
  3379  }
  3380  
  3381  // Validate inspects the fields of the type to determine if they are valid.
  3382  func (s *UpdateWorkspaceAuthenticationInput) Validate() error {
  3383  	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkspaceAuthenticationInput"}
  3384  	if s.AuthenticationProviders == nil {
  3385  		invalidParams.Add(request.NewErrParamRequired("AuthenticationProviders"))
  3386  	}
  3387  	if s.WorkspaceId == nil {
  3388  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  3389  	}
  3390  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  3391  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  3392  	}
  3393  	if s.SamlConfiguration != nil {
  3394  		if err := s.SamlConfiguration.Validate(); err != nil {
  3395  			invalidParams.AddNested("SamlConfiguration", err.(request.ErrInvalidParams))
  3396  		}
  3397  	}
  3398  
  3399  	if invalidParams.Len() > 0 {
  3400  		return invalidParams
  3401  	}
  3402  	return nil
  3403  }
  3404  
  3405  // SetAuthenticationProviders sets the AuthenticationProviders field's value.
  3406  func (s *UpdateWorkspaceAuthenticationInput) SetAuthenticationProviders(v []*string) *UpdateWorkspaceAuthenticationInput {
  3407  	s.AuthenticationProviders = v
  3408  	return s
  3409  }
  3410  
  3411  // SetSamlConfiguration sets the SamlConfiguration field's value.
  3412  func (s *UpdateWorkspaceAuthenticationInput) SetSamlConfiguration(v *SamlConfiguration) *UpdateWorkspaceAuthenticationInput {
  3413  	s.SamlConfiguration = v
  3414  	return s
  3415  }
  3416  
  3417  // SetWorkspaceId sets the WorkspaceId field's value.
  3418  func (s *UpdateWorkspaceAuthenticationInput) SetWorkspaceId(v string) *UpdateWorkspaceAuthenticationInput {
  3419  	s.WorkspaceId = &v
  3420  	return s
  3421  }
  3422  
  3423  type UpdateWorkspaceAuthenticationOutput struct {
  3424  	_ struct{} `type:"structure"`
  3425  
  3426  	// A structure that describes the user authentication for this workspace after
  3427  	// the update is made.
  3428  	//
  3429  	// Authentication is a required field
  3430  	Authentication *AuthenticationDescription `locationName:"authentication" type:"structure" required:"true"`
  3431  }
  3432  
  3433  // String returns the string representation.
  3434  //
  3435  // API parameter values that are decorated as "sensitive" in the API will not
  3436  // be included in the string output. The member name will be present, but the
  3437  // value will be replaced with "sensitive".
  3438  func (s UpdateWorkspaceAuthenticationOutput) String() string {
  3439  	return awsutil.Prettify(s)
  3440  }
  3441  
  3442  // GoString returns the string representation.
  3443  //
  3444  // API parameter values that are decorated as "sensitive" in the API will not
  3445  // be included in the string output. The member name will be present, but the
  3446  // value will be replaced with "sensitive".
  3447  func (s UpdateWorkspaceAuthenticationOutput) GoString() string {
  3448  	return s.String()
  3449  }
  3450  
  3451  // SetAuthentication sets the Authentication field's value.
  3452  func (s *UpdateWorkspaceAuthenticationOutput) SetAuthentication(v *AuthenticationDescription) *UpdateWorkspaceAuthenticationOutput {
  3453  	s.Authentication = v
  3454  	return s
  3455  }
  3456  
  3457  type UpdateWorkspaceInput struct {
  3458  	_ struct{} `type:"structure"`
  3459  
  3460  	// Specifies whether the workspace can access Amazon Web Services resources
  3461  	// in this Amazon Web Services account only, or whether it can also access Amazon
  3462  	// Web Services resources in other accounts in the same organization. If you
  3463  	// specify ORGANIZATION, you must specify which organizational units the workspace
  3464  	// can access in the workspaceOrganizationalUnits parameter.
  3465  	AccountAccessType *string `locationName:"accountAccessType" type:"string" enum:"AccountAccessType"`
  3466  
  3467  	// The name of an IAM role that already exists to use to access resources through
  3468  	// Organizations.
  3469  	//
  3470  	// OrganizationRoleName is a sensitive parameter and its value will be
  3471  	// replaced with "sensitive" in string returned by UpdateWorkspaceInput's
  3472  	// String and GoString methods.
  3473  	OrganizationRoleName *string `locationName:"organizationRoleName" min:"1" type:"string" sensitive:"true"`
  3474  
  3475  	// If you specify Service Managed, Amazon Managed Grafana automatically creates
  3476  	// the IAM roles and provisions the permissions that the workspace needs to
  3477  	// use Amazon Web Services data sources and notification channels.
  3478  	//
  3479  	// If you specify CUSTOMER_MANAGED, you will manage those roles and permissions
  3480  	// yourself. If you are creating this workspace in a member account of an organization
  3481  	// and that account is not a delegated administrator account, and you want the
  3482  	// workspace to access data sources in other Amazon Web Services accounts in
  3483  	// the organization, you must choose CUSTOMER_MANAGED.
  3484  	//
  3485  	// For more information, see Amazon Managed Grafana permissions and policies
  3486  	// for Amazon Web Services data sources and notification channels (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
  3487  	PermissionType *string `locationName:"permissionType" type:"string" enum:"PermissionType"`
  3488  
  3489  	// The name of the CloudFormation stack set to use to generate IAM roles to
  3490  	// be used for this workspace.
  3491  	StackSetName *string `locationName:"stackSetName" type:"string"`
  3492  
  3493  	// Specify the Amazon Web Services data sources that you want to be queried
  3494  	// in this workspace. Specifying these data sources here enables Amazon Managed
  3495  	// Grafana to create IAM roles and permissions that allow Amazon Managed Grafana
  3496  	// to read data from these sources. You must still add them as data sources
  3497  	// in the Grafana console in the workspace.
  3498  	//
  3499  	// If you don't specify a data source here, you can still add it as a data source
  3500  	// later in the workspace console. However, you will then have to manually configure
  3501  	// permissions for it.
  3502  	WorkspaceDataSources []*string `locationName:"workspaceDataSources" type:"list"`
  3503  
  3504  	// A description for the workspace. This is used only to help you identify this
  3505  	// workspace.
  3506  	//
  3507  	// WorkspaceDescription is a sensitive parameter and its value will be
  3508  	// replaced with "sensitive" in string returned by UpdateWorkspaceInput's
  3509  	// String and GoString methods.
  3510  	WorkspaceDescription *string `locationName:"workspaceDescription" type:"string" sensitive:"true"`
  3511  
  3512  	// The ID of the workspace to update.
  3513  	//
  3514  	// WorkspaceId is a required field
  3515  	WorkspaceId *string `location:"uri" locationName:"workspaceId" type:"string" required:"true"`
  3516  
  3517  	// A new name for the workspace to update.
  3518  	//
  3519  	// WorkspaceName is a sensitive parameter and its value will be
  3520  	// replaced with "sensitive" in string returned by UpdateWorkspaceInput's
  3521  	// String and GoString methods.
  3522  	WorkspaceName *string `locationName:"workspaceName" type:"string" sensitive:"true"`
  3523  
  3524  	// Specify the Amazon Web Services notification channels that you plan to use
  3525  	// in this workspace. Specifying these data sources here enables Amazon Managed
  3526  	// Grafana to create IAM roles and permissions that allow Amazon Managed Grafana
  3527  	// to use these channels.
  3528  	WorkspaceNotificationDestinations []*string `locationName:"workspaceNotificationDestinations" type:"list"`
  3529  
  3530  	// Specifies the organizational units that this workspace is allowed to use
  3531  	// data sources from, if this workspace is in an account that is part of an
  3532  	// organization.
  3533  	//
  3534  	// WorkspaceOrganizationalUnits is a sensitive parameter and its value will be
  3535  	// replaced with "sensitive" in string returned by UpdateWorkspaceInput's
  3536  	// String and GoString methods.
  3537  	WorkspaceOrganizationalUnits []*string `locationName:"workspaceOrganizationalUnits" type:"list" sensitive:"true"`
  3538  
  3539  	// The workspace needs an IAM role that grants permissions to the Amazon Web
  3540  	// Services resources that the workspace will view data from. If you already
  3541  	// have a role that you want to use, specify it here. If you omit this field
  3542  	// and you specify some Amazon Web Services resources in workspaceDataSources
  3543  	// or workspaceNotificationDestinations, a new IAM role with the necessary permissions
  3544  	// is automatically created.
  3545  	//
  3546  	// WorkspaceRoleArn is a sensitive parameter and its value will be
  3547  	// replaced with "sensitive" in string returned by UpdateWorkspaceInput's
  3548  	// String and GoString methods.
  3549  	WorkspaceRoleArn *string `locationName:"workspaceRoleArn" min:"1" type:"string" sensitive:"true"`
  3550  }
  3551  
  3552  // String returns the string representation.
  3553  //
  3554  // API parameter values that are decorated as "sensitive" in the API will not
  3555  // be included in the string output. The member name will be present, but the
  3556  // value will be replaced with "sensitive".
  3557  func (s UpdateWorkspaceInput) String() string {
  3558  	return awsutil.Prettify(s)
  3559  }
  3560  
  3561  // GoString returns the string representation.
  3562  //
  3563  // API parameter values that are decorated as "sensitive" in the API will not
  3564  // be included in the string output. The member name will be present, but the
  3565  // value will be replaced with "sensitive".
  3566  func (s UpdateWorkspaceInput) GoString() string {
  3567  	return s.String()
  3568  }
  3569  
  3570  // Validate inspects the fields of the type to determine if they are valid.
  3571  func (s *UpdateWorkspaceInput) Validate() error {
  3572  	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkspaceInput"}
  3573  	if s.OrganizationRoleName != nil && len(*s.OrganizationRoleName) < 1 {
  3574  		invalidParams.Add(request.NewErrParamMinLen("OrganizationRoleName", 1))
  3575  	}
  3576  	if s.WorkspaceId == nil {
  3577  		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
  3578  	}
  3579  	if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 {
  3580  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1))
  3581  	}
  3582  	if s.WorkspaceRoleArn != nil && len(*s.WorkspaceRoleArn) < 1 {
  3583  		invalidParams.Add(request.NewErrParamMinLen("WorkspaceRoleArn", 1))
  3584  	}
  3585  
  3586  	if invalidParams.Len() > 0 {
  3587  		return invalidParams
  3588  	}
  3589  	return nil
  3590  }
  3591  
  3592  // SetAccountAccessType sets the AccountAccessType field's value.
  3593  func (s *UpdateWorkspaceInput) SetAccountAccessType(v string) *UpdateWorkspaceInput {
  3594  	s.AccountAccessType = &v
  3595  	return s
  3596  }
  3597  
  3598  // SetOrganizationRoleName sets the OrganizationRoleName field's value.
  3599  func (s *UpdateWorkspaceInput) SetOrganizationRoleName(v string) *UpdateWorkspaceInput {
  3600  	s.OrganizationRoleName = &v
  3601  	return s
  3602  }
  3603  
  3604  // SetPermissionType sets the PermissionType field's value.
  3605  func (s *UpdateWorkspaceInput) SetPermissionType(v string) *UpdateWorkspaceInput {
  3606  	s.PermissionType = &v
  3607  	return s
  3608  }
  3609  
  3610  // SetStackSetName sets the StackSetName field's value.
  3611  func (s *UpdateWorkspaceInput) SetStackSetName(v string) *UpdateWorkspaceInput {
  3612  	s.StackSetName = &v
  3613  	return s
  3614  }
  3615  
  3616  // SetWorkspaceDataSources sets the WorkspaceDataSources field's value.
  3617  func (s *UpdateWorkspaceInput) SetWorkspaceDataSources(v []*string) *UpdateWorkspaceInput {
  3618  	s.WorkspaceDataSources = v
  3619  	return s
  3620  }
  3621  
  3622  // SetWorkspaceDescription sets the WorkspaceDescription field's value.
  3623  func (s *UpdateWorkspaceInput) SetWorkspaceDescription(v string) *UpdateWorkspaceInput {
  3624  	s.WorkspaceDescription = &v
  3625  	return s
  3626  }
  3627  
  3628  // SetWorkspaceId sets the WorkspaceId field's value.
  3629  func (s *UpdateWorkspaceInput) SetWorkspaceId(v string) *UpdateWorkspaceInput {
  3630  	s.WorkspaceId = &v
  3631  	return s
  3632  }
  3633  
  3634  // SetWorkspaceName sets the WorkspaceName field's value.
  3635  func (s *UpdateWorkspaceInput) SetWorkspaceName(v string) *UpdateWorkspaceInput {
  3636  	s.WorkspaceName = &v
  3637  	return s
  3638  }
  3639  
  3640  // SetWorkspaceNotificationDestinations sets the WorkspaceNotificationDestinations field's value.
  3641  func (s *UpdateWorkspaceInput) SetWorkspaceNotificationDestinations(v []*string) *UpdateWorkspaceInput {
  3642  	s.WorkspaceNotificationDestinations = v
  3643  	return s
  3644  }
  3645  
  3646  // SetWorkspaceOrganizationalUnits sets the WorkspaceOrganizationalUnits field's value.
  3647  func (s *UpdateWorkspaceInput) SetWorkspaceOrganizationalUnits(v []*string) *UpdateWorkspaceInput {
  3648  	s.WorkspaceOrganizationalUnits = v
  3649  	return s
  3650  }
  3651  
  3652  // SetWorkspaceRoleArn sets the WorkspaceRoleArn field's value.
  3653  func (s *UpdateWorkspaceInput) SetWorkspaceRoleArn(v string) *UpdateWorkspaceInput {
  3654  	s.WorkspaceRoleArn = &v
  3655  	return s
  3656  }
  3657  
  3658  type UpdateWorkspaceOutput struct {
  3659  	_ struct{} `type:"structure"`
  3660  
  3661  	// A structure containing data about the workspace that was created.
  3662  	//
  3663  	// Workspace is a required field
  3664  	Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"`
  3665  }
  3666  
  3667  // String returns the string representation.
  3668  //
  3669  // API parameter values that are decorated as "sensitive" in the API will not
  3670  // be included in the string output. The member name will be present, but the
  3671  // value will be replaced with "sensitive".
  3672  func (s UpdateWorkspaceOutput) String() string {
  3673  	return awsutil.Prettify(s)
  3674  }
  3675  
  3676  // GoString returns the string representation.
  3677  //
  3678  // API parameter values that are decorated as "sensitive" in the API will not
  3679  // be included in the string output. The member name will be present, but the
  3680  // value will be replaced with "sensitive".
  3681  func (s UpdateWorkspaceOutput) GoString() string {
  3682  	return s.String()
  3683  }
  3684  
  3685  // SetWorkspace sets the Workspace field's value.
  3686  func (s *UpdateWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *UpdateWorkspaceOutput {
  3687  	s.Workspace = v
  3688  	return s
  3689  }
  3690  
  3691  // A structure that specifies one user or group in the workspace.
  3692  type User struct {
  3693  	_ struct{} `type:"structure"`
  3694  
  3695  	// The ID of the user or group.
  3696  	//
  3697  	// Id is a required field
  3698  	Id *string `locationName:"id" min:"1" type:"string" required:"true"`
  3699  
  3700  	// Specifies whether this is a single user or a group.
  3701  	//
  3702  	// Type is a required field
  3703  	Type *string `locationName:"type" type:"string" required:"true" enum:"UserType"`
  3704  }
  3705  
  3706  // String returns the string representation.
  3707  //
  3708  // API parameter values that are decorated as "sensitive" in the API will not
  3709  // be included in the string output. The member name will be present, but the
  3710  // value will be replaced with "sensitive".
  3711  func (s User) String() string {
  3712  	return awsutil.Prettify(s)
  3713  }
  3714  
  3715  // GoString returns the string representation.
  3716  //
  3717  // API parameter values that are decorated as "sensitive" in the API will not
  3718  // be included in the string output. The member name will be present, but the
  3719  // value will be replaced with "sensitive".
  3720  func (s User) GoString() string {
  3721  	return s.String()
  3722  }
  3723  
  3724  // Validate inspects the fields of the type to determine if they are valid.
  3725  func (s *User) Validate() error {
  3726  	invalidParams := request.ErrInvalidParams{Context: "User"}
  3727  	if s.Id == nil {
  3728  		invalidParams.Add(request.NewErrParamRequired("Id"))
  3729  	}
  3730  	if s.Id != nil && len(*s.Id) < 1 {
  3731  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  3732  	}
  3733  	if s.Type == nil {
  3734  		invalidParams.Add(request.NewErrParamRequired("Type"))
  3735  	}
  3736  
  3737  	if invalidParams.Len() > 0 {
  3738  		return invalidParams
  3739  	}
  3740  	return nil
  3741  }
  3742  
  3743  // SetId sets the Id field's value.
  3744  func (s *User) SetId(v string) *User {
  3745  	s.Id = &v
  3746  	return s
  3747  }
  3748  
  3749  // SetType sets the Type field's value.
  3750  func (s *User) SetType(v string) *User {
  3751  	s.Type = &v
  3752  	return s
  3753  }
  3754  
  3755  // The value of a parameter in the request caused an error.
  3756  type ValidationException struct {
  3757  	_            struct{}                  `type:"structure"`
  3758  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3759  
  3760  	// A list of fields that might be associated with the error.
  3761  	FieldList []*ValidationExceptionField `locationName:"fieldList" type:"list"`
  3762  
  3763  	// A description of the error.
  3764  	Message_ *string `locationName:"message" type:"string"`
  3765  
  3766  	// The reason that the operation failed.
  3767  	//
  3768  	// Reason is a required field
  3769  	Reason *string `locationName:"reason" type:"string" required:"true" enum:"ValidationExceptionReason"`
  3770  }
  3771  
  3772  // String returns the string representation.
  3773  //
  3774  // API parameter values that are decorated as "sensitive" in the API will not
  3775  // be included in the string output. The member name will be present, but the
  3776  // value will be replaced with "sensitive".
  3777  func (s ValidationException) String() string {
  3778  	return awsutil.Prettify(s)
  3779  }
  3780  
  3781  // GoString returns the string representation.
  3782  //
  3783  // API parameter values that are decorated as "sensitive" in the API will not
  3784  // be included in the string output. The member name will be present, but the
  3785  // value will be replaced with "sensitive".
  3786  func (s ValidationException) GoString() string {
  3787  	return s.String()
  3788  }
  3789  
  3790  func newErrorValidationException(v protocol.ResponseMetadata) error {
  3791  	return &ValidationException{
  3792  		RespMetadata: v,
  3793  	}
  3794  }
  3795  
  3796  // Code returns the exception type name.
  3797  func (s *ValidationException) Code() string {
  3798  	return "ValidationException"
  3799  }
  3800  
  3801  // Message returns the exception's message.
  3802  func (s *ValidationException) Message() string {
  3803  	if s.Message_ != nil {
  3804  		return *s.Message_
  3805  	}
  3806  	return ""
  3807  }
  3808  
  3809  // OrigErr always returns nil, satisfies awserr.Error interface.
  3810  func (s *ValidationException) OrigErr() error {
  3811  	return nil
  3812  }
  3813  
  3814  func (s *ValidationException) Error() string {
  3815  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3816  }
  3817  
  3818  // Status code returns the HTTP status code for the request's response error.
  3819  func (s *ValidationException) StatusCode() int {
  3820  	return s.RespMetadata.StatusCode
  3821  }
  3822  
  3823  // RequestID returns the service's response RequestID for request.
  3824  func (s *ValidationException) RequestID() string {
  3825  	return s.RespMetadata.RequestID
  3826  }
  3827  
  3828  // A structure that contains information about a request parameter that caused
  3829  // an error.
  3830  type ValidationExceptionField struct {
  3831  	_ struct{} `type:"structure"`
  3832  
  3833  	// A message describing why this field couldn't be validated.
  3834  	//
  3835  	// Message is a required field
  3836  	Message *string `locationName:"message" type:"string" required:"true"`
  3837  
  3838  	// The name of the field that caused the validation error.
  3839  	//
  3840  	// Name is a required field
  3841  	Name *string `locationName:"name" type:"string" required:"true"`
  3842  }
  3843  
  3844  // String returns the string representation.
  3845  //
  3846  // API parameter values that are decorated as "sensitive" in the API will not
  3847  // be included in the string output. The member name will be present, but the
  3848  // value will be replaced with "sensitive".
  3849  func (s ValidationExceptionField) String() string {
  3850  	return awsutil.Prettify(s)
  3851  }
  3852  
  3853  // GoString returns the string representation.
  3854  //
  3855  // API parameter values that are decorated as "sensitive" in the API will not
  3856  // be included in the string output. The member name will be present, but the
  3857  // value will be replaced with "sensitive".
  3858  func (s ValidationExceptionField) GoString() string {
  3859  	return s.String()
  3860  }
  3861  
  3862  // SetMessage sets the Message field's value.
  3863  func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
  3864  	s.Message = &v
  3865  	return s
  3866  }
  3867  
  3868  // SetName sets the Name field's value.
  3869  func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
  3870  	s.Name = &v
  3871  	return s
  3872  }
  3873  
  3874  // A structure containing information about an Amazon Managed Grafana workspace
  3875  // in your account.
  3876  type WorkspaceDescription struct {
  3877  	_ struct{} `type:"structure"`
  3878  
  3879  	// Specifies whether the workspace can access Amazon Web Services resources
  3880  	// in this Amazon Web Services account only, or whether it can also access Amazon
  3881  	// Web Services resources in other accounts in the same organization. If this
  3882  	// is ORGANIZATION, the workspaceOrganizationalUnits parameter specifies which
  3883  	// organizational units the workspace can access.
  3884  	AccountAccessType *string `locationName:"accountAccessType" type:"string" enum:"AccountAccessType"`
  3885  
  3886  	// A structure that describes whether the workspace uses SAML, Amazon Web Services
  3887  	// SSO, or both methods for user authentication.
  3888  	//
  3889  	// Authentication is a required field
  3890  	Authentication *AuthenticationSummary `locationName:"authentication" type:"structure" required:"true"`
  3891  
  3892  	// The date that the workspace was created.
  3893  	//
  3894  	// Created is a required field
  3895  	Created *time.Time `locationName:"created" type:"timestamp" required:"true"`
  3896  
  3897  	// Specifies the Amazon Web Services data sources that have been configured
  3898  	// to have IAM roles and permissions created to allow Amazon Managed Grafana
  3899  	// to read data from these sources.
  3900  	//
  3901  	// DataSources is a required field
  3902  	DataSources []*string `locationName:"dataSources" type:"list" required:"true"`
  3903  
  3904  	// The user-defined description of the workspace.
  3905  	//
  3906  	// Description is a sensitive parameter and its value will be
  3907  	// replaced with "sensitive" in string returned by WorkspaceDescription's
  3908  	// String and GoString methods.
  3909  	Description *string `locationName:"description" type:"string" sensitive:"true"`
  3910  
  3911  	// The URL that users can use to access the Grafana console in the workspace.
  3912  	//
  3913  	// Endpoint is a required field
  3914  	Endpoint *string `locationName:"endpoint" min:"1" type:"string" required:"true"`
  3915  
  3916  	// Specifies whether this workspace has already fully used its free trial for
  3917  	// Grafana Enterprise.
  3918  	FreeTrialConsumed *bool `locationName:"freeTrialConsumed" type:"boolean"`
  3919  
  3920  	// If this workspace is currently in the free trial period for Grafana Enterprise,
  3921  	// this value specifies when that free trial ends.
  3922  	FreeTrialExpiration *time.Time `locationName:"freeTrialExpiration" type:"timestamp"`
  3923  
  3924  	// The version of Grafana supported in this workspace.
  3925  	//
  3926  	// GrafanaVersion is a required field
  3927  	GrafanaVersion *string `locationName:"grafanaVersion" min:"1" type:"string" required:"true"`
  3928  
  3929  	// The unique ID of this workspace.
  3930  	//
  3931  	// Id is a required field
  3932  	Id *string `locationName:"id" type:"string" required:"true"`
  3933  
  3934  	// If this workspace has a full Grafana Enterprise license, this specifies when
  3935  	// the license ends and will need to be renewed.
  3936  	LicenseExpiration *time.Time `locationName:"licenseExpiration" type:"timestamp"`
  3937  
  3938  	// Specifies whether this workspace has a full Grafana Enterprise license or
  3939  	// a free trial license.
  3940  	LicenseType *string `locationName:"licenseType" type:"string" enum:"LicenseType"`
  3941  
  3942  	// The most recent date that the workspace was modified.
  3943  	//
  3944  	// Modified is a required field
  3945  	Modified *time.Time `locationName:"modified" type:"timestamp" required:"true"`
  3946  
  3947  	// The name of the workspace.
  3948  	//
  3949  	// Name is a sensitive parameter and its value will be
  3950  	// replaced with "sensitive" in string returned by WorkspaceDescription's
  3951  	// String and GoString methods.
  3952  	Name *string `locationName:"name" type:"string" sensitive:"true"`
  3953  
  3954  	// The Amazon Web Services notification channels that Amazon Managed Grafana
  3955  	// can automatically create IAM roles and permissions for, to allow Amazon Managed
  3956  	// Grafana to use these channels.
  3957  	NotificationDestinations []*string `locationName:"notificationDestinations" type:"list"`
  3958  
  3959  	// The name of the IAM role that is used to access resources through Organizations.
  3960  	//
  3961  	// OrganizationRoleName is a sensitive parameter and its value will be
  3962  	// replaced with "sensitive" in string returned by WorkspaceDescription's
  3963  	// String and GoString methods.
  3964  	OrganizationRoleName *string `locationName:"organizationRoleName" min:"1" type:"string" sensitive:"true"`
  3965  
  3966  	// Specifies the organizational units that this workspace is allowed to use
  3967  	// data sources from, if this workspace is in an account that is part of an
  3968  	// organization.
  3969  	//
  3970  	// OrganizationalUnits is a sensitive parameter and its value will be
  3971  	// replaced with "sensitive" in string returned by WorkspaceDescription's
  3972  	// String and GoString methods.
  3973  	OrganizationalUnits []*string `locationName:"organizationalUnits" type:"list" sensitive:"true"`
  3974  
  3975  	// If this is Service Managed, Amazon Managed Grafana automatically creates
  3976  	// the IAM roles and provisions the permissions that the workspace needs to
  3977  	// use Amazon Web Services data sources and notification channels.
  3978  	//
  3979  	// If this is CUSTOMER_MANAGED, you manage those roles and permissions yourself.
  3980  	// If you are creating this workspace in a member account of an organization
  3981  	// and that account is not a delegated administrator account, and you want the
  3982  	// workspace to access data sources in other Amazon Web Services accounts in
  3983  	// the organization, you must choose CUSTOMER_MANAGED.
  3984  	//
  3985  	// For more information, see Amazon Managed Grafana permissions and policies
  3986  	// for Amazon Web Services data sources and notification channels (https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
  3987  	PermissionType *string `locationName:"permissionType" type:"string" enum:"PermissionType"`
  3988  
  3989  	// The name of the CloudFormation stack set that is used to generate IAM roles
  3990  	// to be used for this workspace.
  3991  	StackSetName *string `locationName:"stackSetName" type:"string"`
  3992  
  3993  	// The current status of the workspace.
  3994  	//
  3995  	// Status is a required field
  3996  	Status *string `locationName:"status" type:"string" required:"true" enum:"WorkspaceStatus"`
  3997  
  3998  	// The IAM role that grants permissions to the Amazon Web Services resources
  3999  	// that the workspace will view data from. This role must already exist.
  4000  	//
  4001  	// WorkspaceRoleArn is a sensitive parameter and its value will be
  4002  	// replaced with "sensitive" in string returned by WorkspaceDescription's
  4003  	// String and GoString methods.
  4004  	WorkspaceRoleArn *string `locationName:"workspaceRoleArn" min:"1" type:"string" sensitive:"true"`
  4005  }
  4006  
  4007  // String returns the string representation.
  4008  //
  4009  // API parameter values that are decorated as "sensitive" in the API will not
  4010  // be included in the string output. The member name will be present, but the
  4011  // value will be replaced with "sensitive".
  4012  func (s WorkspaceDescription) String() string {
  4013  	return awsutil.Prettify(s)
  4014  }
  4015  
  4016  // GoString returns the string representation.
  4017  //
  4018  // API parameter values that are decorated as "sensitive" in the API will not
  4019  // be included in the string output. The member name will be present, but the
  4020  // value will be replaced with "sensitive".
  4021  func (s WorkspaceDescription) GoString() string {
  4022  	return s.String()
  4023  }
  4024  
  4025  // SetAccountAccessType sets the AccountAccessType field's value.
  4026  func (s *WorkspaceDescription) SetAccountAccessType(v string) *WorkspaceDescription {
  4027  	s.AccountAccessType = &v
  4028  	return s
  4029  }
  4030  
  4031  // SetAuthentication sets the Authentication field's value.
  4032  func (s *WorkspaceDescription) SetAuthentication(v *AuthenticationSummary) *WorkspaceDescription {
  4033  	s.Authentication = v
  4034  	return s
  4035  }
  4036  
  4037  // SetCreated sets the Created field's value.
  4038  func (s *WorkspaceDescription) SetCreated(v time.Time) *WorkspaceDescription {
  4039  	s.Created = &v
  4040  	return s
  4041  }
  4042  
  4043  // SetDataSources sets the DataSources field's value.
  4044  func (s *WorkspaceDescription) SetDataSources(v []*string) *WorkspaceDescription {
  4045  	s.DataSources = v
  4046  	return s
  4047  }
  4048  
  4049  // SetDescription sets the Description field's value.
  4050  func (s *WorkspaceDescription) SetDescription(v string) *WorkspaceDescription {
  4051  	s.Description = &v
  4052  	return s
  4053  }
  4054  
  4055  // SetEndpoint sets the Endpoint field's value.
  4056  func (s *WorkspaceDescription) SetEndpoint(v string) *WorkspaceDescription {
  4057  	s.Endpoint = &v
  4058  	return s
  4059  }
  4060  
  4061  // SetFreeTrialConsumed sets the FreeTrialConsumed field's value.
  4062  func (s *WorkspaceDescription) SetFreeTrialConsumed(v bool) *WorkspaceDescription {
  4063  	s.FreeTrialConsumed = &v
  4064  	return s
  4065  }
  4066  
  4067  // SetFreeTrialExpiration sets the FreeTrialExpiration field's value.
  4068  func (s *WorkspaceDescription) SetFreeTrialExpiration(v time.Time) *WorkspaceDescription {
  4069  	s.FreeTrialExpiration = &v
  4070  	return s
  4071  }
  4072  
  4073  // SetGrafanaVersion sets the GrafanaVersion field's value.
  4074  func (s *WorkspaceDescription) SetGrafanaVersion(v string) *WorkspaceDescription {
  4075  	s.GrafanaVersion = &v
  4076  	return s
  4077  }
  4078  
  4079  // SetId sets the Id field's value.
  4080  func (s *WorkspaceDescription) SetId(v string) *WorkspaceDescription {
  4081  	s.Id = &v
  4082  	return s
  4083  }
  4084  
  4085  // SetLicenseExpiration sets the LicenseExpiration field's value.
  4086  func (s *WorkspaceDescription) SetLicenseExpiration(v time.Time) *WorkspaceDescription {
  4087  	s.LicenseExpiration = &v
  4088  	return s
  4089  }
  4090  
  4091  // SetLicenseType sets the LicenseType field's value.
  4092  func (s *WorkspaceDescription) SetLicenseType(v string) *WorkspaceDescription {
  4093  	s.LicenseType = &v
  4094  	return s
  4095  }
  4096  
  4097  // SetModified sets the Modified field's value.
  4098  func (s *WorkspaceDescription) SetModified(v time.Time) *WorkspaceDescription {
  4099  	s.Modified = &v
  4100  	return s
  4101  }
  4102  
  4103  // SetName sets the Name field's value.
  4104  func (s *WorkspaceDescription) SetName(v string) *WorkspaceDescription {
  4105  	s.Name = &v
  4106  	return s
  4107  }
  4108  
  4109  // SetNotificationDestinations sets the NotificationDestinations field's value.
  4110  func (s *WorkspaceDescription) SetNotificationDestinations(v []*string) *WorkspaceDescription {
  4111  	s.NotificationDestinations = v
  4112  	return s
  4113  }
  4114  
  4115  // SetOrganizationRoleName sets the OrganizationRoleName field's value.
  4116  func (s *WorkspaceDescription) SetOrganizationRoleName(v string) *WorkspaceDescription {
  4117  	s.OrganizationRoleName = &v
  4118  	return s
  4119  }
  4120  
  4121  // SetOrganizationalUnits sets the OrganizationalUnits field's value.
  4122  func (s *WorkspaceDescription) SetOrganizationalUnits(v []*string) *WorkspaceDescription {
  4123  	s.OrganizationalUnits = v
  4124  	return s
  4125  }
  4126  
  4127  // SetPermissionType sets the PermissionType field's value.
  4128  func (s *WorkspaceDescription) SetPermissionType(v string) *WorkspaceDescription {
  4129  	s.PermissionType = &v
  4130  	return s
  4131  }
  4132  
  4133  // SetStackSetName sets the StackSetName field's value.
  4134  func (s *WorkspaceDescription) SetStackSetName(v string) *WorkspaceDescription {
  4135  	s.StackSetName = &v
  4136  	return s
  4137  }
  4138  
  4139  // SetStatus sets the Status field's value.
  4140  func (s *WorkspaceDescription) SetStatus(v string) *WorkspaceDescription {
  4141  	s.Status = &v
  4142  	return s
  4143  }
  4144  
  4145  // SetWorkspaceRoleArn sets the WorkspaceRoleArn field's value.
  4146  func (s *WorkspaceDescription) SetWorkspaceRoleArn(v string) *WorkspaceDescription {
  4147  	s.WorkspaceRoleArn = &v
  4148  	return s
  4149  }
  4150  
  4151  // A structure that contains some information about one workspace in the account.
  4152  type WorkspaceSummary struct {
  4153  	_ struct{} `type:"structure"`
  4154  
  4155  	// A structure containing information about the authentication methods used
  4156  	// in the workspace.
  4157  	//
  4158  	// Authentication is a required field
  4159  	Authentication *AuthenticationSummary `locationName:"authentication" type:"structure" required:"true"`
  4160  
  4161  	// The date that the workspace was created.
  4162  	//
  4163  	// Created is a required field
  4164  	Created *time.Time `locationName:"created" type:"timestamp" required:"true"`
  4165  
  4166  	// The customer-entered description of the workspace.
  4167  	//
  4168  	// Description is a sensitive parameter and its value will be
  4169  	// replaced with "sensitive" in string returned by WorkspaceSummary's
  4170  	// String and GoString methods.
  4171  	Description *string `locationName:"description" type:"string" sensitive:"true"`
  4172  
  4173  	// The URL endpoint to use to access the Grafana console in the workspace.
  4174  	//
  4175  	// Endpoint is a required field
  4176  	Endpoint *string `locationName:"endpoint" min:"1" type:"string" required:"true"`
  4177  
  4178  	// The Grafana version that the workspace is running.
  4179  	//
  4180  	// GrafanaVersion is a required field
  4181  	GrafanaVersion *string `locationName:"grafanaVersion" min:"1" type:"string" required:"true"`
  4182  
  4183  	// The unique ID of the workspace.
  4184  	//
  4185  	// Id is a required field
  4186  	Id *string `locationName:"id" type:"string" required:"true"`
  4187  
  4188  	// The most recent date that the workspace was modified.
  4189  	//
  4190  	// Modified is a required field
  4191  	Modified *time.Time `locationName:"modified" type:"timestamp" required:"true"`
  4192  
  4193  	// The name of the workspace.
  4194  	//
  4195  	// Name is a sensitive parameter and its value will be
  4196  	// replaced with "sensitive" in string returned by WorkspaceSummary's
  4197  	// String and GoString methods.
  4198  	Name *string `locationName:"name" type:"string" sensitive:"true"`
  4199  
  4200  	// The Amazon Web Services notification channels that Amazon Managed Grafana
  4201  	// can automatically create IAM roles and permissions for, which allows Amazon
  4202  	// Managed Grafana to use these channels.
  4203  	NotificationDestinations []*string `locationName:"notificationDestinations" type:"list"`
  4204  
  4205  	// The current status of the workspace.
  4206  	//
  4207  	// Status is a required field
  4208  	Status *string `locationName:"status" type:"string" required:"true" enum:"WorkspaceStatus"`
  4209  }
  4210  
  4211  // String returns the string representation.
  4212  //
  4213  // API parameter values that are decorated as "sensitive" in the API will not
  4214  // be included in the string output. The member name will be present, but the
  4215  // value will be replaced with "sensitive".
  4216  func (s WorkspaceSummary) String() string {
  4217  	return awsutil.Prettify(s)
  4218  }
  4219  
  4220  // GoString returns the string representation.
  4221  //
  4222  // API parameter values that are decorated as "sensitive" in the API will not
  4223  // be included in the string output. The member name will be present, but the
  4224  // value will be replaced with "sensitive".
  4225  func (s WorkspaceSummary) GoString() string {
  4226  	return s.String()
  4227  }
  4228  
  4229  // SetAuthentication sets the Authentication field's value.
  4230  func (s *WorkspaceSummary) SetAuthentication(v *AuthenticationSummary) *WorkspaceSummary {
  4231  	s.Authentication = v
  4232  	return s
  4233  }
  4234  
  4235  // SetCreated sets the Created field's value.
  4236  func (s *WorkspaceSummary) SetCreated(v time.Time) *WorkspaceSummary {
  4237  	s.Created = &v
  4238  	return s
  4239  }
  4240  
  4241  // SetDescription sets the Description field's value.
  4242  func (s *WorkspaceSummary) SetDescription(v string) *WorkspaceSummary {
  4243  	s.Description = &v
  4244  	return s
  4245  }
  4246  
  4247  // SetEndpoint sets the Endpoint field's value.
  4248  func (s *WorkspaceSummary) SetEndpoint(v string) *WorkspaceSummary {
  4249  	s.Endpoint = &v
  4250  	return s
  4251  }
  4252  
  4253  // SetGrafanaVersion sets the GrafanaVersion field's value.
  4254  func (s *WorkspaceSummary) SetGrafanaVersion(v string) *WorkspaceSummary {
  4255  	s.GrafanaVersion = &v
  4256  	return s
  4257  }
  4258  
  4259  // SetId sets the Id field's value.
  4260  func (s *WorkspaceSummary) SetId(v string) *WorkspaceSummary {
  4261  	s.Id = &v
  4262  	return s
  4263  }
  4264  
  4265  // SetModified sets the Modified field's value.
  4266  func (s *WorkspaceSummary) SetModified(v time.Time) *WorkspaceSummary {
  4267  	s.Modified = &v
  4268  	return s
  4269  }
  4270  
  4271  // SetName sets the Name field's value.
  4272  func (s *WorkspaceSummary) SetName(v string) *WorkspaceSummary {
  4273  	s.Name = &v
  4274  	return s
  4275  }
  4276  
  4277  // SetNotificationDestinations sets the NotificationDestinations field's value.
  4278  func (s *WorkspaceSummary) SetNotificationDestinations(v []*string) *WorkspaceSummary {
  4279  	s.NotificationDestinations = v
  4280  	return s
  4281  }
  4282  
  4283  // SetStatus sets the Status field's value.
  4284  func (s *WorkspaceSummary) SetStatus(v string) *WorkspaceSummary {
  4285  	s.Status = &v
  4286  	return s
  4287  }
  4288  
  4289  const (
  4290  	// AccountAccessTypeCurrentAccount is a AccountAccessType enum value
  4291  	AccountAccessTypeCurrentAccount = "CURRENT_ACCOUNT"
  4292  
  4293  	// AccountAccessTypeOrganization is a AccountAccessType enum value
  4294  	AccountAccessTypeOrganization = "ORGANIZATION"
  4295  )
  4296  
  4297  // AccountAccessType_Values returns all elements of the AccountAccessType enum
  4298  func AccountAccessType_Values() []string {
  4299  	return []string{
  4300  		AccountAccessTypeCurrentAccount,
  4301  		AccountAccessTypeOrganization,
  4302  	}
  4303  }
  4304  
  4305  const (
  4306  	// AuthenticationProviderTypesAwsSso is a AuthenticationProviderTypes enum value
  4307  	AuthenticationProviderTypesAwsSso = "AWS_SSO"
  4308  
  4309  	// AuthenticationProviderTypesSaml is a AuthenticationProviderTypes enum value
  4310  	AuthenticationProviderTypesSaml = "SAML"
  4311  )
  4312  
  4313  // AuthenticationProviderTypes_Values returns all elements of the AuthenticationProviderTypes enum
  4314  func AuthenticationProviderTypes_Values() []string {
  4315  	return []string{
  4316  		AuthenticationProviderTypesAwsSso,
  4317  		AuthenticationProviderTypesSaml,
  4318  	}
  4319  }
  4320  
  4321  const (
  4322  	// DataSourceTypeAmazonOpensearchService is a DataSourceType enum value
  4323  	DataSourceTypeAmazonOpensearchService = "AMAZON_OPENSEARCH_SERVICE"
  4324  
  4325  	// DataSourceTypeCloudwatch is a DataSourceType enum value
  4326  	DataSourceTypeCloudwatch = "CLOUDWATCH"
  4327  
  4328  	// DataSourceTypePrometheus is a DataSourceType enum value
  4329  	DataSourceTypePrometheus = "PROMETHEUS"
  4330  
  4331  	// DataSourceTypeXray is a DataSourceType enum value
  4332  	DataSourceTypeXray = "XRAY"
  4333  
  4334  	// DataSourceTypeTimestream is a DataSourceType enum value
  4335  	DataSourceTypeTimestream = "TIMESTREAM"
  4336  
  4337  	// DataSourceTypeSitewise is a DataSourceType enum value
  4338  	DataSourceTypeSitewise = "SITEWISE"
  4339  )
  4340  
  4341  // DataSourceType_Values returns all elements of the DataSourceType enum
  4342  func DataSourceType_Values() []string {
  4343  	return []string{
  4344  		DataSourceTypeAmazonOpensearchService,
  4345  		DataSourceTypeCloudwatch,
  4346  		DataSourceTypePrometheus,
  4347  		DataSourceTypeXray,
  4348  		DataSourceTypeTimestream,
  4349  		DataSourceTypeSitewise,
  4350  	}
  4351  }
  4352  
  4353  const (
  4354  	// LicenseTypeEnterprise is a LicenseType enum value
  4355  	LicenseTypeEnterprise = "ENTERPRISE"
  4356  
  4357  	// LicenseTypeEnterpriseFreeTrial is a LicenseType enum value
  4358  	LicenseTypeEnterpriseFreeTrial = "ENTERPRISE_FREE_TRIAL"
  4359  )
  4360  
  4361  // LicenseType_Values returns all elements of the LicenseType enum
  4362  func LicenseType_Values() []string {
  4363  	return []string{
  4364  		LicenseTypeEnterprise,
  4365  		LicenseTypeEnterpriseFreeTrial,
  4366  	}
  4367  }
  4368  
  4369  const (
  4370  	// NotificationDestinationTypeSns is a NotificationDestinationType enum value
  4371  	NotificationDestinationTypeSns = "SNS"
  4372  )
  4373  
  4374  // NotificationDestinationType_Values returns all elements of the NotificationDestinationType enum
  4375  func NotificationDestinationType_Values() []string {
  4376  	return []string{
  4377  		NotificationDestinationTypeSns,
  4378  	}
  4379  }
  4380  
  4381  const (
  4382  	// PermissionTypeCustomerManaged is a PermissionType enum value
  4383  	PermissionTypeCustomerManaged = "CUSTOMER_MANAGED"
  4384  
  4385  	// PermissionTypeServiceManaged is a PermissionType enum value
  4386  	PermissionTypeServiceManaged = "SERVICE_MANAGED"
  4387  )
  4388  
  4389  // PermissionType_Values returns all elements of the PermissionType enum
  4390  func PermissionType_Values() []string {
  4391  	return []string{
  4392  		PermissionTypeCustomerManaged,
  4393  		PermissionTypeServiceManaged,
  4394  	}
  4395  }
  4396  
  4397  const (
  4398  	// RoleAdmin is a Role enum value
  4399  	RoleAdmin = "ADMIN"
  4400  
  4401  	// RoleEditor is a Role enum value
  4402  	RoleEditor = "EDITOR"
  4403  )
  4404  
  4405  // Role_Values returns all elements of the Role enum
  4406  func Role_Values() []string {
  4407  	return []string{
  4408  		RoleAdmin,
  4409  		RoleEditor,
  4410  	}
  4411  }
  4412  
  4413  const (
  4414  	// SamlConfigurationStatusConfigured is a SamlConfigurationStatus enum value
  4415  	SamlConfigurationStatusConfigured = "CONFIGURED"
  4416  
  4417  	// SamlConfigurationStatusNotConfigured is a SamlConfigurationStatus enum value
  4418  	SamlConfigurationStatusNotConfigured = "NOT_CONFIGURED"
  4419  )
  4420  
  4421  // SamlConfigurationStatus_Values returns all elements of the SamlConfigurationStatus enum
  4422  func SamlConfigurationStatus_Values() []string {
  4423  	return []string{
  4424  		SamlConfigurationStatusConfigured,
  4425  		SamlConfigurationStatusNotConfigured,
  4426  	}
  4427  }
  4428  
  4429  const (
  4430  	// UpdateActionAdd is a UpdateAction enum value
  4431  	UpdateActionAdd = "ADD"
  4432  
  4433  	// UpdateActionRevoke is a UpdateAction enum value
  4434  	UpdateActionRevoke = "REVOKE"
  4435  )
  4436  
  4437  // UpdateAction_Values returns all elements of the UpdateAction enum
  4438  func UpdateAction_Values() []string {
  4439  	return []string{
  4440  		UpdateActionAdd,
  4441  		UpdateActionRevoke,
  4442  	}
  4443  }
  4444  
  4445  const (
  4446  	// UserTypeSsoUser is a UserType enum value
  4447  	UserTypeSsoUser = "SSO_USER"
  4448  
  4449  	// UserTypeSsoGroup is a UserType enum value
  4450  	UserTypeSsoGroup = "SSO_GROUP"
  4451  )
  4452  
  4453  // UserType_Values returns all elements of the UserType enum
  4454  func UserType_Values() []string {
  4455  	return []string{
  4456  		UserTypeSsoUser,
  4457  		UserTypeSsoGroup,
  4458  	}
  4459  }
  4460  
  4461  const (
  4462  	// ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value
  4463  	ValidationExceptionReasonUnknownOperation = "UNKNOWN_OPERATION"
  4464  
  4465  	// ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value
  4466  	ValidationExceptionReasonCannotParse = "CANNOT_PARSE"
  4467  
  4468  	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
  4469  	ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED"
  4470  
  4471  	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
  4472  	ValidationExceptionReasonOther = "OTHER"
  4473  )
  4474  
  4475  // ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
  4476  func ValidationExceptionReason_Values() []string {
  4477  	return []string{
  4478  		ValidationExceptionReasonUnknownOperation,
  4479  		ValidationExceptionReasonCannotParse,
  4480  		ValidationExceptionReasonFieldValidationFailed,
  4481  		ValidationExceptionReasonOther,
  4482  	}
  4483  }
  4484  
  4485  const (
  4486  	// WorkspaceStatusActive is a WorkspaceStatus enum value
  4487  	WorkspaceStatusActive = "ACTIVE"
  4488  
  4489  	// WorkspaceStatusCreating is a WorkspaceStatus enum value
  4490  	WorkspaceStatusCreating = "CREATING"
  4491  
  4492  	// WorkspaceStatusDeleting is a WorkspaceStatus enum value
  4493  	WorkspaceStatusDeleting = "DELETING"
  4494  
  4495  	// WorkspaceStatusFailed is a WorkspaceStatus enum value
  4496  	WorkspaceStatusFailed = "FAILED"
  4497  
  4498  	// WorkspaceStatusUpdating is a WorkspaceStatus enum value
  4499  	WorkspaceStatusUpdating = "UPDATING"
  4500  
  4501  	// WorkspaceStatusUpgrading is a WorkspaceStatus enum value
  4502  	WorkspaceStatusUpgrading = "UPGRADING"
  4503  
  4504  	// WorkspaceStatusDeletionFailed is a WorkspaceStatus enum value
  4505  	WorkspaceStatusDeletionFailed = "DELETION_FAILED"
  4506  
  4507  	// WorkspaceStatusCreationFailed is a WorkspaceStatus enum value
  4508  	WorkspaceStatusCreationFailed = "CREATION_FAILED"
  4509  
  4510  	// WorkspaceStatusUpdateFailed is a WorkspaceStatus enum value
  4511  	WorkspaceStatusUpdateFailed = "UPDATE_FAILED"
  4512  
  4513  	// WorkspaceStatusUpgradeFailed is a WorkspaceStatus enum value
  4514  	WorkspaceStatusUpgradeFailed = "UPGRADE_FAILED"
  4515  
  4516  	// WorkspaceStatusLicenseRemovalFailed is a WorkspaceStatus enum value
  4517  	WorkspaceStatusLicenseRemovalFailed = "LICENSE_REMOVAL_FAILED"
  4518  )
  4519  
  4520  // WorkspaceStatus_Values returns all elements of the WorkspaceStatus enum
  4521  func WorkspaceStatus_Values() []string {
  4522  	return []string{
  4523  		WorkspaceStatusActive,
  4524  		WorkspaceStatusCreating,
  4525  		WorkspaceStatusDeleting,
  4526  		WorkspaceStatusFailed,
  4527  		WorkspaceStatusUpdating,
  4528  		WorkspaceStatusUpgrading,
  4529  		WorkspaceStatusDeletionFailed,
  4530  		WorkspaceStatusCreationFailed,
  4531  		WorkspaceStatusUpdateFailed,
  4532  		WorkspaceStatusUpgradeFailed,
  4533  		WorkspaceStatusLicenseRemovalFailed,
  4534  	}
  4535  }