@@ -15,6 +15,8 @@ import { ResourceModel } from './models';
1515// Use this logger to forward log messages to CloudWatch Logs.
1616const LOGGER = console ;
1717
18+ interface CallbackContext extends Record < string , any > { }
19+
1820class Resource extends BaseResource < ResourceModel > {
1921
2022 /**
@@ -23,19 +25,17 @@ class Resource extends BaseResource<ResourceModel> {
2325 *
2426 * @param session Current AWS session passed through from caller
2527 * @param request The request object for the provisioning request passed to the implementor
26- * @param callbackContext Custom context object to enable handlers to process re-invocation
28+ * @param callbackContext Custom context object to allow the passing through of additional
29+ * state or metadata between subsequent retries
2730 */
2831 @handlerEvent ( Action . Create )
2932 public async create (
3033 session : Optional < SessionProxy > ,
3134 request : ResourceHandlerRequest < ResourceModel > ,
32- callbackContext : Map < string , any > ,
35+ callbackContext : CallbackContext ,
3336 ) : Promise < ProgressEvent > {
3437 const model : ResourceModel = request . desiredResourceState ;
35- const progress : ProgressEvent < ResourceModel > = ProgressEvent . builder ( )
36- . status ( OperationStatus . InProgress )
37- . resourceModel ( model )
38- . build ( ) as ProgressEvent < ResourceModel > ;
38+ const progress = ProgressEvent . progress < ProgressEvent < ResourceModel , CallbackContext > > ( model ) ;
3939 // TODO: put code here
4040
4141 // Example:
@@ -61,19 +61,17 @@ class Resource extends BaseResource<ResourceModel> {
6161 *
6262 * @param session Current AWS session passed through from caller
6363 * @param request The request object for the provisioning request passed to the implementor
64- * @param callbackContext Custom context object to enable handlers to process re-invocation
64+ * @param callbackContext Custom context object to allow the passing through of additional
65+ * state or metadata between subsequent retries
6566 */
6667 @handlerEvent ( Action . Update )
6768 public async update (
6869 session : Optional < SessionProxy > ,
6970 request : ResourceHandlerRequest < ResourceModel > ,
70- callbackContext : Map < string , any > ,
71+ callbackContext : CallbackContext ,
7172 ) : Promise < ProgressEvent > {
7273 const model : ResourceModel = request . desiredResourceState ;
73- const progress : ProgressEvent < ResourceModel > = ProgressEvent . builder ( )
74- . status ( OperationStatus . InProgress )
75- . resourceModel ( model )
76- . build ( ) as ProgressEvent < ResourceModel > ;
74+ const progress = ProgressEvent . progress < ProgressEvent < ResourceModel , CallbackContext > > ( model ) ;
7775 // TODO: put code here
7876 progress . status = OperationStatus . Success ;
7977 return progress ;
@@ -86,18 +84,17 @@ class Resource extends BaseResource<ResourceModel> {
8684 *
8785 * @param session Current AWS session passed through from caller
8886 * @param request The request object for the provisioning request passed to the implementor
89- * @param callbackContext Custom context object to enable handlers to process re-invocation
87+ * @param callbackContext Custom context object to allow the passing through of additional
88+ * state or metadata between subsequent retries
9089 */
9190 @handlerEvent ( Action . Delete )
9291 public async delete (
9392 session : Optional < SessionProxy > ,
9493 request : ResourceHandlerRequest < ResourceModel > ,
95- callbackContext : Map < string , any > ,
94+ callbackContext : CallbackContext ,
9695 ) : Promise < ProgressEvent > {
9796 const model : ResourceModel = request . desiredResourceState ;
98- const progress : ProgressEvent < ResourceModel > = ProgressEvent . builder ( )
99- . status ( OperationStatus . InProgress )
100- . build ( ) as ProgressEvent < ResourceModel > ;
97+ const progress = ProgressEvent . progress < ProgressEvent < ResourceModel , CallbackContext > > ( ) ;
10198 // TODO: put code here
10299 progress . status = OperationStatus . Success ;
103100 return progress ;
@@ -109,20 +106,18 @@ class Resource extends BaseResource<ResourceModel> {
109106 *
110107 * @param session Current AWS session passed through from caller
111108 * @param request The request object for the provisioning request passed to the implementor
112- * @param callbackContext Custom context object to enable handlers to process re-invocation
109+ * @param callbackContext Custom context object to allow the passing through of additional
110+ * state or metadata between subsequent retries
113111 */
114112 @handlerEvent ( Action . Read )
115113 public async read (
116114 session : Optional < SessionProxy > ,
117115 request : ResourceHandlerRequest < ResourceModel > ,
118- callbackContext : Map < string , any > ,
116+ callbackContext : CallbackContext ,
119117 ) : Promise < ProgressEvent > {
120118 const model : ResourceModel = request . desiredResourceState ;
121119 // TODO: put code here
122- const progress : ProgressEvent < ResourceModel > = ProgressEvent . builder ( )
123- . status ( OperationStatus . Success )
124- . resourceModel ( model )
125- . build ( ) as ProgressEvent < ResourceModel > ;
120+ const progress = ProgressEvent . success < ProgressEvent < ResourceModel , CallbackContext > > ( model ) ;
126121 return progress ;
127122 }
128123
@@ -132,19 +127,21 @@ class Resource extends BaseResource<ResourceModel> {
132127 *
133128 * @param session Current AWS session passed through from caller
134129 * @param request The request object for the provisioning request passed to the implementor
135- * @param callbackContext Custom context object to enable handlers to process re-invocation
130+ * @param callbackContext Custom context object to allow the passing through of additional
131+ * state or metadata between subsequent retries
136132 */
137133 @handlerEvent ( Action . List )
138134 public async list (
139135 session : Optional < SessionProxy > ,
140136 request : ResourceHandlerRequest < ResourceModel > ,
141- callbackContext : Map < string , any > ,
137+ callbackContext : CallbackContext ,
142138 ) : Promise < ProgressEvent > {
139+ const model : ResourceModel = request . desiredResourceState ;
143140 // TODO: put code here
144- const progress : ProgressEvent < ResourceModel > = ProgressEvent . builder ( )
141+ const progress = ProgressEvent . builder < ProgressEvent < ResourceModel , CallbackContext > > ( )
145142 . status ( OperationStatus . Success )
146- . resourceModels ( [ ] )
147- . build ( ) as ProgressEvent < ResourceModel > ;
143+ . resourceModels ( [ model ] )
144+ . build ( ) ;
148145 return progress ;
149146 }
150147}
0 commit comments