1package api 2 3type persistAPIType struct { 4 output bool 5 input bool 6} 7 8type persistAPITypes map[string]map[string]persistAPIType 9 10func (ts persistAPITypes) Lookup(serviceName, opName string) persistAPIType { 11 service, ok := shamelist[serviceName] 12 if !ok { 13 return persistAPIType{} 14 } 15 16 return service[opName] 17} 18 19func (ts persistAPITypes) Input(serviceName, opName string) bool { 20 return ts.Lookup(serviceName, opName).input 21} 22 23func (ts persistAPITypes) Output(serviceName, opName string) bool { 24 return ts.Lookup(serviceName, opName).output 25} 26 27// shamelist is used to not rename certain operation's input and output shapes. 28// We need to maintain backwards compatibility with pre-existing services. Since 29// not generating unique input/output shapes is not desired, we will generate 30// unique input/output shapes for new operations. 31var shamelist = persistAPITypes{ 32 "APIGateway": { 33 "CreateApiKey": { 34 output: true, 35 }, 36 "CreateAuthorizer": { 37 output: true, 38 }, 39 "CreateBasePathMapping": { 40 output: true, 41 }, 42 "CreateDeployment": { 43 output: true, 44 }, 45 "CreateDocumentationPart": { 46 output: true, 47 }, 48 "CreateDocumentationVersion": { 49 output: true, 50 }, 51 "CreateDomainName": { 52 output: true, 53 }, 54 "CreateModel": { 55 output: true, 56 }, 57 "CreateResource": { 58 output: true, 59 }, 60 "CreateRestApi": { 61 output: true, 62 }, 63 "CreateStage": { 64 output: true, 65 }, 66 "CreateUsagePlan": { 67 output: true, 68 }, 69 "CreateUsagePlanKey": { 70 output: true, 71 }, 72 "GenerateClientCertificate": { 73 output: true, 74 }, 75 "GetAccount": { 76 output: true, 77 }, 78 "GetApiKey": { 79 output: true, 80 }, 81 "GetAuthorizer": { 82 output: true, 83 }, 84 "GetBasePathMapping": { 85 output: true, 86 }, 87 "GetClientCertificate": { 88 output: true, 89 }, 90 "GetDeployment": { 91 output: true, 92 }, 93 "GetDocumentationPart": { 94 output: true, 95 }, 96 "GetDocumentationVersion": { 97 output: true, 98 }, 99 "GetDomainName": { 100 output: true, 101 }, 102 "GetIntegration": { 103 output: true, 104 }, 105 "GetIntegrationResponse": { 106 output: true, 107 }, 108 "GetMethod": { 109 output: true, 110 }, 111 "GetMethodResponse": { 112 output: true, 113 }, 114 "GetModel": { 115 output: true, 116 }, 117 "GetResource": { 118 output: true, 119 }, 120 "GetRestApi": { 121 output: true, 122 }, 123 "GetSdkType": { 124 output: true, 125 }, 126 "GetStage": { 127 output: true, 128 }, 129 "GetUsage": { 130 output: true, 131 }, 132 "GetUsagePlan": { 133 output: true, 134 }, 135 "GetUsagePlanKey": { 136 output: true, 137 }, 138 "ImportRestApi": { 139 output: true, 140 }, 141 "PutIntegration": { 142 output: true, 143 }, 144 "PutIntegrationResponse": { 145 output: true, 146 }, 147 "PutMethod": { 148 output: true, 149 }, 150 "PutMethodResponse": { 151 output: true, 152 }, 153 "PutRestApi": { 154 output: true, 155 }, 156 "UpdateAccount": { 157 output: true, 158 }, 159 "UpdateApiKey": { 160 output: true, 161 }, 162 "UpdateAuthorizer": { 163 output: true, 164 }, 165 "UpdateBasePathMapping": { 166 output: true, 167 }, 168 "UpdateClientCertificate": { 169 output: true, 170 }, 171 "UpdateDeployment": { 172 output: true, 173 }, 174 "UpdateDocumentationPart": { 175 output: true, 176 }, 177 "UpdateDocumentationVersion": { 178 output: true, 179 }, 180 "UpdateDomainName": { 181 output: true, 182 }, 183 "UpdateIntegration": { 184 output: true, 185 }, 186 "UpdateIntegrationResponse": { 187 output: true, 188 }, 189 "UpdateMethod": { 190 output: true, 191 }, 192 "UpdateMethodResponse": { 193 output: true, 194 }, 195 "UpdateModel": { 196 output: true, 197 }, 198 "UpdateResource": { 199 output: true, 200 }, 201 "UpdateRestApi": { 202 output: true, 203 }, 204 "UpdateStage": { 205 output: true, 206 }, 207 "UpdateUsage": { 208 output: true, 209 }, 210 "UpdateUsagePlan": { 211 output: true, 212 }, 213 }, 214 "AutoScaling": { 215 "ResumeProcesses": { 216 input: true, 217 }, 218 "SuspendProcesses": { 219 input: true, 220 }, 221 }, 222 "CognitoIdentity": { 223 "CreateIdentityPool": { 224 output: true, 225 }, 226 "DescribeIdentity": { 227 output: true, 228 }, 229 "DescribeIdentityPool": { 230 output: true, 231 }, 232 "UpdateIdentityPool": { 233 input: true, 234 output: true, 235 }, 236 }, 237 "DirectConnect": { 238 "AllocateConnectionOnInterconnect": { 239 output: true, 240 }, 241 "AllocateHostedConnection": { 242 output: true, 243 }, 244 "AllocatePrivateVirtualInterface": { 245 output: true, 246 }, 247 "AllocatePublicVirtualInterface": { 248 output: true, 249 }, 250 "AssociateConnectionWithLag": { 251 output: true, 252 }, 253 "AssociateHostedConnection": { 254 output: true, 255 }, 256 "AssociateVirtualInterface": { 257 output: true, 258 }, 259 "CreateConnection": { 260 output: true, 261 }, 262 "CreateInterconnect": { 263 output: true, 264 }, 265 "CreateLag": { 266 output: true, 267 }, 268 "CreatePrivateVirtualInterface": { 269 output: true, 270 }, 271 "CreatePublicVirtualInterface": { 272 output: true, 273 }, 274 "DeleteConnection": { 275 output: true, 276 }, 277 "DeleteLag": { 278 output: true, 279 }, 280 "DescribeConnections": { 281 output: true, 282 }, 283 "DescribeConnectionsOnInterconnect": { 284 output: true, 285 }, 286 "DescribeHostedConnections": { 287 output: true, 288 }, 289 "DescribeLoa": { 290 output: true, 291 }, 292 "DisassociateConnectionFromLag": { 293 output: true, 294 }, 295 "UpdateLag": { 296 output: true, 297 }, 298 }, 299 "EC2": { 300 "AttachVolume": { 301 output: true, 302 }, 303 "CreateSnapshot": { 304 output: true, 305 }, 306 "CreateVolume": { 307 output: true, 308 }, 309 "DetachVolume": { 310 output: true, 311 }, 312 "RunInstances": { 313 output: true, 314 }, 315 }, 316 "EFS": { 317 "CreateFileSystem": { 318 output: true, 319 }, 320 "CreateMountTarget": { 321 output: true, 322 }, 323 }, 324 "ElastiCache": { 325 "AddTagsToResource": { 326 output: true, 327 }, 328 "ListTagsForResource": { 329 output: true, 330 }, 331 "ModifyCacheParameterGroup": { 332 output: true, 333 }, 334 "RemoveTagsFromResource": { 335 output: true, 336 }, 337 "ResetCacheParameterGroup": { 338 output: true, 339 }, 340 }, 341 "ElasticBeanstalk": { 342 "ComposeEnvironments": { 343 output: true, 344 }, 345 "CreateApplication": { 346 output: true, 347 }, 348 "CreateApplicationVersion": { 349 output: true, 350 }, 351 "CreateConfigurationTemplate": { 352 output: true, 353 }, 354 "CreateEnvironment": { 355 output: true, 356 }, 357 "DescribeEnvironments": { 358 output: true, 359 }, 360 "TerminateEnvironment": { 361 output: true, 362 }, 363 "UpdateApplication": { 364 output: true, 365 }, 366 "UpdateApplicationVersion": { 367 output: true, 368 }, 369 "UpdateConfigurationTemplate": { 370 output: true, 371 }, 372 "UpdateEnvironment": { 373 output: true, 374 }, 375 }, 376 "ElasticTranscoder": { 377 "CreateJob": { 378 output: true, 379 }, 380 }, 381 "Glacier": { 382 "DescribeJob": { 383 output: true, 384 }, 385 "UploadArchive": { 386 output: true, 387 }, 388 "CompleteMultipartUpload": { 389 output: true, 390 }, 391 }, 392 "IAM": { 393 "GetContextKeysForCustomPolicy": { 394 output: true, 395 }, 396 "GetContextKeysForPrincipalPolicy": { 397 output: true, 398 }, 399 "SimulateCustomPolicy": { 400 output: true, 401 }, 402 "SimulatePrincipalPolicy": { 403 output: true, 404 }, 405 }, 406 "Kinesis": { 407 "DisableEnhancedMonitoring": { 408 output: true, 409 }, 410 "EnableEnhancedMonitoring": { 411 output: true, 412 }, 413 }, 414 "KMS": { 415 "ListGrants": { 416 output: true, 417 }, 418 "ListRetirableGrants": { 419 output: true, 420 }, 421 }, 422 "Lambda": { 423 "CreateAlias": { 424 output: true, 425 }, 426 "CreateEventSourceMapping": { 427 output: true, 428 }, 429 "CreateFunction": { 430 output: true, 431 }, 432 "DeleteEventSourceMapping": { 433 output: true, 434 }, 435 "GetAlias": { 436 output: true, 437 }, 438 "GetEventSourceMapping": { 439 output: true, 440 }, 441 "GetFunctionConfiguration": { 442 output: true, 443 }, 444 "PublishVersion": { 445 output: true, 446 }, 447 "UpdateAlias": { 448 output: true, 449 }, 450 "UpdateEventSourceMapping": { 451 output: true, 452 }, 453 "UpdateFunctionCode": { 454 output: true, 455 }, 456 "UpdateFunctionConfiguration": { 457 output: true, 458 }, 459 }, 460 "MQ": { 461 "CreateBroker": { 462 input: true, 463 output: true, 464 }, 465 "CreateConfiguration": { 466 input: true, 467 output: true, 468 }, 469 "CreateUser": { 470 input: true, 471 }, 472 "DeleteBroker": { 473 output: true, 474 }, 475 "DescribeBroker": { 476 output: true, 477 }, 478 "DescribeUser": { 479 output: true, 480 }, 481 "DescribeConfigurationRevision": { 482 output: true, 483 }, 484 "ListBrokers": { 485 output: true, 486 }, 487 "ListConfigurations": { 488 output: true, 489 }, 490 "ListConfigurationRevisions": { 491 output: true, 492 }, 493 "ListUsers": { 494 output: true, 495 }, 496 "UpdateBroker": { 497 input: true, 498 output: true, 499 }, 500 "UpdateConfiguration": { 501 input: true, 502 output: true, 503 }, 504 "UpdateUser": { 505 input: true, 506 }, 507 }, 508 "RDS": { 509 "ModifyDBClusterParameterGroup": { 510 output: true, 511 }, 512 "ModifyDBParameterGroup": { 513 output: true, 514 }, 515 "ResetDBClusterParameterGroup": { 516 output: true, 517 }, 518 "ResetDBParameterGroup": { 519 output: true, 520 }, 521 }, 522 "Redshift": { 523 "DescribeLoggingStatus": { 524 output: true, 525 }, 526 "DisableLogging": { 527 output: true, 528 }, 529 "EnableLogging": { 530 output: true, 531 }, 532 "ModifyClusterParameterGroup": { 533 output: true, 534 }, 535 "ResetClusterParameterGroup": { 536 output: true, 537 }, 538 }, 539 "S3": { 540 "GetBucketNotification": { 541 input: true, 542 output: true, 543 }, 544 "GetBucketNotificationConfiguration": { 545 input: true, 546 output: true, 547 }, 548 }, 549 "ServerlessApplicationRepository": { 550 "CreateApplication": { 551 input: true, 552 }, 553 "CreateApplicationVersion": { 554 input: true, 555 }, 556 "CreateCloudFormationChangeSet": { 557 input: true, 558 }, 559 "UpdateApplication": { 560 input: true, 561 }, 562 }, 563 "SWF": { 564 "CountClosedWorkflowExecutions": { 565 output: true, 566 }, 567 "CountOpenWorkflowExecutions": { 568 output: true, 569 }, 570 "CountPendingActivityTasks": { 571 output: true, 572 }, 573 "CountPendingDecisionTasks": { 574 output: true, 575 }, 576 "ListClosedWorkflowExecutions": { 577 output: true, 578 }, 579 "ListOpenWorkflowExecutions": { 580 output: true, 581 }, 582 }, 583} 584