@@ -25,7 +25,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
25
25
/** This is an auto generated class representing the customClaim type in your schema. */
26
26
@SuppressWarnings(\\ "all\\ ")
27
27
@ModelConfig(pluralName = \\ "customClaims\\ ", authRules = {
28
- @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" user_id\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
28
+ @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" user_id\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
29
29
} )
30
30
public final class customClaim implements Model {
31
31
public static final QueryField ID = field (\\" customClaim\\ " , \\" id\\ " );
@@ -241,7 +241,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
241
241
/** This is an auto generated class representing the customClaim type in your schema. */
242
242
@SuppressWarnings(\\ "all\\ ")
243
243
@ModelConfig(pluralName = \\ "customClaims\\ ", authRules = {
244
- @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" user_groups\\ " , groups = { \\"Moderator\\" }, operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
244
+ @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" user_groups\\ " , groups = { \\"Moderator\\" }, provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
245
245
} )
246
246
public final class customClaim implements Model {
247
247
public static final QueryField ID = field (\\" customClaim\\ " , \\" id\\ " );
@@ -457,8 +457,8 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
457
457
/** This is an auto generated class representing the Employee type in your schema. */
458
458
@SuppressWarnings(\\ "all\\ ")
459
459
@ModelConfig(pluralName = \\ "Employees\\ ", authRules = {
460
- @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ }),
461
- @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groups = { \\"Admins\\" }, operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
460
+ @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ }),
461
+ @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groups = { \\"Admins\\" }, provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
462
462
} )
463
463
public final class Employee implements Model {
464
464
public static final QueryField ID = field (\\" Employee\\ " , \\" id\\ " );
@@ -469,7 +469,7 @@ public final class Employee implements Model {
469
469
private final @ModelField (targetType = \\" String\\ " , isRequired = true ) String name ;
470
470
private final @ModelField (targetType = \\" String\\ " , isRequired = true ) String address ;
471
471
private final @ModelField (targetType = \\" String\\ " , authRules = {
472
- @AuthRule(allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
472
+ @AuthRule(allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
473
473
}) String ssn ;
474
474
private @ModelField (targetType = \\" AWSDateTime\\ " , isReadOnly = true ) Temporal .DateTime createdAt ;
475
475
private @ModelField (targetType = \\" AWSDateTime\\ " , isReadOnly = true ) Temporal .DateTime updatedAt ;
@@ -713,7 +713,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
713
713
/** This is an auto generated class representing the dynamicGroups type in your schema. */
714
714
@SuppressWarnings(\\ "all\\ ")
715
715
@ModelConfig(pluralName = \\ "dynamicGroups\\ ", authRules = {
716
- @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groupsField = \\" groups\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
716
+ @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groupsField = \\" groups\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
717
717
} )
718
718
public final class dynamicGroups implements Model {
719
719
public static final QueryField ID = field (\\" dynamicGroups\\ " , \\" id\\ " );
@@ -904,6 +904,262 @@ public final class dynamicGroups implements Model {
904
904
"
905
905
` ;
906
906
907
+ exports [` AppSyncModelVisitor Model with Auth should generate class with non-default providers 1` ] = `
908
+ "package com.amplifyframework.datastore.generated.model;
909
+
910
+ import com.amplifyframework.core.model.temporal.Temporal;
911
+
912
+ import java.util.List;
913
+ import java.util.UUID;
914
+ import java.util.Objects;
915
+
916
+ import androidx.core.util.ObjectsCompat;
917
+
918
+ import com.amplifyframework.core.model.AuthStrategy;
919
+ import com.amplifyframework.core.model.Model;
920
+ import com.amplifyframework.core.model.ModelOperation;
921
+ import com.amplifyframework.core.model.annotations.AuthRule;
922
+ import com.amplifyframework.core.model.annotations.Index;
923
+ import com.amplifyframework.core.model.annotations.ModelConfig;
924
+ import com.amplifyframework.core.model.annotations.ModelField;
925
+ import com.amplifyframework.core.model.query.predicate.QueryField;
926
+
927
+ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
928
+
929
+ /** This is an auto generated class representing the Employee type in your schema. */
930
+ @SuppressWarnings(\\ "all\\ ")
931
+ @ModelConfig(pluralName = \\ "Employees\\ ", authRules = {
932
+ @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , provider = \\" userPools\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ }),
933
+ @AuthRule (allow = AuthStrategy .PRIVATE , provider = \\" iam\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
934
+ } )
935
+ public final class Employee implements Model {
936
+ public static final QueryField ID = field (\\" Employee\\ " , \\" id\\ " );
937
+ public static final QueryField NAME = field (\\" Employee\\ " , \\" name\\ " );
938
+ public static final QueryField ADDRESS = field (\\" Employee\\ " , \\" address\\ " );
939
+ public static final QueryField SSN = field (\\" Employee\\ " , \\" ssn\\ " );
940
+ private final @ModelField (targetType = \\" ID\\ " , isRequired = true ) String id ;
941
+ private final @ModelField (targetType = \\" String\\ " , isRequired = true ) String name ;
942
+ private final @ModelField (targetType = \\" String\\ " , isRequired = true ) String address ;
943
+ private final @ModelField (targetType = \\" String\\ " , authRules = {
944
+ @AuthRule(allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groups = { \\"Admins\\" }, provider = \\" oidc\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
945
+ }) String ssn ;
946
+ private @ModelField (targetType = \\" AWSDateTime\\ " , isReadOnly = true ) Temporal .DateTime createdAt ;
947
+ private @ModelField (targetType = \\" AWSDateTime\\ " , isReadOnly = true ) Temporal .DateTime updatedAt ;
948
+ public String getId () {
949
+ return id;
950
+ }
951
+
952
+ public String getName () {
953
+ return name;
954
+ }
955
+
956
+ public String getAddress () {
957
+ return address;
958
+ }
959
+
960
+ public String getSsn () {
961
+ return ssn;
962
+ }
963
+
964
+ public Temporal .DateTime getCreatedAt () {
965
+ return createdAt;
966
+ }
967
+
968
+ public Temporal .DateTime getUpdatedAt () {
969
+ return updatedAt;
970
+ }
971
+
972
+ private Employee (String id , String name , String address , String ssn ) {
973
+ this.id = id;
974
+ this.name = name;
975
+ this.address = address;
976
+ this.ssn = ssn;
977
+ }
978
+
979
+ @Override
980
+ public boolean equals (Object obj ) {
981
+ if (this == obj ) {
982
+ return true ;
983
+ } else if(obj == null || getClass () != obj.getClass()) {
984
+ return false ;
985
+ } else {
986
+ Employee employee = (Employee ) obj;
987
+ return ObjectsCompat.equals(getId (), employee.getId()) &&
988
+ ObjectsCompat.equals(getName (), employee.getName()) &&
989
+ ObjectsCompat.equals(getAddress (), employee.getAddress()) &&
990
+ ObjectsCompat.equals(getSsn (), employee.getSsn()) &&
991
+ ObjectsCompat.equals(getCreatedAt (), employee.getCreatedAt()) &&
992
+ ObjectsCompat.equals(getUpdatedAt (), employee.getUpdatedAt());
993
+ }
994
+ }
995
+
996
+ @Override
997
+ public int hashCode() {
998
+ return new StringBuilder ()
999
+ .append (getId ())
1000
+ .append (getName ())
1001
+ .append (getAddress ())
1002
+ .append (getSsn ())
1003
+ .append (getCreatedAt ())
1004
+ .append (getUpdatedAt ())
1005
+ .toString ()
1006
+ .hashCode ();
1007
+ }
1008
+
1009
+ @Override
1010
+ public String toString() {
1011
+ return new StringBuilder ()
1012
+ .append (\\" Employee {\\ " )
1013
+ .append (\\" id=\\ " + String .valueOf (getId ()) + \\" , \\ " )
1014
+ .append (\\" name=\\ " + String .valueOf (getName ()) + \\" , \\ " )
1015
+ .append (\\" address=\\ " + String .valueOf (getAddress ()) + \\" , \\ " )
1016
+ .append (\\" ssn=\\ " + String .valueOf (getSsn ()) + \\" , \\ " )
1017
+ .append (\\" createdAt=\\ " + String .valueOf (getCreatedAt ()) + \\" , \\ " )
1018
+ .append (\\" updatedAt=\\ " + String .valueOf (getUpdatedAt ()))
1019
+ .append (\\" }\\ " )
1020
+ .toString ();
1021
+ }
1022
+
1023
+ public static NameStep builder() {
1024
+ return new Builder ();
1025
+ }
1026
+
1027
+ /**
1028
+ * WARNING: This method should not be used to build an instance of this object for a CREATE mutation.
1029
+ * This is a convenience method to return an instance of the object with only its ID populated
1030
+ * to be used in the context of a parameter in a delete mutation or referencing a foreign key
1031
+ * in a relationship.
1032
+ * @param id the id of the existing item this instance will represent
1033
+ * @return an instance of this model with only ID populated
1034
+ * @throws IllegalArgumentException Checks that ID is in the proper format
1035
+ */
1036
+ public static Employee justId(String id) {
1037
+ try {
1038
+ UUID.fromString(id ); // Check that ID is in the UUID format - if not an exception is thrown
1039
+ } catch (Exception exception ) {
1040
+ throw new IllegalArgumentException(
1041
+ \\"Model IDs must be unique in the format of UUID . This method is for creating instances \\" +
1042
+ \\"of an existing object with only its ID field for sending as a mutation parameter . When \\" +
1043
+ \\"creating a new object , use the standard builder method and leave the ID field blank .\\"
1044
+ );
1045
+ }
1046
+ return new Employee (
1047
+ id ,
1048
+ null ,
1049
+ null ,
1050
+ null
1051
+ );
1052
+ }
1053
+
1054
+ public CopyOfBuilder copyOfBuilder() {
1055
+ return new CopyOfBuilder (id ,
1056
+ name ,
1057
+ address ,
1058
+ ssn );
1059
+ }
1060
+ public interface NameStep {
1061
+ AddressStep name (String name );
1062
+ }
1063
+
1064
+
1065
+ public interface AddressStep {
1066
+ BuildStep address (String address );
1067
+ }
1068
+
1069
+
1070
+ public interface BuildStep {
1071
+ Employee build ();
1072
+ BuildStep id (String id ) throws IllegalArgumentException ;
1073
+ BuildStep ssn (String ssn );
1074
+ }
1075
+
1076
+
1077
+ public static class Builder implements NameStep, AddressStep, BuildStep {
1078
+ private String id ;
1079
+ private String name ;
1080
+ private String address ;
1081
+ private String ssn ;
1082
+ @Override
1083
+ public Employee build () {
1084
+ String id = this.id != null ? this.id : UUID .randomUUID ().toString ();
1085
+
1086
+ return new Employee (
1087
+ id ,
1088
+ name ,
1089
+ address ,
1090
+ ssn );
1091
+ }
1092
+
1093
+ @Override
1094
+ public AddressStep name (String name ) {
1095
+ Objects.requireNonNull(name );
1096
+ this.name = name;
1097
+ return this;
1098
+ }
1099
+
1100
+ @Override
1101
+ public BuildStep address (String address ) {
1102
+ Objects.requireNonNull(address );
1103
+ this.address = address;
1104
+ return this;
1105
+ }
1106
+
1107
+ @Override
1108
+ public BuildStep ssn (String ssn ) {
1109
+ this.ssn = ssn;
1110
+ return this;
1111
+ }
1112
+
1113
+ /**
1114
+ * WARNING: Do not set ID when creating a new object. Leave this blank and one will be auto generated for you.
1115
+ * This should only be set when referring to an already existing object.
1116
+ * @param id id
1117
+ * @return Current Builder instance, for fluent method chaining
1118
+ * @throws IllegalArgumentException Checks that ID is in the proper format
1119
+ */
1120
+ public BuildStep id (String id ) throws IllegalArgumentException {
1121
+ this.id = id;
1122
+
1123
+ try {
1124
+ UUID.fromString(id ); // Check that ID is in the UUID format - if not an exception is thrown
1125
+ } catch (Exception exception ) {
1126
+ throw new IllegalArgumentException(\\"Model IDs must be unique in the format of UUID .\\",
1127
+ exception );
1128
+ }
1129
+
1130
+ return this ;
1131
+ }
1132
+ }
1133
+
1134
+
1135
+ public final class CopyOfBuilder extends Builder {
1136
+ private CopyOfBuilder (String id , String name , String address , String ssn ) {
1137
+ super.id(id );
1138
+ super.name(name )
1139
+ .address(address )
1140
+ .ssn(ssn );
1141
+ }
1142
+
1143
+ @Override
1144
+ public CopyOfBuilder name (String name ) {
1145
+ return (CopyOfBuilder ) super.name(name );
1146
+ }
1147
+
1148
+ @Override
1149
+ public CopyOfBuilder address (String address ) {
1150
+ return (CopyOfBuilder ) super.address(address );
1151
+ }
1152
+
1153
+ @Override
1154
+ public CopyOfBuilder ssn (String ssn ) {
1155
+ return (CopyOfBuilder ) super.ssn(ssn );
1156
+ }
1157
+ }
1158
+
1159
+ }
1160
+ "
1161
+ ` ;
1162
+
907
1163
exports [` AppSyncModelVisitor Model with Auth should generate class with owner auth 1` ] = `
908
1164
"package com.amplifyframework.datastore.generated.model;
909
1165
@@ -929,7 +1185,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
929
1185
/** This is an auto generated class representing the simpleOwnerAuth type in your schema. */
930
1186
@SuppressWarnings(\\ "all\\ ")
931
1187
@ModelConfig(pluralName = \\ "simpleOwnerAuths\\ ", authRules = {
932
- @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
1188
+ @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
933
1189
} )
934
1190
public final class simpleOwnerAuth implements Model {
935
1191
public static final QueryField ID = field (\\" simpleOwnerAuth\\ " , \\" id\\ " );
@@ -1145,7 +1401,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
1145
1401
/** This is an auto generated class representing the allowRead type in your schema. */
1146
1402
@SuppressWarnings(\\ "all\\ ")
1147
1403
@ModelConfig(pluralName = \\ "allowReads\\ ", authRules = {
1148
- @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , operations = { ModelOperation.CREATE , ModelOperation.DELETE , ModelOperation.UPDATE })
1404
+ @AuthRule (allow = AuthStrategy .OWNER , ownerField = \\" owner\\ " , identityClaim = \\" cognito:username\\ " , provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.DELETE , ModelOperation.UPDATE })
1149
1405
} )
1150
1406
public final class allowRead implements Model {
1151
1407
public static final QueryField ID = field (\\" allowRead\\ " , \\" id\\ " );
@@ -2011,7 +2267,7 @@ import static com.amplifyframework.core.model.query.predicate.QueryField.field;
2011
2267
/** This is an auto generated class representing the staticGroups type in your schema. */
2012
2268
@SuppressWarnings(\\ "all\\ ")
2013
2269
@ModelConfig(pluralName = \\ "staticGroups\\ ", authRules = {
2014
- @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groups = { \\"Admin\\" }, operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
2270
+ @AuthRule (allow = AuthStrategy .GROUPS , groupClaim = \\" cognito:groups\\ " , groups = { \\"Admin\\" }, provider = \\ " userPools \\ " , operations = { ModelOperation.CREATE , ModelOperation.UPDATE , ModelOperation.DELETE , ModelOperation.READ })
2015
2271
} )
2016
2272
public final class staticGroups implements Model {
2017
2273
public static final QueryField ID = field (\\" staticGroups\\ " , \\" id\\ " );
0 commit comments