Repository: cloud-custodian/cloud-custodian

Issue:
ASG suspend action does not suspend all processes
### Describe the bug

The `suspend` action is missing the `InstanceRefresh` process.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types

https://github.com/cloud-custodian/cloud-custodian/blob/main/c7n/resources/asg.py#L1490-L1498

### What did you expect to happen?

All processes suspended

### Cloud Provider

Amazon Web Services (AWS)

### Cloud Custodian version and dependency information

```shell
Custodian:   0.9.32
Python:      3.11.0 (v3.11.0:deaf509e8f, Oct 24 2022, 14:43:23) [Clang 13.0.0 (clang-1300.0.29.30)]
Platform:    posix.uname_result(sysname='Darwin', nodename='REDACTED', release='23.1.0', version='Darwin Kernel Version 23.1.0: Mon Oct  9 21:27:24 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6000', machine='arm64')
Using venv:  True
Docker: False
Installed: 

PyJWT==2.8.0
PyYAML==6.0.1
adal==1.2.7
appdirs==1.4.4
applicationinsights==0.11.10
apscheduler==3.10.4
argcomplete==3.1.2
attrs==23.1.0
azure-common==1.1.28
azure-core==1.29.5
azure-cosmos==3.2.0
azure-cosmosdb-nspkg==2.0.2
azure-cosmosdb-table==1.0.6
azure-functions==1.17.0
azure-graphrbac==0.61.1
azure-identity==1.14.1
azure-keyvault==4.2.0
azure-keyvault-certificates==4.7.0
azure-keyvault-keys==4.8.0
azure-keyvault-secrets==4.7.0
azure-mgmt-advisor==9.0.0
azure-mgmt-apimanagement==1.0.0
azure-mgmt-appconfiguration==0.7.0
azure-mgmt-applicationinsights==1.0.0
azure-mgmt-appplatform==8.0.0
azure-mgmt-authorization==1.0.0
azure-mgmt-automation==0.1.1
azure-mgmt-batch==15.0.0
azure-mgmt-cdn==12.0.0
azure-mgmt-cognitiveservices==11.0.0
azure-mgmt-compute==19.0.0
azure-mgmt-containerinstance==7.0.0
azure-mgmt-containerregistry==8.0.0b1
azure-mgmt-containerservice==15.1.0
azure-mgmt-core==1.4.0
azure-mgmt-cosmosdb==6.4.0
azure-mgmt-costmanagement==1.0.0
azure-mgmt-databricks==1.0.0b1
azure-mgmt-datafactory==1.1.0
azure-mgmt-datalake-analytics==0.5.0
azure-mgmt-datalake-nspkg==3.0.1
azure-mgmt-datalake-store==0.5.0
azure-mgmt-desktopvirtualization==1.1.0
azure-mgmt-dns==8.0.0b1
azure-mgmt-eventgrid==8.0.0
azure-mgmt-eventhub==8.0.0
azure-mgmt-frontdoor==1.1.0
azure-mgmt-hdinsight==7.0.0
azure-mgmt-iothub==1.0.0
azure-mgmt-keyvault==8.0.0
azure-mgmt-kusto==2.2.0
azure-mgmt-logic==9.0.0
azure-mgmt-machinelearningservices==1.0.0
azure-mgmt-managementgroups==1.0.0b1
azure-mgmt-monitor==2.0.0
azure-mgmt-msi==1.0.0
azure-mgmt-network==17.1.0
azure-mgmt-nspkg==3.0.2
azure-mgmt-policyinsights==1.0.0
azure-mgmt-rdbms==8.1.0
azure-mgmt-recoveryservices==2.5.0
azure-mgmt-redhatopenshift==1.4.0
azure-mgmt-redis==12.0.0
azure-mgmt-resource==16.1.0
azure-mgmt-resourcegraph==7.0.0
azure-mgmt-search==8.0.0
azure-mgmt-security==1.0.0
azure-mgmt-servicebus==8.2.0
azure-mgmt-servicefabric==1.0.0
azure-mgmt-signalr==0.4.0
azure-mgmt-sql==1.0.0
azure-mgmt-storage==17.1.0
azure-mgmt-subscription==1.0.0
azure-mgmt-trafficmanager==0.51.0
azure-mgmt-web==2.0.0
azure-nspkg==3.0.2
azure-storage-blob==12.18.3
azure-storage-common==2.1.0
azure-storage-file==2.1.0
azure-storage-file-share==12.14.2
azure-storage-queue==12.7.3
boto3==1.28.71
botocore==1.31.71
c7n==0.9.32
cachetools==5.3.2
certifi==2023.7.22
cffi==1.16.0
charset-normalizer==3.3.1
click==8.1.7
colorama==0.4.6
cryptography==41.0.5
decorator==5.1.1
distlib==0.3.7
docutils==0.18.1
dogpile.cache==1.2.2
google-api-core==2.12.0
google-api-python-client==2.105.0
google-auth==2.23.3
google-auth-httplib2==0.1.1
google-cloud-appengine-logging==1.3.2
google-cloud-audit-log==0.2.5
google-cloud-core==2.3.3
google-cloud-logging==3.8.0
google-cloud-monitoring==2.16.0
google-cloud-storage==2.12.0
google-crc32c==1.5.0
google-resumable-media==2.6.0
googleapis-common-protos==1.61.0
grpc-google-iam-v1==0.12.6
grpcio==1.59.0
httplib2==0.22.0
idna==3.4
importlib-metadata==5.2.0
iso8601==2.1.0
isodate==0.6.1
jmespath==1.0.1
jsonpatch==1.33
jsonpointer==2.4
jsonschema==4.19.1
jsonschema-specifications==2023.7.1
keystoneauth1==5.3.0
kubernetes==28.1.0
mock==4.0.3
msal==1.24.1
msal-extensions==1.0.0
msrest==0.7.1
msrestazure==0.6.4
munch==4.0.0
netaddr==0.7.20
netifaces==0.11.0
oauthlib==3.2.2
openstacksdk==0.52.0
os-service-types==1.7.0
pbr==5.11.1
portalocker==2.8.2
proto-plus==1.22.3
protobuf==4.24.4
pyasn1==0.5.0
pyasn1-modules==0.3.0
pycparser==2.21
pyparsing==3.1.1
pyrate-limiter==2.10.0
python-dateutil==2.8.2
pytz==2023.3.post1
pyyaml==6.0.1
referencing==0.30.2
requests==2.31.0
requests-oauthlib==1.3.1
requestsexceptions==1.4.0
retrying==1.3.4
rpds-py==0.10.6
rsa==4.9
s3transfer==0.7.0
six==1.16.0
stevedore==5.1.0
tabulate==0.9.0
typing-extensions==4.8.0
tzlocal==5.2
uritemplate==4.1.1
urllib3==1.26.18
websocket-client==1.6.4
zipp==3.17.0
```


### Policy

```shell
# some elements removed
  - name: aws-asg-schedule-stop
    resource: aws.asg
    description: |
      Suspends ASG based on the c7n-schedule tag
    mode:
      type: periodic
      schedule: rate(15 minutes)
      role: arn:aws:iam::{account_id}:role/cloud-custodian
    filters:
      - type: offhour
        tag: c7n-schedule
        default_tz: utc
        offhour: 1
    actions:
      - type: suspend
```


### Relevant log/traceback output

```shell
N/A
```


### Extra information or context

N/A


Discussion:
I'll work on this, I can't assign it to myself. 

Resolving patch:
diff --git a/c7n/resources/asg.py b/c7n/resources/asg.py
--- a/c7n/resources/asg.py
+++ b/c7n/resources/asg.py
@@ -1495,7 +1495,8 @@ class Suspend(Action):
         "AZRebalance",
         "AlarmNotification",
         "ScheduledActions",
-        "AddToLoadBalancer"]
+        "AddToLoadBalancer",
+        "InstanceRefresh"]
 
     schema = type_schema(
         'suspend',


Test patch: